1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- //
- // Licensed under the terms in License.txt
- //
- // Copyright 2010 Allen Ding. All rights reserved.
- //
- #import "KWBeEmptyMatcher.h"
- #import "KWFormatter.h"
- @interface KWBeEmptyMatcher()
- #pragma mark - Properties
- @property (nonatomic, readwrite) NSUInteger count;
- @end
- @implementation KWBeEmptyMatcher
- #pragma mark - Getting Matcher Strings
- + (NSArray *)matcherStrings {
- return @[@"beEmpty"];
- }
- #pragma mark - Matching
- - (BOOL)evaluate {
- if ([self.subject respondsToSelector:@selector(count)]) {
- self.count = [self.subject count];
- return self.count == 0;
- }
- else if ([self.subject respondsToSelector:@selector(length)]) {
- self.count = [self.subject length];
- return self.count == 0;
- }
- [NSException raise:@"KWMatcherException" format:@"subject does not respond to -count or -length"];
- return NO;
- }
- #pragma mark - Getting Failure Messages
- - (NSString *)countPhrase {
- if (self.count == 1)
- return @"1 item";
- else
- return [NSString stringWithFormat:@"%u items", (unsigned)self.count];
- }
- - (NSString *)failureMessageForShould {
- return [NSString stringWithFormat:@"expected subject to be empty, got %@", [self countPhrase]];
- }
- - (NSString *)failureMessageForShouldNot {
- return @"expected subject not to be empty";
- }
- - (NSString *)description {
- return @"be empty";
- }
- #pragma mark - Configuring Matchers
- - (void)beEmpty {
- }
- @end
|