@Test
  public void shouldIncludeFieldFromCollection() {
    String expectedResult =
        "{\"order\":{\"id\":1,\"products\":[{\"id\":1,\"creationDate\":\""
            + currentDateAsStr
            + "\",\"name\":\"Product 1\",\"group\":{\"id\":1,\"name\":\"Group 1\"}},{\"id\":2,\"creationDate\":\""
            + currentDateAsStr
            + "\",\"name\":\"Product 2\",\"group\":{\"id\":2,\"name\":\"Group 2\"}}]}}";

    Order order =
        new Order(1L, new Customer(1L, "Franco", new Address("rua", "cidade", "9800989")));
    order.addProduct(createProductWithGroup(1L, 1L));
    order.addProduct(createProductWithGroup(2L, 2L));

    gsonSerialization.from(order).include("products", "products.group").serialize();
    assertThat(jsonResult(), is(equalTo(expectedResult)));
  }
  @Test
  public void shouldExcudeHierarchicalField() {
    String expectedResult =
        "{\"order\":{\"id\":1,\"delivery\":{\"zipCode\":\"09887990\",\"street\":\"delivery street\",\"city\":\"Bristol\"},\"customer\":{\"id\":1,\"name\":\"Franco\"},\"products\":[{\"id\":1,\"creationDate\":\""
            + currentDateAsStr
            + "\",\"name\":\"Product 1\",\"group\":{\"name\":\"Group 1\"}},{\"id\":2,\"creationDate\":\""
            + currentDateAsStr
            + "\",\"name\":\"Product 2\",\"group\":{\"name\":\"Group 2\"}}]}}";

    Order order =
        new Order(
            1L,
            new Customer(1L, "Franco", new Address("rua", "cidade", "9800989")),
            new Address("delivery street", "Bristol", "09887990"));
    order.addProduct(createProductWithGroup(1L, 1L));
    order.addProduct(createProductWithGroup(2L, 2L));

    gsonSerialization
        .from(order)
        .include("customer", "delivery", "products", "products.group")
        .exclude("products.group.id")
        .serialize();
    assertThat(jsonResult(), is(equalTo(expectedResult)));
  }