main
 1//
 2// Licensed under the terms in License.txt
 3//
 4// Copyright 2010 Allen Ding. All rights reserved.
 5//
 6
 7#import "KWConformToProtocolMatcher.h"
 8#import "KWFormatter.h"
 9
10@interface KWConformToProtocolMatcher()
11
12#pragma mark -
13#pragma mark Properties
14
15@property (nonatomic, readwrite, assign) Protocol *protocol;
16
17@end
18
19@implementation KWConformToProtocolMatcher
20
21#pragma mark -
22#pragma mark Properties
23
24@synthesize protocol;
25
26#pragma mark -
27#pragma mark Getting Matcher Strings
28
29+ (NSArray *)matcherStrings {
30    return @[@"conformToProtocol:"];
31}
32
33#pragma mark -
34#pragma mark Matching
35
36- (BOOL)evaluate {
37    return [self.subject conformsToProtocol:self.protocol];
38}
39
40#pragma mark -
41#pragma mark Getting Failure Messages
42
43- (NSString *)failureMessageForShould {
44    return [NSString stringWithFormat:@"expected subject to conform to %@ protocol",
45                                      NSStringFromProtocol(self.protocol)];
46}
47
48- (NSString *)description
49{
50  return [NSString stringWithFormat:@"conform to %@ protocol", NSStringFromProtocol(self.protocol)];
51}
52
53#pragma mark -
54#pragma mark Configuring Matchers
55
56- (void)conformToProtocol:(Protocol *)aProtocol {
57    self.protocol = aProtocol;
58}
59
60@end