1 package org.apache.commons.jcs.utils.discovery;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23 import org.apache.commons.jcs.utils.discovery.UDPDiscoveryMessage.BroadcastType;
24
25 import java.util.ArrayList;
26
27
28
29
30 public class UDPDiscoverySenderUnitTest
31 extends TestCase
32 {
33
34 private static final String ADDRESS = "228.4.5.9";
35
36
37 private static final int PORT = 5556;
38
39
40 private static final String SENDING_HOST = "imaginary host address";
41
42
43 private static final int SENDING_PORT = 1;
44
45
46 private UDPDiscoveryReceiver receiver;
47
48
49 private UDPDiscoverySender sender;
50
51
52
53
54
55
56
57 @Override
58 protected void setUp()
59 throws Exception
60 {
61 super.setUp();
62 receiver = new UDPDiscoveryReceiver( null, ADDRESS, PORT );
63 sender = new UDPDiscoverySender( ADDRESS, PORT );
64 }
65
66
67
68
69
70
71 @Override
72 protected void tearDown()
73 throws Exception
74 {
75 receiver.shutdown();
76 sender.destroy();
77 super.tearDown();
78 }
79
80
81
82
83
84
85 public void testPassiveBroadcast()
86 throws Exception
87 {
88
89 ArrayList<String> cacheNames = new ArrayList<String>();
90
91
92 sender.passiveBroadcast( SENDING_HOST, SENDING_PORT, cacheNames, 1L );
93
94
95
96 Object obj = receiver.waitForMessage() ;
97
98 assertTrue( "unexpected crap received", obj instanceof UDPDiscoveryMessage );
99
100 UDPDiscoveryMessage msg = (UDPDiscoveryMessage) obj;
101
102
103 assertEquals( "wrong port", SENDING_PORT, msg.getPort() );
104 assertEquals( "wrong message type", BroadcastType.PASSIVE, msg.getMessageType() );
105 }
106
107
108
109
110
111
112 public void testRemoveBroadcast()
113 throws Exception
114 {
115
116 ArrayList<String> cacheNames = new ArrayList<String>();
117
118
119 sender.removeBroadcast( SENDING_HOST, SENDING_PORT, cacheNames, 1L );
120
121
122
123 Object obj = receiver.waitForMessage();
124
125 assertTrue( "unexpected crap received", obj instanceof UDPDiscoveryMessage );
126
127 UDPDiscoveryMessage msg = (UDPDiscoveryMessage) obj;
128
129
130 assertEquals( "wrong port", SENDING_PORT, msg.getPort() );
131 assertEquals( "wrong message type", BroadcastType.REMOVE, msg.getMessageType() );
132 }
133
134
135
136
137
138
139 public void testRequestBroadcast()
140 throws Exception
141 {
142
143 sender.requestBroadcast();
144
145
146
147 Object obj = receiver.waitForMessage();
148
149 assertTrue( "unexpected crap received", obj instanceof UDPDiscoveryMessage );
150
151 UDPDiscoveryMessage msg = (UDPDiscoveryMessage) obj;
152 assertEquals( "wrong message type", BroadcastType.REQUEST, msg.getMessageType() );
153 }
154 }