diff --git a/CHANGELOG.md b/CHANGELOG.md index 7eb560a24..06f36fd2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ +4.0.4 +- setting State for other UUID's is now supported (again) + 4.0.3 - fire() method and no-replicaton options. diff --git a/VERSION b/VERSION index c4e41f945..c5106e6d1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.3 +4.0.4 diff --git a/build.gradle b/build.gradle index e742ef1b2..c4123044c 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { id 'findbugs' } group = 'com.pubnub' -version = '4.0.3' +version = '4.0.4' description = """""" diff --git a/src/main/java/com/pubnub/api/PubNub.java b/src/main/java/com/pubnub/api/PubNub.java index 70f018453..f580e33f3 100644 --- a/src/main/java/com/pubnub/api/PubNub.java +++ b/src/main/java/com/pubnub/api/PubNub.java @@ -50,7 +50,7 @@ public class PubNub { private static final int TIMESTAMP_DIVIDER = 1000; private static final int MAX_SEQUENCE = 65535; - private static final String SDK_VERSION = "4.0.3"; + private static final String SDK_VERSION = "4.0.4"; public PubNub(final PNConfiguration initialConfig) { this.configuration = initialConfig; diff --git a/src/main/java/com/pubnub/api/endpoints/presence/SetState.java b/src/main/java/com/pubnub/api/endpoints/presence/SetState.java index 842ef93ee..363892019 100644 --- a/src/main/java/com/pubnub/api/endpoints/presence/SetState.java +++ b/src/main/java/com/pubnub/api/endpoints/presence/SetState.java @@ -37,6 +37,8 @@ public class SetState extends Endpoint>, PNSetState private List channelGroups; @Setter private Object state; + @Setter + private String uuid; public SetState(PubNub pubnubInstance, SubscriptionManager subscriptionManagerInstance) { super(pubnubInstance); @@ -61,14 +63,18 @@ protected void validateParams() throws PubNubException { @Override protected Call>> doWork(Map params) throws PubNubException { ObjectWriter ow = new ObjectMapper().writer(); + String selectedUUID = uuid != null ? uuid : this.getPubnub().getConfiguration().getUuid(); String stringifiedState; - StateOperation stateOperation = StateOperation.builder() - .state(state) - .channels(channels) - .channelGroups(channelGroups) - .build(); - subscriptionManager.adaptStateBuilder(stateOperation); + // only store the state change if we are modifying it for ourselves. + if (selectedUUID.equals(this.getPubnub().getConfiguration().getUuid())) { + StateOperation stateOperation = StateOperation.builder() + .state(state) + .channels(channels) + .channelGroups(channelGroups) + .build(); + subscriptionManager.adaptStateBuilder(stateOperation); + } PresenceService service = this.createRetrofit().create(PresenceService.class); @@ -87,7 +93,7 @@ protected Call>> doWork(Map params) String channelCSV = channels.size() > 0 ? PubNubUtil.joinString(channels, ",") : ","; - return service.setState(this.getPubnub().getConfiguration().getSubscribeKey(), channelCSV, this.getPubnub().getConfiguration().getUuid(), params); + return service.setState(this.getPubnub().getConfiguration().getSubscribeKey(), channelCSV, selectedUUID, params); } @Override diff --git a/src/test/java/com/pubnub/api/endpoints/access/AuditEndpointTest.java b/src/test/java/com/pubnub/api/endpoints/access/AuditEndpointTest.java index 6c59322cb..b8a652180 100644 --- a/src/test/java/com/pubnub/api/endpoints/access/AuditEndpointTest.java +++ b/src/test/java/com/pubnub/api/endpoints/access/AuditEndpointTest.java @@ -41,10 +41,10 @@ public void beforeEach() throws IOException { public void testSuccessChannelGroupSync() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/audit/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel-group", matching("cg1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("IjnQ0J7c0SYT3gHBxrIC_8OkDHTqsF9KnI0SlBRLNfg%3D%0A")) + .withQueryParam("signature", matching("rXy69MNT1vceNs3Ob6HnjShUAzCV5x4OumSG1lSPL6s%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .willReturn(aResponse().withBody("{\"message\":\"Success\",\"payload\":{\"level\":\"channel-group+auth\",\"subscribe_key\":\"sub-c-82ab2196-b64f-11e5-8622-0619f8945a4f\",\"channel-group\":\"cg2\",\"auths\":{\"key1\":{\"r\":1,\"m\":1,\"w\":1}}},\"service\":\"Access Manager\",\"status\":200}"))); @@ -67,10 +67,10 @@ public void testSuccessChannelGroupSync() throws PubNubException { public void testSuccessChannelSync() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/audit/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("ZlPruaId7jzupmK4LUynpnjvA2CQYyrrT0475wWkbwY%3D%0A")) + .withQueryParam("signature", matching("oICb_S5OubabiqrEA9vDqQ-Ri4PdztWLs6__fQQP_Gs%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .willReturn(aResponse().withBody("{\"message\":\"Success\",\"payload\":{\"level\":\"user\",\"subscribe_key\":\"sub-c-82ab2196-b64f-11e5-8622-0619f8945a4f\",\"channel\":\"ch1\",\"auths\":{\"key1\":{\"r\":1,\"m\":1,\"w\":1}}},\"service\":\"Access Manager\",\"status\":200}"))); @@ -92,7 +92,7 @@ public void testSuccessChannelSync() throws PubNubException { public void testSuccessChannelMissingKeySync() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/audit/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) .withQueryParam("signature", matching("ZlPruaId7jzupmK4LUynpnjvA2CQYyrrT0475wWkbwY%3D%0A")) diff --git a/src/test/java/com/pubnub/api/endpoints/access/GrantEndpointTest.java b/src/test/java/com/pubnub/api/endpoints/access/GrantEndpointTest.java index 9dc0257e8..ecd10e79c 100644 --- a/src/test/java/com/pubnub/api/endpoints/access/GrantEndpointTest.java +++ b/src/test/java/com/pubnub/api/endpoints/access/GrantEndpointTest.java @@ -39,10 +39,10 @@ public void beforeEach() throws IOException { public void NoGroupsOneChannelOneKeyTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("KQ1g-hpCnWGD6DfR0J30xkB0KwBhbIBlLqKi8GNoD7M%3D%0A")) + .withQueryParam("signature", matching("HlyfXDFhdgNhKfBzGaouxh2T2SRimm4bVq_JVKLRPQI%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -64,10 +64,10 @@ public void NoGroupsOneChannelOneKeyTest() throws PubNubException { public void NoGroupsOneChannelTwoKeyTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("hlFr8HmcEIK51rEc-jhwym89SgCeAKvzhTYphwD_Sqw%3D%0A")) + .withQueryParam("signature", matching("sbcQS0RjU7uq0Q9YqN7HFJO26SlgVXPejhmVJJ2w5OU%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -89,10 +89,10 @@ public void NoGroupsOneChannelTwoKeyTest() throws PubNubException { public void NoGroupsTwoChannelOneKeyTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1,ch2")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("YSf7ataHaZQj0-kE9P5-0ACR4fjrzzGJbzRSoF3J4UQ%3D%0A")) + .withQueryParam("signature", matching("pizC0huUiyQFdOnNDGxjU9xX6b9GFcslSm6bqfrimq4%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -115,10 +115,10 @@ public void NoGroupsTwoChannelOneKeyTest() throws PubNubException { public void NoGroupsTwoChannelTwoKeyTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1,ch2")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("q9gzdsS-Z_Ff21ZfiXEakG3fkOWsT49MEn4ZKFxjehY%3D%0A")) + .withQueryParam("signature", matching("SRklo_IoAeNbvmp_xQV0kwL8vLz2vTEk14umB7v6K-w%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -143,10 +143,10 @@ public void NoGroupsTwoChannelTwoKeyTest() throws PubNubException { public void OneGroupNoChannelOneKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel-group", matching("cg1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("BGNIzQq6T-X_ES7RjSeUh0L_THx6RP956DBRIfilQCE%3D%0A")) + .withQueryParam("signature", matching("kqLDzzhvhUQ9Ri3j2xRFDvMYDbLQ2aM3erz52QL_IQ0%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -168,10 +168,10 @@ public void OneGroupNoChannelOneKey() throws PubNubException { public void OneGroupNoChannelTwoKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel-group", matching("cg1")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("vBxdD0-HPCuKoVlXL2c7JYeAmDVBN-TGodVJXFbOLcI%3D%0A")) + .withQueryParam("signature", matching("ET_b6B8vPfdyvwM1eJLitDERcwykGhTkuQNeryH7q5o%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -194,11 +194,11 @@ public void OneGroupNoChannelTwoKey() throws PubNubException { public void OneGroupOneChannelOneKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("channel-group", matching("cg1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("eRwmB_DpD7rdR6qZDm4fh2PiXfdYbFXbwIcq-oVQOaY%3D%0A")) + .withQueryParam("signature", matching("QqOQSjo6VEG4JUp6NSBjc4SQ5lqTPoPGeOgzuXF6fbE%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -223,11 +223,11 @@ public void OneGroupOneChannelOneKey() throws PubNubException { public void OneGroupOneChannelTwoKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("channel-group", matching("cg1")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("4ogB_IAapikN32FOCXJQD2FOHfrFbZqFrOCRry2C3AY%3D%0A")) + .withQueryParam("signature", matching("G3-cvSBeaQmwWabOOoHMxIH78MlvcOdGJS83z6cH7RY%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -254,11 +254,11 @@ public void OneGroupOneChannelTwoKey() throws PubNubException { public void OneGroupTwoChannelOneKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1,ch2")) .withQueryParam("channel-group", matching("cg1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("SMoWF-RgW-2wGZ-wbzkaKwd6b3Zigq2gYFCxmw0Equs%3D%0A")) + .withQueryParam("signature", matching("LYQdmYjV0Gxbu_1uhey5wPyIJ2cZPTjp7Grc0oUwTl4%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -284,11 +284,11 @@ public void OneGroupTwoChannelOneKey() throws PubNubException { public void OneGroupTwoChannelTwoKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1,ch2")) .withQueryParam("channel-group", matching("cg1")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("FF-8u5mhNhbrWD5_XyIrCOPitG8YQbmeGYZXaiOQYBA%3D%0A")) + .withQueryParam("signature", matching("iMUJd9GHcLUeBpIgKD3JLUQ-B3t0XGa2D-IWrrV30_o%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -318,10 +318,10 @@ public void OneGroupTwoChannelTwoKey() throws PubNubException { public void TwoGroupNoChannelOneKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel-group", matching("cg1,cg2")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("6mss-Lh0eaN0G_TfY6WfFKBqePYe1j4blNGwJPMxTOs%3D%0A")) + .withQueryParam("signature", matching("FRx_2Pes924avZU3ldKb7Ry1u86jHOztltxdlicWvyA%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -345,10 +345,10 @@ public void TwoGroupNoChannelOneKey() throws PubNubException { public void TwoGroupNoChannelTwoKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel-group", matching("cg1,cg2")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("q2AUprf6ZUD4N96hMTCVm7hoMfDRC7xfG4XPyLLNWB4%3D%0A")) + .withQueryParam("signature", matching("N5VsRLfm6PXduKXTApCEa95E99JcR9aVMecejEiUJkI%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -373,11 +373,11 @@ public void TwoGroupNoChannelTwoKey() throws PubNubException { public void TwoGroupOneChannelOneKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("channel-group", matching("cg1,cg2")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("pRlfFAiCrKIqSPUjZgaI3ZLq9wK4-VUvhf_ispH6ow8%3D%0A")) + .withQueryParam("signature", matching("T3vn9bb7T6MG_KkST4i_80iYCAj0crgtJ-PUZVGI_Wg%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -403,11 +403,11 @@ public void TwoGroupOneChannelOneKey() throws PubNubException { public void TwoGroupOneChannelTwoKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("channel-group", matching("cg1,cg2")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("8H6V_0LqSBinnK5Po5LA29ny8CH8eGonzB6UomoXvXo%3D%0A")) + .withQueryParam("signature", matching("UzjgorbyDjwBxfu0Nr5V2VJ6J9614ihHiRwZ5yU20Ek%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -437,10 +437,10 @@ public void TwoGroupOneChannelTwoKey() throws PubNubException { public void TwoGroupTwoChannelOneKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1,ch2")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("yBYF6-JTkM8F-U-K4ACwzrPEN0iihJQUygz4JOh4rwU%3D%0A")) + .withQueryParam("signature", matching("7znRWub4WttnrofkghqBaxSE3XeQ0ZHtZU5QZB2ofR4%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -468,11 +468,11 @@ public void TwoGroupTwoChannelOneKey() throws PubNubException { public void TwoGroupTwoChannelTwoKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1,ch2")) .withQueryParam("channel-group", matching("cg1,cg2")) .withQueryParam("auth", matching("key1,key2")) - .withQueryParam("signature", matching("JLTTsGTwaaEORmY_zoZcCzYl4qEZVkid-YRSvKYMwUU%3D%0A")) + .withQueryParam("signature", matching("pX82pKukTC75_ZhHkcvUQXTuCYC7iuh_h2wmWWrO7hg%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -505,10 +505,10 @@ public void TwoGroupTwoChannelTwoKey() throws PubNubException { public void NoGroupsOneChannelOneKeyTTLTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("pzSNXZSiBMkzg15vOQrKoDkue8OWoxEB1afup9Godac%3D%0A")) + .withQueryParam("signature", matching("2XtpqL0DBNHCh6cKeCqxfJeq4sa8AG4vZFXT1quaVnw%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -531,10 +531,10 @@ public void NoGroupsOneChannelOneKeyTTLTest() throws PubNubException { public void NoGroupsOneChannelOneReadKeyTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("uVcT9Q_XiLPpR1kmIzD9OJ6mTa1V1GyvyBcKBWSDrJU%3D%0A")) + .withQueryParam("signature", matching("KgI1t0Y50H6mIZ12re8TyaMDoEx63NMHJ260kjyge38%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("1")) @@ -556,10 +556,10 @@ public void NoGroupsOneChannelOneReadKeyTest() throws PubNubException { public void NoGroupsOneChannelOneWriteKeyTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("-MirRhU4989XbPZEza82xvhZ0CdQIngM8b7qSUL1kDI%3D%0A")) + .withQueryParam("signature", matching("wQSMOVu0bvmyxt6F8_lc81dmsF_pz5f9VjOpe1FiB_w%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -581,10 +581,10 @@ public void NoGroupsOneChannelOneWriteKeyTest() throws PubNubException { public void NoGroupsOneChannelOneKeyManageTest() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) - .withQueryParam("signature", matching("_znR67zw5cdCq3Cmn1QHUHtFolkquYARh_JYCeMb8ig%3D%0A")) + .withQueryParam("signature", matching("TUtUB_2F738wA1tuENkDUedkVuTwGbtGXqE1PekesHA%3D%0A")) .withQueryParam("uuid", matching("myUUID")) .withQueryParam("timestamp", matching("1337")) .withQueryParam("r", matching("0")) @@ -607,7 +607,7 @@ public void NoGroupsOneChannelOneKeyManageTest() throws PubNubException { public void NoGroupsOneChannelMissingKey() throws PubNubException { stubFor(get(urlPathEqualTo("/v1/auth/grant/sub-key/mySubscribeKey")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("channel", matching("ch1")) .withQueryParam("auth", matching("key1")) .withQueryParam("signature", matching("_znR67zw5cdCq3Cmn1QHUHtFolkquYARh_JYCeMb8ig%3D%0A")) diff --git a/src/test/java/com/pubnub/api/endpoints/presence/SetStateEndpointTest.java b/src/test/java/com/pubnub/api/endpoints/presence/SetStateEndpointTest.java index ab6ebd9f8..c93d64606 100644 --- a/src/test/java/com/pubnub/api/endpoints/presence/SetStateEndpointTest.java +++ b/src/test/java/com/pubnub/api/endpoints/presence/SetStateEndpointTest.java @@ -40,7 +40,7 @@ public void applyStateForChannelSync() throws PubNubException, InterruptedExcept stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/testChannel/uuid/myUUID/data")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("state", matching("%7B%22age%22%3A20%7D")) .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}"))); @@ -55,12 +55,32 @@ public void applyStateForChannelSync() throws PubNubException, InterruptedExcept assertEquals(1, requests.size()); } + @Test + public void applyStateForSomebodyElseChannelSync() throws PubNubException, InterruptedException { + + stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/testChannel/uuid/someoneElseUUID/data")) + .withQueryParam("uuid", matching("myUUID")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) + .withQueryParam("state", matching("%7B%22age%22%3A20%7D")) + .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}"))); + + Map myState = new HashMap<>(); + myState.put("age", 20); + + PNSetStateResult result = partialSetState.channels(Arrays.asList("testChannel")).state(myState).uuid("someoneElseUUID").sync(); + assertEquals(result.getState().get("age"), 20); + assertEquals(result.getState().get("status"), "online"); + + List requests = findAll(getRequestedFor(urlMatching("/.*"))); + assertEquals(1, requests.size()); + } + @Test public void applyStateForChannelsSync() throws PubNubException, InterruptedException { stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/testChannel,testChannel2/uuid/myUUID/data")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("state", matching("%7B%22age%22%3A20%7D")) .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}"))); @@ -81,7 +101,7 @@ public void applyStateForChannelGroupSync() throws PubNubException, InterruptedE stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/,/uuid/myUUID/data")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("state", matching("%7B%22age%22%3A20%7D")) .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}"))); @@ -103,7 +123,7 @@ public void applyStateForChannelGroupsSync() throws PubNubException, Interrupted stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/,/uuid/myUUID/data")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("state", matching("%7B%22age%22%3A20%7D")) .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}"))); @@ -126,7 +146,7 @@ public void applyStateForMixSync() throws PubNubException, InterruptedException stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/ch1/uuid/myUUID/data")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("state", matching("%7B%22age%22%3A20%7D")) .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}"))); @@ -148,7 +168,7 @@ public void applyNon200Sync() throws PubNubException, InterruptedException { stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/ch1/uuid/myUUID/data")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("state", matching("%7B%22status%22%3A%22oneline%22%2C%22age%22%3A20%7D")) .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}").withStatus(400))); @@ -165,7 +185,7 @@ public void MissingStateSync() throws PubNubException, InterruptedException { stubFor(get(urlPathEqualTo("/v2/presence/sub-key/mySubscribeKey/channel/testChannel/uuid/myUUID/data")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .willReturn(aResponse().withBody("{ \"status\": 200, \"message\": \"OK\", \"payload\": { \"age\" : 20, \"status\" : \"online\" }, \"service\": \"Presence\"}"))); PNSetStateResult result = partialSetState.channels(Arrays.asList("testChannel")).sync(); diff --git a/src/test/java/com/pubnub/api/endpoints/pubsub/PublishTest.java b/src/test/java/com/pubnub/api/endpoints/pubsub/PublishTest.java index ce15d75fc..8fee54855 100644 --- a/src/test/java/com/pubnub/api/endpoints/pubsub/PublishTest.java +++ b/src/test/java/com/pubnub/api/endpoints/pubsub/PublishTest.java @@ -154,7 +154,7 @@ public void testSuccessStoreTrueSync() throws PubNubException, InterruptedExcept public void testSuccessMetaSync() throws PubNubException, InterruptedException { stubFor(get(urlPathEqualTo("/publish/myPublishKey/mySubscribeKey/0/coolChannel/0/%22hi%22")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("meta", matching("%5B%22m1%22%2C%22m2%22%5D")) .withQueryParam("store", matching("0")) .withQueryParam("seqn", matching("1")) diff --git a/src/test/java/com/pubnub/api/endpoints/pubsub/SubscribeEndpointTest.java b/src/test/java/com/pubnub/api/endpoints/pubsub/SubscribeEndpointTest.java index 8bf51a5ab..d552f4cd3 100644 --- a/src/test/java/com/pubnub/api/endpoints/pubsub/SubscribeEndpointTest.java +++ b/src/test/java/com/pubnub/api/endpoints/pubsub/SubscribeEndpointTest.java @@ -143,7 +143,7 @@ public void subscribeWithFilter() throws PubNubException { stubFor(get(urlPathEqualTo("/v2/subscribe/mySubscribeKey/,/0")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("filter-expr", matching("this%3D1%26that%3Dcool")) .withQueryParam("channel-group", matching("cg1")) .willReturn(aResponse().withBody("{\"t\":{\"t\":\"14607577960932487\",\"r\":1},\"m\":[{\"a\":\"4\",\"f\":0,\"i\":\"Client-g5d4g\",\"p\":{\"t\":\"14607577960925503\",\"r\":1},\"k\":\"sub-c-4cec9f8e-01fa-11e6-8180-0619f8945a4f\",\"c\":\"coolChannel\",\"d\":{\"text\":\"Enter Message Here\"},\"b\":\"coolChan-bnel\"}]}"))); diff --git a/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java b/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java index 1adc47660..702189415 100644 --- a/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java +++ b/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java @@ -339,7 +339,7 @@ public void testSubscribeWithFilterExpressionBuilder() { pubnub.getConfiguration().setFilterExpression("much=filtering"); stubFor(get(urlPathEqualTo("/v2/subscribe/mySubscribeKey/ch2,ch1/0")) .withQueryParam("uuid", matching("myUUID")) - .withQueryParam("pnsdk", matching("Java/suchJava")) + .withQueryParam("pnsdk", matching("PubNub-Java-Unified/suchJava")) .withQueryParam("filter-expr", matching("much%3Dfiltering")) .withQueryParam("tt", matching("0")) .willReturn(aResponse().withBody("{\"t\":{\"t\":\"14607577960932487\",\"r\":1},\"m\":[{\"a\":\"4\",\"f\":0,\"i\":\"Client-g5d4g\",\"p\":{\"t\":\"14607577960925503\",\"r\":1},\"k\":\"sub-c-4cec9f8e-01fa-11e6-8180-0619f8945a4f\",\"c\":\"coolChannel\",\"d\":{\"text\":\"Enter Message Here\"},\"b\":\"coolChan-bnel\"}]}")));