1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- //
- // Licensed under the terms in License.txt
- //
- // Copyright 2010 Allen Ding. All rights reserved.
- //
- #import "KWMatcher.h"
- #import "KWFormatter.h"
- #import "KWFutureObject.h"
- @implementation KWMatcher
- #pragma mark - Initializing
- - (id)initWithSubject:(id)anObject {
- self = [super init];
- if (self) {
- _subject = anObject;
- }
- return self;
- }
- + (id)matcherWithSubject:(id)anObject {
- return [[self alloc] initWithSubject:anObject];
- }
- #pragma mark - Properties
- - (id)subject
- {
- if ([_subject isKindOfClass:[KWFutureObject class]]) {
- return [(KWFutureObject *)_subject object];
- }
- return _subject;
- }
- #pragma mark - Getting Matcher Strings
- + (NSArray *)matcherStrings {
- return nil;
- }
- #pragma mark - Getting Matcher Compatability
- + (BOOL)canMatchSubject:(id)anObject {
- return YES;
- }
- #pragma mark - Matching
- - (BOOL)evaluate {
- [NSException raise:NSInternalInconsistencyException format:@"%@ must override -evaluate",
- [KWFormatter formatObject:[self class]]];
- return NO;
- }
- #pragma mark - Getting Failure Messages
- - (NSString *)failureMessageForShould {
- return @"subject did not meet expectation";
- }
- - (NSString *)failureMessageForShouldNot {
- NSString *failureMessageForShould = [self failureMessageForShould];
- NSRange markerRange = [failureMessageForShould rangeOfString:@" to "];
- if (markerRange.location == NSNotFound)
- return @"subject did not meet expectation";
- NSRange replacementRange = NSMakeRange(0, markerRange.location + markerRange.length);
- NSString *message = [failureMessageForShould stringByReplacingOccurrencesOfString:@" to "
- withString:@" not to "
- options:0
- range:replacementRange];
- return message;
- }
- @end
|