-
Notifications
You must be signed in to change notification settings - Fork 283
Expand file tree
/
Copy pathNSDataGitSpec.m
More file actions
74 lines (57 loc) · 1.93 KB
/
NSDataGitSpec.m
File metadata and controls
74 lines (57 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//
// NSDataGitSpec.m
// ObjectiveGitFramework
//
// Created by Justin Spahr-Summers on 2014-06-27.
// Copyright (c) 2014 GitHub, Inc. All rights reserved.
//
@import ObjectiveGit;
@import Nimble;
@import Quick;
#import "QuickSpec+GTFixtures.h"
QuickSpecBegin(NSDataGit)
const void *testData = "hello world";
const size_t testDataSize = strlen(testData) + 1;
describe(@"+git_dataWithBuffer:", ^{
__block git_buf buffer;
beforeEach(^{
buffer = (git_buf)GIT_BUF_INIT_CONST(NULL, 0);
expect(@(git_buf_set(&buffer, testData, testDataSize))).to(equal(@(GIT_OK)));
expect([NSValue valueWithPointer:buffer.ptr]).notTo(equal([NSValue valueWithPointer:NULL]));
expect([NSValue valueWithPointer:buffer.ptr]).notTo(equal([NSValue valueWithPointer:testData]));
expect(@(buffer.size)).to(equal(@(testDataSize)));
expect(@(buffer.asize)).to(beGreaterThanOrEqualTo(@(testDataSize)));
});
afterEach(^{
git_buf_free(&buffer);
});
it(@"should create matching NSData", ^{
NSData *data = [NSData git_dataWithBuffer:&buffer];
expect(data).notTo(beNil());
expect(@(data.length)).to(equal(@(testDataSize)));
expect(@(memcmp(data.bytes, testData, testDataSize))).to(equal(@0));
});
it(@"should invalidate the buffer", ^{
[NSData git_dataWithBuffer:&buffer];
expect(@(buffer.size)).to(equal(@0));
expect(@(buffer.asize)).to(equal(@0));
expect([NSValue valueWithPointer:buffer.ptr]).to(equal([NSValue valueWithPointer:NULL]));
});
});
describe(@"git_buf", ^{
__block NSData *data;
beforeEach(^{
data = [NSData dataWithBytes:testData length:testDataSize];
expect(data).notTo(beNil());
});
it(@"should return a constant buffer of the data's bytes", ^{
git_buf buffer = data.git_buf;
expect([NSValue valueWithPointer:buffer.ptr]).to(equal([NSValue valueWithPointer:data.bytes]));
expect(@(buffer.size)).to(equal(@(data.length)));
expect(@(buffer.asize)).to(equal(@0));
});
});
afterEach(^{
[self tearDown];
});
QuickSpecEnd