@Test public void testPost_SingleId() { Response response1 = target("/single-id") .queryParam("exclude", "age", "description") .request() .post(Entity.json("{\"id\":\"John\"}")); assertEquals(Response.Status.CREATED.getStatusCode(), response1.getStatus()); E20 e20 = ObjectSelect.query(E20.class).selectFirst(newContext()); assertNotNull(e20); assertEquals("John", e20.getName()); assertEquals("{\"data\":[{\"id\":\"John\",\"name\":\"John\"}],\"total\":1}", response1.readEntity(String.class)); Response response2 = target("/single-id").queryParam("exclude", "age", "description").request().post( Entity.json("{\"id\":\"John\"}")); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response2.getStatus()); assertTrue(response2.readEntity(String.class).contains("object already exists")); }
@Test public void testPost_MultiId() { Response response1 = target("/multi-id").queryParam("exclude", "description").request().post( Entity.json("{\"id\":{\"age\":18,\"name\":\"John\"}}")); assertEquals(Response.Status.CREATED.getStatusCode(), response1.getStatus()); E21 e21 = ObjectSelect.query(E21.class).selectFirst(newContext()); assertNotNull(e21); assertEquals(Integer.valueOf(18), e21.getAge()); assertEquals("John", e21.getName()); assertEquals("{\"data\":[{\"id\":{\"age\":18,\"name\":\"John\"},\"age\":18,\"name\":\"John\"}],\"total\":1}", response1.readEntity(String.class)); Response response2 = target("/multi-id").queryParam("exclude", "description").request().post( Entity.json("{\"id\":{\"age\":18,\"name\":\"John\"}}")); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response2.getStatus()); assertTrue(response2.readEntity(String.class).contains("object already exists")); }
@Test public void testPost() { ObjectContext context = newContext(); Response response1 = target("/e4").request() .post(Entity.json("{\"cVarchar\":\"zzz\"}")); assertEquals(Status.CREATED.getStatusCode(), response1.getStatus()); E4 e41 = ObjectSelect.query(E4.class).selectFirst(context); assertNotNull(e41); Assert.assertEquals("zzz", e41.getCVarchar()); int id1 = Cayenne.intPKForObject(e41); assertEquals( "{\"data\":[{\"id\":" + id1 + ",\"cBoolean\":null,\"cDate\":null,\"cDecimal\":null,\"cInt\":null," + "\"cTime\":null,\"cTimestamp\":null,\"cVarchar\":\"zzz\"}],\"total\":1}", response1.readEntity(String.class)); Response response2 = target("/e4").request() .post(Entity.json("{\"cVarchar\":\"TTTT\"}")); assertEquals(Status.CREATED.getStatusCode(), response2.getStatus()); List<E4> e4s = context.select(new SelectQuery<E4>(E4.class)); assertEquals(2, e4s.size()); assertTrue(e4s.remove(e41)); E4 e42 = e4s.get(0); Assert.assertEquals("TTTT", e42.getCVarchar()); int id2 = Cayenne.intPKForObject(e42); assertEquals( "{\"data\":[{\"id\":" + id2 + ",\"cBoolean\":null,\"cDate\":null,\"cDecimal\":null,\"cInt\":null," + "\"cTime\":null,\"cTimestamp\":null,\"cVarchar\":\"TTTT\"}],\"total\":1}", response2.readEntity(String.class)); }