Skip to content

Commit f2a8c67

Browse files
committed
ADAP-205: added RtcChannelTest
1 parent 481f809 commit f2a8c67

4 files changed

Lines changed: 471 additions & 173 deletions

File tree

src/test/java/com/openfin/desktop/AllTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
*/
1111

1212
@RunWith(Suite.class)
13-
@Suite.SuiteClasses({ ApplicationTest.class, OpenFinRuntimeTest.class, WindowTest.class, SystemTest.class, InterApplicationBusTest.class, ChannelTest.class, RuntimeConfigTest.class, InteropTest.class, SnapshotTest.class})
13+
@Suite.SuiteClasses({ ApplicationTest.class, OpenFinRuntimeTest.class, WindowTest.class, SystemTest.class, InterApplicationBusTest.class, ChannelTest.class, RuntimeConfigTest.class, InteropTest.class, SnapshotTest.class, RtcChannelTest.class})
1414
public class AllTests {
1515
}

src/test/java/com/openfin/desktop/ChannelTest.java

Lines changed: 97 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.junit.Assert.assertEquals;
44

5+
import java.util.Objects;
56
import java.util.concurrent.CountDownLatch;
67
import java.util.concurrent.TimeUnit;
78
import java.util.concurrent.atomic.AtomicBoolean;
@@ -24,12 +25,8 @@
2425
import com.openfin.desktop.channel.Middleware;
2526

