Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
TestExample |
|
| 0.0;0 |
1 | /* | |
2 | * Created on Jun 28, 2004 | |
3 | * | |
4 | * To change the template for this generated file go to | |
5 | * Window - Preferences - Java - Code Generation - Code and Comments | |
6 | */ | |
7 | package biz.xsoftware.examples.fullapi; | |
8 | ||
9 | import junit.framework.TestCase; | |
10 | import biz.xsoftware.mock.CalledMethod; | |
11 | import biz.xsoftware.mock.MockObjectFactory; | |
12 | import biz.xsoftware.mock.MockObject; | |
13 | ||
14 | /** | |
15 | * JUnit Suite of TestCases for demonstrating mocking out a more | |
16 | * complex api. | |
17 | * | |
18 | * @author Dean Hiller | |
19 | */ | |
20 | public class TestExample extends TestCase { | |
21 | ||
22 | private EmailToPhone sysUnderTest; | |
23 | private MockObject mockPhoneFactory; | |
24 | private MockObject mockPhone; | |
25 | ||
26 | /** | |
27 | * @showcode | |
28 | */ | |
29 | public TestExample(String name) { | |
30 | 1 | super(name); |
31 | 1 | } |
32 | ||
33 | /** | |
34 | * @showcode | |
35 | */ | |
36 | @Override | |
37 | public void setUp() { | |
38 | 1 | mockPhoneFactory = MockObjectFactory.createMock(PhoneFactory.class); |
39 | 1 | mockPhone = MockObjectFactory.createMock(Phone.class); |
40 | ||
41 | 1 | sysUnderTest = new EmailToPhoneImpl((PhoneFactory)mockPhoneFactory); |
42 | 1 | } |
43 | ||
44 | /** | |
45 | * Some api's can be more OO oriented then others and have no | |
46 | * one facade into the whole subsystem as it may be too large, | |
47 | * so this demonstrates how even those api's can be mocked out. | |
48 | * | |
49 | * This also demonstrates a susbystem that relies on two subsystems | |
50 | * such that you can trigger an event in one subsystem and test | |
51 | * the interaction with the other subsystem. | |
52 | * | |
53 | * @showcode | |
54 | */ | |
55 | public void testReceiveHighPriorityEmail() { | |
56 | ||
57 | //We know that when receivedHighPriorityEmail is called, the EmailToPhone system will | |
58 | //create a Phone so we need to make sure the mock object's passes back a mockPhone | |
59 | //that the test controls | |
60 | 1 | mockPhoneFactory.addReturnValue("createPhone", mockPhone); |
61 | ||
62 | 1 | String extension = "555-4444"; |
63 | 1 | String emailTitle = "xxxx"; |
64 | 1 | String emailContents = "yyyy"; |
65 | 1 | sysUnderTest.receivedHighPriorityEmail(extension, emailTitle, emailContents); |
66 | ||
67 | //we expect createPhone to be called | |
68 | 1 | mockPhoneFactory.expect("createPhone"); |
69 | ||
70 | //we expect a phone call to be made to the correct extension | |
71 | 1 | CalledMethod m = mockPhone.expect("makeCall"); |
72 | 1 | assertEquals(extension, m.getAllParams()[0]); |
73 | 1 | } |
74 | } |