| // | |
| // ProtocolTests.m | |
| // iOS5Example | |
| // | |
| #import <OCMock/OCMock.h> | |
| #import "ProtocolTests.h" | |
| @protocol AuthenticationServiceProtocol | |
| - (void)loginWithEmail:(NSString *)email andPassword:(NSString *)password; | |
| @end | |
| @interface Foo : NSObject | |
| { | |
| id<AuthenticationServiceProtocol> authService; | |
| } | |
| - (id)initWithAuthenticationService:(id<AuthenticationServiceProtocol>)anAuthService; | |
| - (void)doStuff; | |
| @end | |
| @implementation Foo | |
| - (id)initWithAuthenticationService:(id<AuthenticationServiceProtocol>)anAuthService | |
| { | |
| self = [super init]; | |
| authService = anAuthService; | |
| return self; | |
| } | |
| - (void)doStuff | |
| { | |
| [authService loginWithEmail:@"x" andPassword:@"y"]; | |
| } | |
| @end | |
| @implementation ProtocolTests | |
| - (void)testTheProtocol | |
| { | |
| id authService = [OCMockObject mockForProtocol:@protocol(AuthenticationServiceProtocol)]; | |
| id foo = [[Foo alloc] initWithAuthenticationService:authService]; | |
| [[authService expect] loginWithEmail:[OCMArg any] andPassword:[OCMArg any]]; | |
| [foo doStuff]; | |
| [authService verify]; | |
| } | |
| @end |