2627
/**
27-
* JUnit tests for com.openfin.desktop.InterApplicationBus class
28+
* JUnit tests for com.openfin.desktop.Channel class
2829
*
29-
* Test cases in this class need to have access to an OpenFin HTML5 app to
30-
* verify sub/pub workflow. Sources for the app can be found in release
31-
* directory: PubSubExample.html. It is hosted by OpenFin at
32-
* https://cdn.openfin.co/examples/junit/PubSubExample.html
3330
*
3431
* Created by wche on 1/27/16.
3532
*
@@ -54,36 +51,25 @@ public static void teardown() throws Exception {
5451
@Test
5552
public void createChannelProvider() throws Exception {
5653
CountDownLatch latch = new CountDownLatch(1);
57-
desktopConnection.getChannel("createChannelProviderTest").create(new AsyncCallback<ChannelProvider>() {
58-
@Override
59-
public void onSuccess(ChannelProvider provider) {
54+
desktopConnection.getChannel("createChannelProviderTest").createAsync().thenAccept(provider -> {
55+
if (Objects.nonNull(provider)) {
6056
latch.countDown();
6157
}
6258
});
63-
6459
latch.await(10, TimeUnit.SECONDS);
65-
6660
assertEquals(0, latch.getCount());
6761
}
6862

6963
@Test
7064
public void createChannelClient() throws Exception {
7165
CountDownLatch latch = new CountDownLatch(1);
7266
final String channelName = "createChannelClientTest";
73-
desktopConnection.getChannel(channelName).create(new AsyncCallback<ChannelProvider>() {
74-
@Override
75-
public void onSuccess(ChannelProvider provider) {
76-
desktopConnection.getChannel(channelName).connect(new AsyncCallback<ChannelClient>() {
77-
@Override
78-
public void onSuccess(ChannelClient result) {
79-
latch.countDown();
80-
}
81-
});
82-
}
67+
desktopConnection.getChannel(channelName).createAsync().thenAccept(provider -> {
68+
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
69+
latch.countDown();
70+
});
8371
});
84-
8572
latch.await(10, TimeUnit.SECONDS);
86-
8773
assertEquals(0, latch.getCount());
8874
}
8975

@@ -94,49 +80,36 @@ public void multipleChannelClients() throws Exception {
9480
final String channelName = "createMultipleChannelClientTest";
9581
final String clientActionName = "clientAction";
9682
final String providerActionName = "providerAction";
97-
desktopConnection.getChannel(channelName).create(new AsyncCallback<ChannelProvider>() {
98-
@Override
99-
public void onSuccess(ChannelProvider provider) {
100-
101-
provider.register(providerActionName, new ChannelAction() {
102-
83+
desktopConnection.getChannel(channelName).createAsync().thenAccept(provider -> {
84+
provider.register(providerActionName, new ChannelAction() {
85+
@Override
86+
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
87+
return null;
88+
}
89+
});
90+
//first channel client
91+
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
92+
client.dispatch(providerActionName, new JSONObject(), null);
93+
client.register(clientActionName, new ChannelAction() {
10394
@Override
10495
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
96+
latch1.countDown();
10597
return null;
10698
}
10799
});
108-
109-
//first channel client
110-
desktopConnection.getChannel(channelName).connect(new AsyncCallback<ChannelClient>() {
111-
@Override
112-
public void onSuccess(ChannelClient client) {
113-
client.dispatch(providerActionName, new JSONObject(), null);
114-
115-
client.register(clientActionName, new ChannelAction() {
116-
@Override
117-
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
118-
latch1.countDown();
119-
return null;
120-
}
121-
});
122-
}
123-
});
124-
//second channel client
125-
desktopConnection.getChannel(channelName).connect(new AsyncCallback<ChannelClient>() {
100+
});
101+
//second channel client
102+
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
103+
client.register(clientActionName, new ChannelAction() {
126104
@Override
127-
public void onSuccess(ChannelClient client) {
128-
client.register(clientActionName, new ChannelAction() {
129-
@Override
130-
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
131-
latch2.countDown();
132-
return null;
133-
}
134-
});
135-
136-
provider.publish(clientActionName, new JSONObject(), null);
105+
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
106+
latch2.countDown();
107+
return null;
137108
}
138109
});
139-
}
110+
provider.publish(clientActionName, new JSONObject(), null);
111+
});
112+
140113
});
141114

142115
latch1.await(10, TimeUnit.SECONDS);
@@ -150,21 +123,16 @@ public JSONObject invoke(String action, Object payload, JSONObject senderIdentit
150123
public void registerAction() throws Exception {
151124
final String channelName = "registerActionTest";
152125
CountDownLatch latch = new CountDownLatch(1);
153-
desktopConnection.getChannel(channelName).create(new AsyncCallback<ChannelProvider>() {
154-
@Override
155-
public void onSuccess(ChannelProvider provider) {
156-
provider.register("currentTime", new ChannelAction() {
157-
@Override
158-
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
159-
return ((JSONObject)payload).put("currentTime", java.lang.System.currentTimeMillis());
160-
}
161-
});
162-
latch.countDown();
163-
}
126+
desktopConnection.getChannel(channelName).createAsync().thenAccept(provider -> {
127+
provider.register("currentTime", new ChannelAction() {
128+
@Override
129+
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
130+
return ((JSONObject)payload).put("currentTime", java.lang.System.currentTimeMillis());
131+
}
132+
});
133+
latch.countDown();
164134
});
165-
166135
latch.await(10, TimeUnit.SECONDS);
167-
168136
assertEquals(0, latch.getCount());
169137
}
170138

@@ -216,32 +184,25 @@ public void invokeClientAction() throws Exception {
216184
final String clientActionName = "clientAction";
217185

218186
CountDownLatch latch = new CountDownLatch(1);
219-
desktopConnection.getChannel(channelName).create(new AsyncCallback<ChannelProvider>() {
220-
@Override
221-
public void onSuccess(ChannelProvider provider) {
222-
provider.register(providerActionName, new ChannelAction() {
187+
desktopConnection.getChannel(channelName).createAsync().thenAccept(provider -> {
188+
provider.register(providerActionName, new ChannelAction() {
189+
@Override
190+
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
191+
provider.dispatch(senderIdentity, clientActionName, new JSONObject(), null);
192+
return null;
193+
}
194+
});
195+
196+
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
197+
client.register(clientActionName, new ChannelAction() {
223198
@Override
224199
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
225-
provider.dispatch(senderIdentity, clientActionName, new JSONObject(), null);
200+
latch.countDown();
226201
return null;
227202
}
228203
});
229-
230-
desktopConnection.getChannel(channelName).connect(new AsyncCallback<ChannelClient>() {
231-
@Override
232-
public void onSuccess(ChannelClient client) {
233-
client.register(clientActionName, new ChannelAction() {
234-
@Override
235-
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
236-
latch.countDown();
237-
return null;
238-
}
239-
});
240-
241-
client.dispatch(providerActionName, new JSONObject(), null);
242-
}
243-
});
244-
}
204+
client.dispatch(providerActionName, new JSONObject(), null);
205+
});
245206
});
246207

247208
latch.await(10, TimeUnit.SECONDS);
@@ -256,31 +217,23 @@ public void publishToClient() throws Exception {
256217
final String actionMessage = "actionMessage";
257218

258219
CountDownLatch latch = new CountDownLatch(1);
259-
desktopConnection.getChannel(channelName).create(new AsyncCallback<ChannelProvider>() {
260-
@Override
261-
public void onSuccess(ChannelProvider provider) {
262-
desktopConnection.getChannel(channelName).connect(new AsyncCallback<ChannelClient>() {
263-
@Override
264-
public void onSuccess(ChannelClient client) {
265-
220+
desktopConnection.getChannel(channelName).createAsync().thenAccept(provider -> {
221+
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
266222
client.register(actionName, new ChannelAction() {
267223
@Override
268224
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
269-
if (actionName.equals(action) && actionMessage.equals(((JSONObject)payload).getString("message"))) {
225+
if (actionName.equals(action) && actionMessage.equals(((JSONObject) payload).getString("message"))) {
270226
latch.countDown();
271227
}
272228
return null;
273229
}
274230
});
275-
231+
276232
JSONObject payload = new JSONObject();
277233
payload.put("message", actionMessage);
278234
provider.publish(actionName, payload, null);
279-
}
235+
});
280236
});
281-
}
282-
});
283-
284237
latch.await(10, TimeUnit.SECONDS);
285238

286239
assertEquals(0, latch.getCount());
@@ -291,25 +244,22 @@ public void connectionListener() throws Exception {
291244
final String channelName = "connectionListenerTest";
292245
CountDownLatch latch = new CountDownLatch(2);
293246

294-
desktopConnection.getChannel(channelName).create(new AsyncCallback<ChannelProvider>() {
295-
@Override
296-
public void onSuccess(ChannelProvider provider) {
297-
desktopConnection.getChannel(channelName).addChannelListener(new ChannelListener() {
298-
@Override
299-
public void onChannelConnect(ConnectionEvent connectionEvent) {
300-
latch.countDown();
301-
}
247+
desktopConnection.getChannel(channelName).createAsync().thenAccept(provider -> {
248+
desktopConnection.getChannel(channelName).addChannelListener(new ChannelListener() {
249+
@Override
250+
public void onChannelConnect(ConnectionEvent connectionEvent) {
251+
latch.countDown();
252+
}
302253

303-
@Override
304-
public void onChannelDisconnect(ConnectionEvent connectionEvent) {
305-
latch.countDown();
306-
}
307-
});
254+
@Override
255+
public void onChannelDisconnect(ConnectionEvent connectionEvent) {
256+
latch.countDown();
257+
}
258+
});
308259

309-
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
310-
client.disconnect();
311-
});
312-
}
260+
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
261+
client.disconnect();
262+
});
313263
});
314264

315265
latch.await(10, TimeUnit.SECONDS);
@@ -326,50 +276,35 @@ public void middlewareAction() throws Exception {
326276
final AtomicInteger resultValue = new AtomicInteger(-1);
327277

328278
CountDownLatch latch = new CountDownLatch(1);
329-
desktopConnection.getChannel(channelName).create(new AsyncCallback<ChannelProvider>() {
330-
@Override
331-
public void onSuccess(ChannelProvider provider) {
332-
provider.setBeforeAction(new Middleware() {
333-
334-
@Override
335-
public Object invoke(String action, Object payload, JSONObject senderId) {
336-
if (actionName.equals(action)) {
337-
int value = ((JSONObject)payload).getInt("value");
338-
((JSONObject)payload).put("value", value + middlewareIncrement);
339-
}
340-
return payload;
341-
}});
342-
343-
provider.register(actionName, new ChannelAction() {
344-
@Override
345-
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
346-
int currentValue = ((JSONObject)payload).getInt("value");
347-
return ((JSONObject) payload).put("value", currentValue + 1);
279+
desktopConnection.getChannel(channelName).createAsync().thenAccept(provider -> {
280+
provider.setBeforeAction(new Middleware() {
281+
@Override
282+
public Object invoke(String action, Object payload, JSONObject senderId) {
283+
if (actionName.equals(action)) {
284+
int value = ((JSONObject)payload).getInt("value");
285+
((JSONObject)payload).put("value", value + middlewareIncrement);
348286
}
349-
});
350-
351-
desktopConnection.getChannel(channelName).connect(new AsyncCallback<ChannelClient>() {
352-
353-
@Override
354-
public void onSuccess(ChannelClient client) {
355-
JSONObject payload = new JSONObject();
356-
payload.put("value", initValue);
357-
client.dispatch(actionName, payload, new AckListener() {
358-
@Override
359-
public void onSuccess(Ack ack) {
360-
resultValue.set(ack.getJsonObject().getJSONObject("data").getJSONObject("result")
361-
.getInt("value"));
362-
latch.countDown();
363-
}
364-
365-
@Override
366-
public void onError(Ack ack) {
367-
}
368-
});
287+
return payload;
288+
}
289+
});
290+
provider.register(actionName, new ChannelAction() {
291+
@Override
292+
public JSONObject invoke(String action, Object payload, JSONObject senderIdentity) {
293+
int currentValue = ((JSONObject)payload).getInt("value");
294+
return ((JSONObject) payload).put("value", currentValue + 1);
295+
}
296+
});
297+
desktopConnection.getChannel(channelName).connectAsync().thenAccept(client -> {
298+
JSONObject payload = new JSONObject();
299+
payload.put("value", initValue);
300+
client.dispatchAsync(actionName, payload).thenAccept(ack -> {
301+
if (ack.isSuccessful()) {
302+
resultValue.set(ack.getJsonObject().getJSONObject("data").getJSONObject("result")
303+
.getInt("value"));
304+
latch.countDown();
369305
}
370-
371306
});
372-
}
307+
});
373308
});
374309

375310
latch.await(10, TimeUnit.SECONDS);

0 commit comments

Comments
 (0)