]> git.wincent.com - WOTest.git/blob - Tests/WOProtocolMockTests.m
Code clean-up for garbage collection
[WOTest.git] / Tests / WOProtocolMockTests.m
1 //
2 //  WOProtocolMockTests.m
3 //  WOTest
4 //
5 //  Created by Wincent Colaiuta on 10 February 2006.
6 //
7 //  Copyright 2006-2007 Wincent Colaiuta.
8 //  This program is free software: you can redistribute it and/or modify
9 //  it under the terms of the GNU General Public License as published by
10 //  the Free Software Foundation, either version 3 of the License, or
11 //  (at your option) any later version.
12 //
13 //  This program is distributed in the hope that it will be useful,
14 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 //  GNU General Public License for more details.
17 //
18 //  You should have received a copy of the GNU General Public License
19 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 //
21
22 #import "WOProtocolMockTests.h"
23
24 @implementation WOProtocolMockTests
25
26 - (void)testMockForProtocol
27 {
28     // should throw for NULL protocol
29     WO_TEST_THROWS([WOProtocolMock mockForProtocol:NULL]);
30
31 }
32
33 - (void)testInitWithProtocol
34 {
35     // should throw for NULL protocol
36     WOProtocolMock *mock = [WOProtocolMock alloc];
37     WO_TEST_THROWS([mock initWithProtocol:NULL]);
38 }
39
40 - (void)testMethodSignatureForSelector
41 {
42     // should return nil when necessary to avoid recursion
43     WOProtocolMock *mock = [WOProtocolMock mockForProtocol:@protocol(NSObject)];
44     WO_TEST_NIL([mock methodSignatureForSelector:
45         @selector(methodSignatureForSelector:)]);
46 }
47
48 - (void)testAccepts
49 {
50     id mock = [WOProtocolMock mockForProtocol:@protocol(NSTextInput)];
51     WO_TEST_DOES_NOT_THROW([[mock accept] hasMarkedText]);
52
53     // order here matters: swap them if you want to see the breakage
54     WO_TEST_DOES_NOT_THROW([mock hasMarkedText]);
55     WO_TEST_THROWS(objc_msgSend([mock accept], @selector(foobar)));
56 }
57
58 @end