return state.toJSON(this);
@Test public void testSendDataInBackground() throws Exception { // Mock controller ParsePushController controller = mock(ParsePushController.class); when(controller.sendInBackground(any(ParsePush.State.class), anyString())) .thenReturn(Task.<Void>forResult(null)); ParseCorePlugins.getInstance().registerPushController(controller); // Make sample ParsePush data and call method JSONObject data = new JSONObject(); data.put("key", "value"); data.put("keyAgain", "valueAgain"); ParseQuery<ParseInstallation> query = ParseInstallation.getQuery(); query.getBuilder() .whereEqualTo("foo", "bar"); ParsePush.sendDataInBackground(data, query); // Make sure controller is executed and state parameter is correct ArgumentCaptor<ParsePush.State> stateCaptor = ArgumentCaptor.forClass(ParsePush.State.class); verify(controller, times(1)).sendInBackground(stateCaptor.capture(), anyString()); ParsePush.State state = stateCaptor.getValue(); // Verify query state ParseQuery.State<ParseInstallation> queryState = state.queryState(); JSONObject queryStateJson = queryState.toJSON(PointerEncoder.get()); assertEquals("bar", queryStateJson.getJSONObject("where").getString("foo")); // Verify data assertEquals(data, state.data(), JSONCompareMode.NON_EXTENSIBLE); }
@Test public void testSendMessageInBackground() throws Exception { // Mock controller ParsePushController controller = mock(ParsePushController.class); when(controller.sendInBackground(any(ParsePush.State.class), anyString())) .thenReturn(Task.<Void>forResult(null)); ParseCorePlugins.getInstance().registerPushController(controller); // Make sample ParsePush data and call method ParseQuery<ParseInstallation> query = ParseInstallation.getQuery(); query.getBuilder() .whereEqualTo("foo", "bar"); ParseTaskUtils.wait(ParsePush.sendMessageInBackground("test", query)); // Make sure controller is executed and state parameter is correct ArgumentCaptor<ParsePush.State> stateCaptor = ArgumentCaptor.forClass(ParsePush.State.class); verify(controller, times(1)).sendInBackground(stateCaptor.capture(), anyString()); ParsePush.State state = stateCaptor.getValue(); // Verify query state ParseQuery.State<ParseInstallation> queryState = state.queryState(); JSONObject queryStateJson = queryState.toJSON(PointerEncoder.get()); assertEquals("bar", queryStateJson.getJSONObject("where").getString("foo")); // Verify message assertEquals("test", state.data().getString(ParsePush.KEY_DATA_MESSAGE)); }
ParseQuery.State.Builder<ParseObject> builder = new ParseQuery.State.Builder<>("TestObject"); JSONObject json = builder.build().toJSON(encoder); assertEquals("TestObject", json.getString("className")); assertEquals("{}", json.getString("where")); .redirectClassNameForKey("what") .build() .toJSON(encoder); assertEquals("TestObject", json.getString("className")); JSONAssert.assertEquals("{" +
JSONObject queryStateJson = queryState.toJSON(PointerEncoder.get()); assertEquals("bar", queryStateJson.getJSONObject("where").getString("foo"));
JSONObject queryStateAgainJson = queryStateAgain.toJSON(PointerEncoder.get()); assertEquals("_Installation", queryStateAgainJson.getString("className")); JSONAssert.assertEquals("{" +
JSONObject queryStateJson = queryState.toJSON(PointerEncoder.get()); assertEquals("bar", queryStateJson.getJSONObject("where").getString("foo"));
@Test public void testSetQuery() throws Exception { ParsePush push = new ParsePush(); ParseQuery<ParseInstallation> query = ParseInstallation.getQuery(); query.getBuilder() .whereEqualTo("foo", "bar"); push.setQuery(query); // Right now it is hard for us to test a builder, so we build a state to test the builder is // set correctly // We have to set message otherwise build() will throw an exception push.setMessage("message"); ParsePush.State state = push.builder.build(); ParseQuery.State<ParseInstallation> queryState = state.queryState(); JSONObject queryStateJson = queryState.toJSON(PointerEncoder.get()); assertEquals("bar", queryStateJson.getJSONObject("where").getString("foo")); }