KWBeZeroMatcher.m 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // Licensed under the terms in License.txt
  3. //
  4. // Copyright 2010 Allen Ding. All rights reserved.
  5. //
  6. #import "KWBeZeroMatcher.h"
  7. #import "KWFormatter.h"
  8. #import "KWValue.h"
  9. @implementation KWBeZeroMatcher
  10. #pragma mark - Getting Matcher Strings
  11. + (NSArray *)matcherStrings {
  12. return @[@"beZero"];
  13. }
  14. #pragma mark - Matching
  15. - (BOOL)evaluate {
  16. if ([self.subject isKindOfClass:[NSNumber class]]) {
  17. return [self.subject isEqualToNumber:@0];
  18. }
  19. if ([self.subject respondsToSelector:@selector(numberValue)]) {
  20. return [[self.subject numberValue] isEqualToNumber:@0];
  21. }
  22. return NO;
  23. }
  24. #pragma mark - Getting Failure Messages
  25. - (NSString *)failureMessageForShould {
  26. return [NSString stringWithFormat:@"expected subject to be zero, got %@",
  27. [KWFormatter formatObject:self.subject]];
  28. }
  29. - (NSString *)failureMessageForShouldNot {
  30. return [NSString stringWithFormat:@"expected subject not to be zero"];
  31. }
  32. - (NSString *)description {
  33. return @"be zero";
  34. }
  35. #pragma mark - Configuring Matchers
  36. - (void)beZero {
  37. }
  38. @end