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
25 import static org.junit.Assert.assertEquals;
26
27 import java.io.InputStream;
28 import java.io.PipedOutputStream;
29
30 import org.junit.After;
31 import org.junit.Before;
32 import org.junit.Test;
33
34
35
36
37
38
39
40 public class TestMessagePump extends AbstractSenderAndReceiverTests {
41
42 private MessagePump m_messagePump;
43 private Sender m_intermediateSender;
44 private Receiver m_intermediateReceiver;
45
46 @Before public void setUp() throws Exception {
47
48
49
50
51 final PipedOutputStream intermediateSenderOutputStream =
52 new PipedOutputStream();
53 m_intermediateSender = new StreamSender(intermediateSenderOutputStream);
54
55 final InputStream receiverInputStream =
56 new BigBufferPipedInputStream(intermediateSenderOutputStream);
57
58 final PipedOutputStream senderOutputStream = new PipedOutputStream();
59
60 initialise(new StreamReceiver(receiverInputStream),
61 new StreamSender(senderOutputStream));
62
63 final InputStream intermediateReceiverInputStream =
64 new BigBufferPipedInputStream(senderOutputStream);
65 m_intermediateReceiver =
66 new StreamReceiver(intermediateReceiverInputStream);
67
68 m_messagePump =
69 new MessagePump(m_intermediateReceiver, m_intermediateSender, 1);
70
71 m_messagePump.start();
72 }
73
74 @After public void tearDown() throws Exception {
75 m_messagePump.shutdown();
76 }
77
78 @Test public void testShutdownOnNullMessage() throws Exception {
79 m_sender.send(null);
80 assertEquals(null, m_receiver.waitForMessage());
81 }
82
83 @Test public void testShutdownIfReceiverShutdown() throws Exception {
84 m_sender.shutdown();
85 assertEquals(null, m_intermediateReceiver.waitForMessage());
86 assertEquals(null, m_receiver.waitForMessage());
87
88 }
89 }
90