22
33import static org .junit .Assert .assertEquals ;
44
5+ import java .util .Objects ;
56import java .util .concurrent .CountDownLatch ;
67import java .util .concurrent .TimeUnit ;
78import java .util .concurrent .atomic .AtomicBoolean ;
2425import 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