@Override public void writeValueToJson(JSONWriter writer) throws JSONException { writer.value(m_value); }
@Override public void writeValueToJson(JSONWriter writer) throws JSONException { writer.value(null); }
@Override public void writeValueToJson(JSONWriter writer) throws JSONException { writer.value(m_value); }
@Override public void writeValueToJson(JSONWriter writer) throws JSONException { writer.value(m_value); }
@Override public void writeValueToJson(JSONWriter writer) throws JSONException { writer.value(m_value); }
@Override public void writeValueToJson(JSONWriter writer) throws JSONException { writer.value(m_value); }
@Override public void writeValueToJson(JSONWriter writer) throws JSONException { //m_value will not equal itself if it is Double.NaN. Weird I know but that is how it is. if (m_value != m_value || Double.isInfinite(m_value)) throw new IllegalStateException("NaN or Infinity:" + m_value + " data point=" + this); writer.value(m_value); }
@Test public void shouldForwardUnderlyingErrors() throws Exception { JaxRsResponse response = RestRequest.req().accept(APPLICATION_JSON_TYPE).header(StreamingFormat.STREAM_HEADER,"true") .post(batchUri(), new PrettyJSON() .array() .object() .key("method").value("POST") .key("to").value("/node") .key("body") .object() .key("age") .array() .value(true) .value("hello") .endArray() .endObject() .endObject() .endArray() .toString()); Map<String, Object> res = singleResult( response, 0 ); assertTrue(((String)res.get("message")).startsWith("Invalid JSON array in POST body")); assertEquals( 400, res.get( "status" ) ); }
@Test public void shouldRollbackAllWhenGivenIncorrectRequest() throws ClientHandlerException, UniformInterfaceException, JSONException { String jsonString = new PrettyJSON() .array() .object() .key("method") .value("POST") .key("to") .value("/node") .key("body") .object() .key("age").value("1") .endObject() .endObject() .object() .key("method") .value("POST") .key("to") .value("/node") .key("body") .array() .value("a_list") .value("this_makes_no_sense") .endArray() .endObject() .endArray() .toString(); int originalNodeCount = countNodes(); JaxRsResponse response = RestRequest.req().post(batchUri(), jsonString); assertEquals(500, response.getStatus()); assertEquals( originalNodeCount, countNodes() ); }
.array() .object() .key("method") .value("POST") .key("to") .value("/cypher") .key("body") .object() .key("query").value("create (n) set n.foo = {maps:'not welcome'} return n") .key("params").object().key("id").value("0").endObject() .endObject() .endObject() .object() .key("method") .value("POST") .key("to") .value("/node") .endObject() .endArray()
@Test public void shouldForwardUnderlyingErrors() throws Exception { JaxRsResponse response = RestRequest.req().post(batchUri(), new PrettyJSON() .array() .object() .key("method") .value("POST") .key("to") .value("/node") .key("body") .object() .key("age") .array() .value(true) .value("hello") .endArray() .endObject() .endObject() .endArray() .toString()); assertEquals(500, response.getStatus()); Map<String, Object> res = JsonHelper.jsonToMap(response.getEntity()); assertTrue(((String)res.get("message")).startsWith("Invalid JSON array in POST body")); }
@Test @SuppressWarnings( "unchecked" ) public void shouldHandleUnicodeGetCorrectly() throws Exception { String asianText = "\u4f8b\u5b50"; String germanText = "öäüÖÄÜß"; String complicatedString = asianText + germanText; String jsonString = new PrettyJSON() .array() .object() .key("method") .value("POST") .key("to") .value("/node") .key("body") .object() .key(complicatedString).value(complicatedString) .endObject() .endObject() .endArray() .toString(); String entity = gen.get() .expectedStatus( 200 ) .payload( jsonString ) .post( batchUri() ) .entity(); // Pull out the property value from the depths of the response Map<String, Object> response = (Map<String, Object>) JsonHelper.jsonToList(entity).get(0).get("body"); String returnedValue = (String)((Map<String,Object>)response.get("data")).get(complicatedString); // Ensure nothing was borked. assertThat("Expected twisted unicode case to work, but response was: " + entity, returnedValue, is(complicatedString)); }
@Test public void shouldRollbackAllOnSingle404() throws ClientHandlerException, UniformInterfaceException, JSONException { String jsonString = new PrettyJSON() .array() .object() .key("method") .value("POST") .key("to") .value("/node") .key("body") .object() .key("age").value(1) .endObject() .endObject() .object() .key("method") .value("POST") .key("to") .value("www.google.com") .endObject() .endArray().toString(); int originalNodeCount = countNodes(); JaxRsResponse response = RestRequest.req().post(batchUri(), jsonString); assertEquals(500, response.getStatus()); assertEquals(originalNodeCount, countNodes()); }
@Test public void shouldGetLocationHeadersWhenCreatingThings() throws Exception { int originalNodeCount = countNodes(); final String jsonString = new PrettyJSON() .array() .object() .key("method").value("POST") .key("to").value("/node") .key("body") .object() .key("age").value(1) .endObject() .endObject() .endArray().toString(); JaxRsResponse response = RestRequest.req().post(batchUri(), jsonString); assertEquals(200, response.getStatus()); assertEquals(originalNodeCount + 1, countNodes()); List<Map<String, Object>> results = JsonHelper.jsonToList(response.getEntity()); assertEquals(1, results.size()); Map<String, Object> result = results.get(0); assertTrue(((String) result.get("location")).length() > 0); }
@Test public void shouldRollbackAllOnSingle404() throws JsonParseException, ClientHandlerException, UniformInterfaceException, JSONException { String jsonString = new PrettyJSON() .array() .object() .key("method") .value("POST") .key("to") .value("/node") .key("body") .object() .key("age").value(1) .endObject() .endObject() .object() .key("method") .value("POST") .key("to") .value("www.google.com") .endObject() .endArray().toString(); long originalNodeCount = countNodes(); JaxRsResponse response = RestRequest.req() .accept( APPLICATION_JSON_TYPE ) .header(StreamingFormat.STREAM_HEADER, "true") .post(batchUri(), jsonString); assertEquals(200, response.getStatus()); assertEquals(404, singleResult( response ,1 ).get("status")); assertEquals(originalNodeCount, countNodes()); }
@Test public void shouldGetLocationHeadersWhenCreatingThings() throws Exception { long originalNodeCount = countNodes(); final String jsonString = new PrettyJSON() .array() .object() .key("method").value("POST") .key("to").value("/node") .key("body") .object() .key("age").value(1) .endObject() .endObject() .endArray().toString(); JaxRsResponse response = RestRequest.req() .accept(APPLICATION_JSON_TYPE) .header(StreamingFormat.STREAM_HEADER, "true") .post(batchUri(), jsonString); assertEquals(200, response.getStatus()); final String entity = response.getEntity(); List<Map<String, Object>> results = JsonHelper.jsonToList(entity); assertEquals(originalNodeCount + 1, countNodes()); assertEquals(1, results.size()); Map<String, Object> result = results.get(0); assertTrue(((String) result.get("location")).length() > 0); }