1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.grinder.communication;
23
24 import net.grinder.testutility.RandomStubFactory;
25 import junit.framework.TestCase;
26
27
28
29
30
31
32
33 public class TestResponseSender extends TestCase {
34
35 public void testResponseSenderConstruction() throws Exception {
36 final Message message = new SimpleMessage();
37
38 final MessageRequiringResponse responseSender = new MessageRequiringResponse(message);
39
40 assertSame(message, responseSender.getMessage());
41
42 assertFalse(responseSender.isResponseSent());
43 }
44
45 public void testSendingResponse() throws Exception {
46
47 final Message message = new SimpleMessage();
48
49 final MessageRequiringResponse responseSender = new MessageRequiringResponse(message);
50
51 final SimpleMessage responseMessage = new SimpleMessage();
52
53 try {
54 responseSender.sendResponse(responseMessage);
55 fail("Expected CommunicationException");
56 }
57 catch (CommunicationException e) {
58 }
59
60 final RandomStubFactory<Sender> senderStubFactory =
61 RandomStubFactory.create(Sender.class);
62
63 responseSender.setResponder(senderStubFactory.getStub());
64
65 responseSender.sendResponse(responseMessage);
66 senderStubFactory.assertSuccess("send", responseMessage);
67 senderStubFactory.assertNoMoreCalls();
68
69 assertTrue(responseSender.isResponseSent());
70
71 try {
72 responseSender.sendResponse(responseMessage);
73 fail("Expected CommunicationException");
74 }
75 catch (CommunicationException e) {
76 }
77
78 senderStubFactory.assertNoMoreCalls();
79 }
80 }