@@ -125,7 +125,7 @@ public void test_Does_fire_all_callbacks() throws Exception {
125125 .setOnException (errors ::add )
126126 .start ())
127127 {
128- while (connectMsgs .size () == 0 || commands .size () == 0 ) {
128+ while (connectMsgs .size () < 1 || commands .size () < 1 ) {
129129 Thread .sleep (100 );
130130 }
131131
@@ -145,7 +145,7 @@ public void test_Does_fire_all_callbacks() throws Exception {
145145 .setOnConnect (connectMsgs ::add )
146146 .start ())
147147 {
148- while (connectMsgs .size () == 0 || commands .size () == 0 ) {
148+ while (connectMsgs .size () < 1 || commands .size () < 1 ) {
149149 Thread .sleep (100 );
150150 }
151151
@@ -180,6 +180,39 @@ private void postChat(ServerEventsClient client, String message, String channel)
180180 .setSelector ("cmd.chat" ));
181181 }
182182
183+ private void postRaw (ServerEventsClient client , String selector , String message ) {
184+ postRaw (client , selector , message , null );
185+ }
186+
187+ private void postRaw (ServerEventsClient client , String selector , String message , String channel ) {
188+ client .getServiceClient ().post (new PostRawToChannel ()
189+ .setFrom (client .getSubscriptionId ())
190+ .setMessage (message )
191+ .setChannel (channel != null ? channel : ServerEventsClient .UnknownChannel )
192+ .setSelector (selector ));
193+ }
194+
195+ private void postObject (ServerEventsClient client , CustomType dto ){
196+ postObject (client , dto , null , null );
197+ }
198+
199+ private void postObject (ServerEventsClient client , CustomType dto , String selector ){
200+ postObject (client , dto , selector , null );
201+ }
202+
203+ private void postObject (ServerEventsClient client , CustomType dto , String selector , String channel ){
204+ client .getServiceClient ().post (new PostObjectToChannel ()
205+ .setCustomType (dto )
206+ .setChannel (channel != null ? channel : ServerEventsClient .UnknownChannel )
207+ .setSelector (selector ));
208+ }
209+
210+ private void postObject (ServerEventsClient client , SetterType dto ){
211+ client .getServiceClient ().post (new PostObjectToChannel ()
212+ .setSetterType (dto )
213+ .setChannel (ServerEventsClient .UnknownChannel ));
214+ }
215+
183216 public void test_Does_receive_messages () throws Exception {
184217
185218 List <ServerEventConnect > connectMsgs = new ArrayList <>();
@@ -199,7 +232,7 @@ public void test_Does_receive_messages() throws Exception {
199232 {
200233 client1 .start ();
201234
202- while (connectMsgs .size () == 0 || commands .size () == 0 ) {
235+ while (connectMsgs .size () < 1 || commands .size () < 1 ) {
203236 Thread .sleep (100 );
204237 }
205238
@@ -212,7 +245,7 @@ public void test_Does_receive_messages() throws Exception {
212245 ServerEventConnect info1 = connectMsgs .get (0 );
213246 postChat (client1 , "hello from client1" );
214247
215- while (msgs1 .size () == 0 || msgs2 .size () == 0 ) {
248+ while (msgs1 .size () < 1 || msgs2 .size () < 1 ) {
216249 Thread .sleep (100 );
217250 }
218251
@@ -290,13 +323,13 @@ public void test_Does_reconnect_on_lost_connection() throws Exception {
290323 .setOnMessage (msgs1 ::add )
291324 .start ()) {
292325
293- while (connectMsgs .size () == 0 ){
326+ while (connectMsgs .size () < 1 ){
294327 Thread .sleep (100 );
295328 }
296329
297330 postChat (client1 , "msg1 from client1" );
298331
299- while (msgs1 .size () == 0 ){
332+ while (msgs1 .size () < 1 ){
300333 Thread .sleep (100 );
301334 }
302335
@@ -357,18 +390,6 @@ public void test_Does_send_message_to_Handler() throws Exception {
357390 }
358391 }
359392
360-
361- private void postObject (ServerEventsClient client , CustomType dto , String selector ){
362- postObject (client , dto , selector , null );
363- }
364-
365- private void postObject (ServerEventsClient client , CustomType dto , String selector , String channel ){
366- client .getServiceClient ().post (new PostObjectToChannel ()
367- .setCustomType (dto )
368- .setChannel (channel != null ? channel : ServerEventsClient .UnknownChannel )
369- .setSelector (selector ));
370- }
371-
372393 public void test_Does_send_message_to_named_receiver () throws Exception {
373394 List <ServerEventMessage > msgs1 = new ArrayList <>();
374395
@@ -432,4 +453,107 @@ public void test_Does_send_message_to_named_receiver() throws Exception {
432453 assertEquals ("Qux" , qux .getName ());
433454 }
434455 }
456+
457+ public void test_Does_send_message_to_global_receiver () throws Exception {
458+ List <ServerEventMessage > msgs1 = new ArrayList <>();
459+
460+ try (ServerEventsClient client1 = new ServerEventsClient ("http://chat.servicestack.net" )
461+ .registerReceiver (TestGlobalReceiver .class )
462+ .setOnMessage (msgs1 ::add )
463+ .start ()
464+ .waitTillConnected ()) {
465+
466+ postObject (client1 , new CustomType ()
467+ .setId (1 )
468+ .setName ("Foo" ));
469+
470+ while (msgs1 .size () < 1 ){
471+ Thread .sleep (100 );
472+ }
473+
474+ CustomType foo = TestGlobalReceiver .FooMethodReceived ;
475+ assertNotNull (foo );
476+ assertEquals (1 , foo .getId ().intValue ());
477+ assertEquals ("Foo" , foo .getName ());
478+ }
479+ }
480+
481+ public void test_Does_set_properties_on_global_receiver () throws Exception {
482+ List <ServerEventMessage > msgs1 = new ArrayList <>();
483+
484+ try (ServerEventsClient client1 = new ServerEventsClient ("http://chat.servicestack.net" )
485+ .registerReceiver (TestGlobalReceiver .class )
486+ .setOnMessage (msgs1 ::add )
487+ .start ()
488+ .waitTillConnected ()) {
489+
490+ postObject (client1 , new SetterType ()
491+ .setId (1 )
492+ .setName ("Foo" ));
493+
494+ SetterType foo = TestGlobalReceiver .AnyNamedSetterReceived ;
495+ assertNotNull (foo );
496+ assertEquals (1 , foo .getId ().intValue ());
497+ assertEquals ("Foo" , foo .getName ());
498+ }
499+ }
500+
501+ public void test_Does_send_raw_string_messages () throws Exception {
502+ List <ServerEventMessage > msgs1 = new ArrayList <>();
503+
504+ try (ServerEventsClient client1 = new ServerEventsClient ("http://chat.servicestack.net" )
505+ .registerReceiver (TestJavaScriptReceiver .class )
506+ .registerNamedReceiver ("css" , TestJavaScriptReceiver .class )
507+ .setOnMessage (msgs1 ::add )
508+ .start ()
509+ .waitTillConnected ()) {
510+
511+ postChat (client1 , "chat msg" );
512+
513+ while (msgs1 .size () < 1 ) {
514+ Thread .sleep (100 );
515+ }
516+
517+ ChatMessage chatMsg = TestJavaScriptReceiver .ChatReceived ;
518+ assertNotNull (chatMsg );
519+ assertEquals ("chat msg" , chatMsg .getMessage ());
520+
521+ postRaw (client1 , "cmd.announce" , "This is your captain speaking..." );
522+
523+ while (msgs1 .size () < 2 ) {
524+ Thread .sleep (100 );
525+ }
526+
527+ String announce = TestJavaScriptReceiver .AnnounceReceived ;
528+ assertEquals ("This is your captain speaking..." , announce );
529+
530+ postRaw (client1 , "cmd.toggle$#channels" , null );
531+
532+ while (msgs1 .size () < 3 ) {
533+ Thread .sleep (100 );
534+ }
535+
536+ String toggle = TestJavaScriptReceiver .ToggleReceived ;
537+ assertEquals ("" , toggle );
538+ ServerEventMessage toggleRequest = TestJavaScriptReceiver .ToggleRequestReceived ;
539+ assertEquals ("cmd.toggle$#channels" , toggleRequest .getSelector ());
540+ assertEquals ("cmd" , toggleRequest .getOp ());
541+ assertEquals ("toggle" , toggleRequest .getTarget ());
542+ assertEquals ("#channels" , toggleRequest .getCssSelector ());
543+
544+ postRaw (client1 , "css.background-image$#top" , "url(http://bit.ly/1yIJOBH)" );
545+
546+ while (msgs1 .size () < 4 ) {
547+ Thread .sleep (100 );
548+ }
549+
550+ String bgImage = TestJavaScriptReceiver .BackgroundImageReceived ;
551+ assertEquals ("url(http://bit.ly/1yIJOBH)" , bgImage );
552+ ServerEventMessage bgImageRequest = TestJavaScriptReceiver .BackgroundImageRequestReceived ;
553+ assertEquals ("css.background-image$#top" , bgImageRequest .getSelector ());
554+ assertEquals ("css" , bgImageRequest .getOp ());
555+ assertEquals ("background-image" , bgImageRequest .getTarget ());
556+ assertEquals ("#top" , bgImageRequest .getCssSelector ());
557+ }
558+ }
435559}
0 commit comments