-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathExpectsBooleanTests.m
114 lines (96 loc) · 4.09 KB
/
ExpectsBooleanTests.m
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
//
// STLogExpressionParserDelegateTests.m
// StoryTeller
//
// Created by Derek Clarkson on 25/06/2015.
// Copyright © 2015 Derek Clarkson. All rights reserved.
//
@import XCTest;
@import StoryTeller;
@import StoryTeller.Private;
@import OCMock;
#import "MainClass.h"
#import "SubClass.h"
#import "AProtocol.h"
@interface ExpectsBooleanTests : XCTestCase
@end
@implementation ExpectsBooleanTests {
STLogExpressionParserDelegate *_factory;
id _mockStoryTeller;
}
-(void) setUp {
_factory = [[STLogExpressionParserDelegate alloc] init];
_mockStoryTeller = OCMClassMock([STStoryTeller class]);
}
-(void) testTrueMatches {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].subClassProperty.boolProperty == true"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
subClass.boolProperty = YES;
XCTAssertTrue([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
-(void) testFalseMatches {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].subClassProperty.boolProperty == false"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
XCTAssertTrue([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
-(void) testNoMatches {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].subClassProperty.boolProperty == NO"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
XCTAssertTrue([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
-(void) testNotFalseMatches {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].subClassProperty.boolProperty != false"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
subClass.boolProperty = YES;
XCTAssertTrue([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
-(void) testYesMatches {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].subClassProperty.boolProperty == YES"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
subClass.boolProperty = YES;
XCTAssertTrue([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
#pragma mark - Type checking
-(void) testWhenInstanceProperty {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].subClassProperty == YES"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
XCTAssertFalse([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
-(void) testWhenAStringProperty {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].stringProperty == YES"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
XCTAssertFalse([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
-(void) testWhenAProtocolProperty {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].protocolProperty == YES"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
XCTAssertFalse([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
-(void) testWhenAIntProperty {
id<STMatcher> matcher = [_factory parseExpression:@"[MainClass].intProperty == YES"];
MainClass *mainClass = [[MainClass alloc] init];
SubClass *subClass = [[SubClass alloc] init];
mainClass.subClassProperty = subClass;
XCTAssertFalse([matcher storyTeller:_mockStoryTeller matches:mainClass]);
}
#pragma mark - Op checking
-(void) testInvalidOp {
XCTAssertThrowsSpecificNamed([_factory parseExpression:@"[MainClass].subClassProperty.boolProperty > YES"], NSException, @"StoryTellerParseException");
}
@end