@Test public void UpdateIfMatch() { EntityTag entityTag = target("books").path(book1_id).request().get().getEntityTag(); HashMap<String, Object> updates = new HashMap<String, Object>(); updates.put("author", "updatedAuthor"); Entity<HashMap<String, Object>> updateEntity = Entity.entity(updates, MediaType.APPLICATION_JSON); Response updateResponse = target("books") .path(book1_id) .request() .header("If-Match", entityTag) .build("PATCH", updateEntity) .invoke(); assertEquals(200, updateResponse.getStatus()); Response updateResponse2 = target("books") .path(book1_id) .request() .header("If-Match", entityTag) .build("PATCH", updateEntity) .invoke(); assertEquals(412, updateResponse2.getStatus()); }
@Test public void createTransactionReturnsOk() { // create "cars" transaction Response response = client .path("/transactionservice/transaction/10") .request() .put(Entity.json(new Transaction("cars", new BigDecimal(5000), 0l))); assertEquals(200, response.getStatus()); assertEquals( TransactionService.OperationResult.OK, response.readEntity(TransactionService.OperationResult.class)); // create "shopping" transaction response = client .path("/transactionservice/transaction/11") .request() .put(Entity.json(new Transaction("shopping", new BigDecimal(10000), 10l))); assertEquals(200, response.getStatus()); assertEquals( TransactionService.OperationResult.OK, response.readEntity(TransactionService.OperationResult.class)); // get "cars" transactions response = client.path("/transactionservice/type/cars").request().get(); assertEquals(200, response.getStatus()); @SuppressWarnings("unchecked") List<Integer> ids = response.readEntity(List.class); assertEquals(1, ids.size()); assertEquals(10, ids.get(0).intValue()); // get "sum" for transaction 10 response = client.path("/transactionservice/sum/10").request().get(); assertEquals(200, response.getStatus()); AggregatorService.Sum sum = response.readEntity(AggregatorService.Sum.class); assertEquals(15000, sum.getSum().intValue()); // get "sum" for transaction 11 response = client.path("/transactionservice/sum/11").request().get(); assertEquals(200, response.getStatus()); sum = response.readEntity(AggregatorService.Sum.class); assertEquals(10000, sum.getSum().intValue()); }
@Test public void AddBookNoTitle() { Response response = addBook("author1", null, new Date(), "1234"); assertEquals(400, response.getStatus()); String message = response.readEntity(String.class); assertTrue(message.contains("title is a required field")); }
@Test public void BookNotFoundWithMessage() { Response response = target("books").path("1").request().get(); assertEquals(404, response.getStatus()); String message = response.readEntity(String.class); assertTrue(message.contains("Book 1 is not found")); }
@Test public void BookEntityTagNotModified() { EntityTag entityTag = target("books").path(book1_id).request().get().getEntityTag(); assertNotNull(entityTag); Response response = target("books").path(book1_id).request().header("If-None-Match", entityTag).get(); assertEquals(304, response.getStatus()); }
@Test public void testAddExtraField() { Response response = addBook("author", "title", new Date(), "1111", "hello world"); assertEquals(200, response.getStatus()); HashMap<String, Object> book = toHashMap(response); assertNotNull(book.get("id")); assertEquals(book.get("extra1"), "hello world"); }
@Test public void testAddBook() throws Exception { Date thisDate = new Date(); Response response = addBook("author", "title", thisDate, "3456"); assertEquals(200, response.getStatus()); HashMap<String, Object> responseBook = toHashMap(response); assertNotNull(responseBook.get("id")); assertEquals("title", responseBook.get("title")); assertEquals("author", responseBook.get("author")); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); assertEquals(thisDate, dateFormat.parse((String) responseBook.get("published"))); assertEquals("3456", responseBook.get("isbn")); }
@Test public void PatchMethodOverride() { HashMap<String, Object> updates = new HashMap<String, Object>(); updates.put("author", "updatedAuthor"); Entity<HashMap<String, Object>> updateEntity = Entity.entity(updates, MediaType.APPLICATION_JSON); Response updateResponse = target("books").path(book1_id).queryParam("_method", "PATCH").request().post(updateEntity); assertEquals(200, updateResponse.getStatus()); Response getResponse = target("books").path(book1_id).request().get(); HashMap<String, Object> getResponseMap = toHashMap(getResponse); assertEquals("updatedAuthor", getResponseMap.get("author")); }
@Test public void UpdateBookExtra() { HashMap<String, Object> updates = new HashMap<String, Object>(); updates.put("hello", "world"); Entity<HashMap<String, Object>> updateEntity = Entity.entity(updates, MediaType.APPLICATION_JSON); Response updateResponse = target("books").path(book1_id).request().build("PATCH", updateEntity).invoke(); assertEquals(200, updateResponse.getStatus()); Response getResponse = target("books").path(book1_id).request().get(); HashMap<String, Object> getResponseMap = toHashMap(getResponse); assertEquals("world", getResponseMap.get("hello")); }
@Test public void AddBookNoBook() { Response response = target("books").request().post(null); assertEquals(400, response.getStatus()); }