KWMock.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // Licensed under the terms in License.txt
  3. //
  4. // Copyright 2010 Allen Ding. All rights reserved.
  5. //
  6. #import "KiwiConfiguration.h"
  7. #import "KWInvocationCapturer.h"
  8. @class KWMessagePattern;
  9. @class KWCaptureSpy;
  10. @protocol KWMessageSpying;
  11. @protocol KWVerifying;
  12. @interface KWMock : NSObject
  13. #pragma mark - Initializing
  14. - (id)initForClass:(Class)aClass;
  15. - (id)initForProtocol:(Protocol *)aProtocol;
  16. - (id)initWithName:(NSString *)aName forClass:(Class)aClass;
  17. - (id)initWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol;
  18. - (id)initAsNullMockForClass:(Class)aClass;
  19. - (id)initAsNullMockForProtocol:(Protocol *)aProtocol;
  20. - (id)initAsNullMockWithName:(NSString *)aName forClass:(Class)aClass;
  21. - (id)initAsNullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol;
  22. - (id)initAsPartialMockForObject:(id)object;
  23. - (id)initAsPartialMockWithName:(NSString *)aName forObject:(id)object;
  24. + (id)mockForClass:(Class)aClass;
  25. + (id)mockForProtocol:(Protocol *)aProtocol;
  26. + (id)mockWithName:(NSString *)aName forClass:(Class)aClass;
  27. + (id)mockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol;
  28. + (id)nullMockForClass:(Class)aClass;
  29. + (id)nullMockForProtocol:(Protocol *)aProtocol;
  30. + (id)nullMockWithName:(NSString *)aName forClass:(Class)aClass ;
  31. + (id)nullMockWithName:(NSString *)aName forProtocol:(Protocol *)aProtocol;
  32. + (id)partialMockForObject:(id)object;
  33. + (id)partialMockWithName:(NSString *)aName forObject:(id)object;
  34. #pragma mark - Properties
  35. @property (nonatomic, assign, readonly) BOOL isNullMock;
  36. @property (nonatomic, assign, readonly) BOOL isPartialMock;
  37. @property (nonatomic, copy, readonly) NSString *mockName;
  38. @property (nonatomic, assign, readonly) Class mockedClass;
  39. @property (nonatomic, strong, readonly) id mockedObject;
  40. @property (nonatomic, assign, readonly) Protocol *mockedProtocol;
  41. #pragma mark - Stubbing Methods
  42. - (void)stub:(SEL)aSelector;
  43. - (void)stub:(SEL)aSelector withBlock:(id (^)(NSArray *params))block;
  44. - (void)stub:(SEL)aSelector withArguments:(id)firstArgument, ...;
  45. - (void)stub:(SEL)aSelector andReturn:(id)aValue;
  46. - (void)stub:(SEL)aSelector andReturn:(id)aValue withArguments:(id)firstArgument, ...;
  47. - (id)stub;
  48. - (id)stubAndReturn:(id)aValue;
  49. - (id)stubAndReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue;
  50. - (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue;
  51. - (void)stubMessagePattern:(KWMessagePattern *)aMessagePattern andReturn:(id)aValue times:(id)times afterThatReturn:(id)aSecondValue;
  52. - (void)clearStubs;
  53. #pragma mark - Spying on Messages
  54. - (void)addMessageSpy:(id<KWMessageSpying>)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern;
  55. - (void)removeMessageSpy:(id<KWMessageSpying>)aSpy forMessagePattern:(KWMessagePattern *)aMessagePattern;
  56. #pragma mark - Expecting Messages
  57. - (void)expect:(SEL)aSelector;
  58. - (void)expect:(SEL)aSelector withArguments:(id)firstArgument, ...;
  59. - (id)expect;
  60. - (void)expectMessagePattern:(KWMessagePattern *)aMessagePattern;
  61. @end