KWUserDefinedMatcher.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //
  2. // KWUserDefinedMatcher.h
  3. // Kiwi
  4. //
  5. // Created by Luke Redpath on 16/06/2011.
  6. // Copyright 2011 Allen Ding. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "KWMatcher.h"
  10. #pragma clang diagnostic push
  11. #pragma clang diagnostic ignored "-Wstrict-prototypes"
  12. typedef BOOL (^KWUserDefinedMatcherBlock)();
  13. #pragma clang diagnostic pop
  14. @interface KWUserDefinedMatcher : KWMatcher
  15. @property (nonatomic, assign) SEL selector;
  16. @property (nonatomic, copy) NSString *failureMessageForShould;
  17. @property (nonatomic, copy) NSString *failureMessageForShouldNot;
  18. @property (nonatomic, copy) KWUserDefinedMatcherBlock matcherBlock;
  19. @property (nonatomic, copy) NSString *description;
  20. + (id)matcherWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock;
  21. - (id)initWithSubject:(id)aSubject block:(KWUserDefinedMatcherBlock)aBlock;
  22. @end
  23. #pragma mark -
  24. typedef NSString * (^KWUserDefinedMatcherMessageBlock)(id);
  25. @interface KWUserDefinedMatcherBuilder : NSObject
  26. @property (nonatomic, copy, readonly) NSString *key;
  27. + (id)builder;
  28. + (id)builderForSelector:(SEL)aSelector;
  29. - (id)initWithSelector:(SEL)aSelector;
  30. #pragma mark - Configuring The Matcher
  31. - (void)match:(KWUserDefinedMatcherBlock)block;
  32. - (void)failureMessageForShould:(KWUserDefinedMatcherMessageBlock)block;
  33. - (void)failureMessageForShouldNot:(KWUserDefinedMatcherMessageBlock)block;
  34. - (void)description:(NSString *)description;
  35. #pragma mark - Buiding The Matcher
  36. - (KWUserDefinedMatcher *)buildMatcherWithSubject:(id)subject;
  37. @end