Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 79 lines (61 sloc) 2.222 kb
4f0c627 @allending First release.
authored
1 //
2 // Licensed under the terms in License.txt
3 //
4 // Copyright 2010 Allen Ding. All rights reserved.
5 //
6
7 #import "KWExistVerifier.h"
8 #import "KWFailure.h"
9 #import "KWFormatter.h"
10 #import "KWReporting.h"
11
12 @interface KWExistVerifier()
13
14 #pragma mark -
15 #pragma mark Properties
16
17 @property (nonatomic, readonly) KWExpectationType expectationType;
18 @property (nonatomic, readonly) KWCallSite *callSite;
19 @property (nonatomic, readonly) id<KWReporting> reporter;
20
21 @end
22
23 @implementation KWExistVerifier
24
25 #pragma mark -
26 #pragma mark Initializing
27
28 - (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id<KWReporting>)aReporter {
29 if ((self = [super init])) {
30 expectationType = anExpectationType;
31 callSite = [aCallSite retain];
32 reporter = aReporter;
33 }
b940a6e @mattdipasquale Convert \t to 4 spaces. Rm trailing whitespace.
mattdipasquale authored
34
4f0c627 @allending First release.
authored
35 return self;
36 }
37
38 + (id)existVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite reporter:(id<KWReporting>)aReporter {
39 return [[[self alloc] initWithExpectationType:anExpectationType callSite:aCallSite reporter:aReporter] autorelease];
40 }
41
42 - (void)dealloc {
43 [callSite release];
44 [subject release];
45 [super dealloc];
46 }
47
5472d94 @lukeredpath When we have anonymous specify nodes, we should be able to generate a me...
lukeredpath authored
48 - (NSString *)descriptionForAnonymousItNode
49 {
50 if (self.expectationType == KWExpectationTypeShould) {
51 return @"should exist";
52 }
53 return @"should not exist";
54 }
55
4f0c627 @allending First release.
authored
56 #pragma mark -
57 #pragma mark Properties
58
59 @synthesize expectationType;
60 @synthesize callSite;
61 @synthesize reporter;
62 @synthesize subject;
63
64 #pragma mark -
65 #pragma mark Ending Examples
66
67 - (void)exampleWillEnd {
68 if (self.expectationType == KWExpectationTypeShould && self.subject == nil) {
69 KWFailure *failure = [KWFailure failureWithCallSite:self.callSite message:@"expected subject not to be nil"];
70 [self.reporter reportFailure:failure];
71 } else if (self.expectationType == KWExpectationTypeShouldNot && self.subject != nil) {
72 KWFailure *failure = [KWFailure failureWithCallSite:self.callSite format:@"expected subject to be nil, got %@",
73 [KWFormatter formatObject:self.subject]];
74 [self.reporter reportFailure:failure];
75 }
76 }
77
78 @end
Something went wrong with that request. Please try again.