main
 1//
 2// Licensed under the terms in License.txt
 3//
 4// Copyright 2010 Allen Ding. All rights reserved.
 5//
 6
 7#import "KiwiConfiguration.h"
 8#import "KWExpectationType.h"
 9#import "KWVerifying.h"
10
11@class KWCallSite;
12@class KWMatcherFactory;
13
14@protocol KWMatching;
15@protocol KWReporting;
16
17@interface KWMatchVerifier : NSObject<KWVerifying> {
18@private
19    KWExpectationType expectationType;
20    KWCallSite *callSite;
21    KWMatcherFactory *matcherFactory;
22    id<KWReporting> reporter;
23    id subject;
24    id<KWMatching> endOfExampleMatcher;
25}
26
27#pragma mark -
28#pragma mark Properties
29
30@property (nonatomic, readonly) KWExpectationType expectationType;
31@property (nonatomic, readonly) KWCallSite *callSite;
32@property (nonatomic, readonly) KWMatcherFactory *matcherFactory;
33@property (nonatomic, readonly) id<KWReporting> reporter;
34@property (nonatomic, readwrite, retain) id subject;
35
36#pragma mark -
37#pragma mark Initializing
38
39- (id)initForShouldWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id<KWReporting>)aReporter;
40- (id)initForShouldNotWithCallSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id<KWReporting>)aReporter;
41- (id)initWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id<KWReporting>)aReporter;
42
43+ (id)matchVerifierWithExpectationType:(KWExpectationType)anExpectationType callSite:(KWCallSite *)aCallSite matcherFactory:(KWMatcherFactory *)aMatcherFactory reporter:(id<KWReporting>)aReporter;
44
45@end