From ee641a8c6e06e277bc518f05edb17e2fd40d365e Mon Sep 17 00:00:00 2001 From: Roger Hu Date: Wed, 22 Mar 2017 00:39:30 -0700 Subject: [PATCH] Using the encoder on state is too broad. Related to issue: https://github.com/ParsePlatform/ParseLiveQuery-Android/issues/14 Currently only the conditions and class name are encoded: https://github.com/ParsePlatform/ParseLiveQuery-iOS-OSX/blob/master/Sources/ParseLiveQuery/Internal/QueryEncoder.swift fix test --- .../main/java/com/parse/SubscribeClientOperation.java | 9 ++++++++- .../test/java/com/parse/TestParseLiveQueryClient.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ParseLiveQuery/src/main/java/com/parse/SubscribeClientOperation.java b/ParseLiveQuery/src/main/java/com/parse/SubscribeClientOperation.java index e9c5e07..e9387d4 100644 --- a/ParseLiveQuery/src/main/java/com/parse/SubscribeClientOperation.java +++ b/ParseLiveQuery/src/main/java/com/parse/SubscribeClientOperation.java @@ -22,7 +22,14 @@ jsonObject.put("requestId", requestId); jsonObject.put("sessionToken", sessionToken); - JSONObject queryJsonObject = state.toJSON(PointerEncoder.get()); + JSONObject queryJsonObject = new JSONObject(); + queryJsonObject.put("className", state.className()); + + // TODO: add support for fields + // https://github.com/ParsePlatform/parse-server/issues/3671 + + PointerEncoder pointerEncoder = PointerEncoder.get(); + queryJsonObject.put("where", pointerEncoder.encode(state.constraints())); jsonObject.put("query", queryJsonObject); diff --git a/ParseLiveQuery/src/test/java/com/parse/TestParseLiveQueryClient.java b/ParseLiveQuery/src/test/java/com/parse/TestParseLiveQueryClient.java index b1bce6e..9c11b99 100644 --- a/ParseLiveQuery/src/test/java/com/parse/TestParseLiveQueryClient.java +++ b/ParseLiveQuery/src/test/java/com/parse/TestParseLiveQueryClient.java @@ -116,7 +116,7 @@ public void testUnsubscribeWhenSubscribedToCallback() throws Exception { @Test public void testErrorWhileSubscribing() throws Exception { ParseQuery.State state = mock(ParseQuery.State.class); - when(state.toJSON(any(ParseEncoder.class))).thenThrow(new RuntimeException("forced error")); + when(state.constraints()).thenThrow(new RuntimeException("forced error")); ParseQuery.State.Builder builder = mock(ParseQuery.State.Builder.class); when(builder.build()).thenReturn(state);