@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());
  }
예제 #2
0
  @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());
 }