1212
1313import java .io .IOException ;
1414import java .util .Arrays ;
15+ import java .util .HashMap ;
1516import java .util .List ;
17+ import java .util .Map ;
1618
1719import static com .github .tomakehurst .wiremock .client .WireMock .*;
1820import static org .junit .Assert .assertEquals ;
@@ -37,64 +39,84 @@ public void beforeEach() throws IOException {
3739 public void applyStateForChannelSync () throws PubNubException , InterruptedException {
3840
3941 stubFor (get (urlPathEqualTo ("/v2/presence/sub-key/mySubscribeKey/channel/testChannel/uuid/myUUID/data" ))
42+ .withQueryParam ("uuid" , matching ("myUUID" ))
43+ .withQueryParam ("pnsdk" , matching ("Java/suchJava" ))
44+ .withQueryParam ("state" , matching ("%7B%22age%22%3A20%7D" ))
4045 .willReturn (aResponse ().withBody ("{ \" status\" : 200, \" message\" : \" OK\" , \" payload\" : { \" age\" : 20, \" status\" : \" online\" }, \" service\" : \" Presence\" }" )));
4146
42- PNSetStateResult result = partialSetState .channels (Arrays .asList ("testChannel" )).state (Arrays .asList ("s1" , "s2" , "s3" )).sync ();
47+ Map <String , Object > myState = new HashMap <>();
48+ myState .put ("age" , 20 );
49+
50+ PNSetStateResult result = partialSetState .channels (Arrays .asList ("testChannel" )).state (myState ).sync ();
4351 assertEquals (result .getState ().get ("age" ), 20 );
4452 assertEquals (result .getState ().get ("status" ), "online" );
4553
4654 List <LoggedRequest > requests = findAll (getRequestedFor (urlMatching ("/.*" )));
4755 assertEquals (1 , requests .size ());
48- assertEquals ("%5B%22s1%22%2C%22s2%22%2C%22s3%22%5D" , requests .get (0 ).queryParameter ("state" ).firstValue ());
49-
5056 }
5157
5258 @ Test
5359 public void applyStateForChannelsSync () throws PubNubException , InterruptedException {
5460
5561 stubFor (get (urlPathEqualTo ("/v2/presence/sub-key/mySubscribeKey/channel/testChannel,testChannel2/uuid/myUUID/data" ))
62+ .withQueryParam ("uuid" , matching ("myUUID" ))
63+ .withQueryParam ("pnsdk" , matching ("Java/suchJava" ))
64+ .withQueryParam ("state" , matching ("%7B%22age%22%3A20%7D" ))
5665 .willReturn (aResponse ().withBody ("{ \" status\" : 200, \" message\" : \" OK\" , \" payload\" : { \" age\" : 20, \" status\" : \" online\" }, \" service\" : \" Presence\" }" )));
5766
58- PNSetStateResult result = partialSetState .channels (Arrays .asList ("testChannel" , "testChannel2" )).state (Arrays .asList ("s1" , "s2" , "s3" )).sync ();
67+ Map <String , Object > myState = new HashMap <>();
68+ myState .put ("age" , 20 );
69+
70+ PNSetStateResult result = partialSetState .channels (Arrays .asList ("testChannel" , "testChannel2" )).state (myState ).sync ();
5971 assertEquals (result .getState ().get ("age" ), 20 );
6072 assertEquals (result .getState ().get ("status" ), "online" );
6173
6274 List <LoggedRequest > requests = findAll (getRequestedFor (urlMatching ("/.*" )));
6375 assertEquals (1 , requests .size ());
64- assertEquals ( "%5B%22s1%22%2C%22s2%22%2C%22s3%22%5D" , requests . get ( 0 ). queryParameter ( "state" ). firstValue ());
76+
6577 }
6678
6779 @ Test
6880 public void applyStateForChannelGroupSync () throws PubNubException , InterruptedException {
6981
7082 stubFor (get (urlPathEqualTo ("/v2/presence/sub-key/mySubscribeKey/channel/,/uuid/myUUID/data" ))
83+ .withQueryParam ("uuid" , matching ("myUUID" ))
84+ .withQueryParam ("pnsdk" , matching ("Java/suchJava" ))
85+ .withQueryParam ("state" , matching ("%7B%22age%22%3A20%7D" ))
7186 .willReturn (aResponse ().withBody ("{ \" status\" : 200, \" message\" : \" OK\" , \" payload\" : { \" age\" : 20, \" status\" : \" online\" }, \" service\" : \" Presence\" }" )));
7287
73- PNSetStateResult result = partialSetState .channelGroups (Arrays .asList ("cg1" )).state (Arrays .asList ("s1" , "s2" , "s3" )).sync ();
88+ Map <String , Object > myState = new HashMap <>();
89+ myState .put ("age" , 20 );
90+
91+ PNSetStateResult result = partialSetState .channelGroups (Arrays .asList ("cg1" )).state (myState ).sync ();
7492
7593 assertEquals (result .getState ().get ("age" ), 20 );
7694 assertEquals (result .getState ().get ("status" ), "online" );
7795
7896 List <LoggedRequest > requests = findAll (getRequestedFor (urlMatching ("/.*" )));
7997 assertEquals (1 , requests .size ());
80- assertEquals ("%5B%22s1%22%2C%22s2%22%2C%22s3%22%5D" , requests .get (0 ).queryParameter ("state" ).firstValue ());
81- assertEquals ("cg1" , requests .get (0 ).queryParameter ("channel-group" ).firstValue ());
98+
8299 }
83100
84101 @ Test
85102 public void applyStateForChannelGroupsSync () throws PubNubException , InterruptedException {
86103
87104 stubFor (get (urlPathEqualTo ("/v2/presence/sub-key/mySubscribeKey/channel/,/uuid/myUUID/data" ))
105+ .withQueryParam ("uuid" , matching ("myUUID" ))
106+ .withQueryParam ("pnsdk" , matching ("Java/suchJava" ))
107+ .withQueryParam ("state" , matching ("%7B%22age%22%3A20%7D" ))
88108 .willReturn (aResponse ().withBody ("{ \" status\" : 200, \" message\" : \" OK\" , \" payload\" : { \" age\" : 20, \" status\" : \" online\" }, \" service\" : \" Presence\" }" )));
89109
90- PNSetStateResult result = partialSetState .channelGroups (Arrays .asList ("cg1" , "cg2" )).state (Arrays .asList ("s1" , "s2" , "s3" )).sync ();
110+ Map <String , Object > myState = new HashMap <>();
111+ myState .put ("age" , 20 );
112+
113+ PNSetStateResult result = partialSetState .channelGroups (Arrays .asList ("cg1" , "cg2" )).state (myState ).sync ();
91114
92115 assertEquals (result .getState ().get ("age" ), 20 );
93116 assertEquals (result .getState ().get ("status" ), "online" );
94117
95118 List <LoggedRequest > requests = findAll (getRequestedFor (urlMatching ("/.*" )));
96119 assertEquals (1 , requests .size ());
97- assertEquals ("%5B%22s1%22%2C%22s2%22%2C%22s3%22%5D" , requests .get (0 ).queryParameter ("state" ).firstValue ());
98120 assertEquals ("cg1,cg2" , requests .get (0 ).queryParameter ("channel-group" ).firstValue ());
99121
100122 }
@@ -103,37 +125,51 @@ public void applyStateForChannelGroupsSync() throws PubNubException, Interrupted
103125 public void applyStateForMixSync () throws PubNubException , InterruptedException {
104126
105127 stubFor (get (urlPathEqualTo ("/v2/presence/sub-key/mySubscribeKey/channel/ch1/uuid/myUUID/data" ))
128+ .withQueryParam ("uuid" , matching ("myUUID" ))
129+ .withQueryParam ("pnsdk" , matching ("Java/suchJava" ))
130+ .withQueryParam ("state" , matching ("%7B%22age%22%3A20%7D" ))
106131 .willReturn (aResponse ().withBody ("{ \" status\" : 200, \" message\" : \" OK\" , \" payload\" : { \" age\" : 20, \" status\" : \" online\" }, \" service\" : \" Presence\" }" )));
107132
108- PNSetStateResult result = partialSetState .channels (Arrays .asList ("ch1" )).channelGroups (Arrays .asList ("cg1" , "cg2" )).state (Arrays .asList ("s1" , "s2" , "s3" )).sync ();
133+ Map <String , Object > myState = new HashMap <>();
134+ myState .put ("age" , 20 );
135+
136+ PNSetStateResult result = partialSetState .channels (Arrays .asList ("ch1" )).channelGroups (Arrays .asList ("cg1" , "cg2" )).state (myState ).sync ();
109137
110138 assertEquals (result .getState ().get ("age" ), 20 );
111139 assertEquals (result .getState ().get ("status" ), "online" );
112140
113141 List <LoggedRequest > requests = findAll (getRequestedFor (urlMatching ("/.*" )));
114142 assertEquals (1 , requests .size ());
115- assertEquals ("%5B%22s1%22%2C%22s2%22%2C%22s3%22%5D" , requests .get (0 ).queryParameter ("state" ).firstValue ());
116- assertEquals ("cg1,cg2" , requests .get (0 ).queryParameter ("channel-group" ).firstValue ());
117143
118144 }
119145
120146 @ org .junit .Test (expected = PubNubException .class )
121147 public void applyNon200Sync () throws PubNubException , InterruptedException {
122148
123149 stubFor (get (urlPathEqualTo ("/v2/presence/sub-key/mySubscribeKey/channel/ch1/uuid/myUUID/data" ))
150+ .withQueryParam ("uuid" , matching ("myUUID" ))
151+ .withQueryParam ("pnsdk" , matching ("Java/suchJava" ))
152+ .withQueryParam ("state" , matching ("%7B%22status%22%3A%22oneline%22%2C%22age%22%3A20%7D" ))
124153 .willReturn (aResponse ().withBody ("{ \" status\" : 200, \" message\" : \" OK\" , \" payload\" : { \" age\" : 20, \" status\" : \" online\" }, \" service\" : \" Presence\" }" ).withStatus (400 )));
125154
126155
127- PNSetStateResult result = partialSetState .channels (Arrays .asList ("ch1" )).channelGroups (Arrays .asList ("cg1" , "cg2" )).state (Arrays .asList ("s1" , "s2" , "s3" )).sync ();
156+ Map <String , Object > myState = new HashMap <>();
157+ myState .put ("age" , 20 );
158+
159+ PNSetStateResult result = partialSetState .channels (Arrays .asList ("ch1" )).channelGroups (Arrays .asList ("cg1" , "cg2" )).state (myState ).sync ();
160+
128161 }
129162
130163 @ org .junit .Test (expected = PubNubException .class )
131- public void MissimStateSync () throws PubNubException , InterruptedException {
164+ public void MissingStateSync () throws PubNubException , InterruptedException {
132165
133166 stubFor (get (urlPathEqualTo ("/v2/presence/sub-key/mySubscribeKey/channel/testChannel/uuid/myUUID/data" ))
167+ .withQueryParam ("uuid" , matching ("myUUID" ))
168+ .withQueryParam ("pnsdk" , matching ("Java/suchJava" ))
134169 .willReturn (aResponse ().withBody ("{ \" status\" : 200, \" message\" : \" OK\" , \" payload\" : { \" age\" : 20, \" status\" : \" online\" }, \" service\" : \" Presence\" }" )));
135170
136171 PNSetStateResult result = partialSetState .channels (Arrays .asList ("testChannel" )).sync ();
172+
137173 }
138174
139175
0 commit comments