@Test public void planWithDefaultsIsSerializedToJson() { Plan plan = Plan.builder() .id("plan-id-one") .name("plan-one") .description("Plan One") .build(); assertThat(plan.getId()).isEqualTo("plan-id-one"); assertThat(plan.getName()).isEqualTo("plan-one"); assertThat(plan.getDescription()).isEqualTo("Plan One"); assertThat(plan.isFree()).isEqualTo(true); assertThat(plan.isBindable()).isNull(); assertThat(plan.getMetadata()).isNull(); assertThat(plan.getSchemas()).isNull(); DocumentContext json = JsonUtils.toJsonPath(plan); assertThat(json).hasPath("$.id").isEqualTo("plan-id-one"); assertThat(json).hasPath("$.name").isEqualTo("plan-one"); assertThat(json).hasPath("$.description").isEqualTo("Plan One"); assertThat(json).hasPath("$.free").isEqualTo(true); assertThat(json).hasNoPath("$.bindable"); assertThat(json).hasNoPath("$.metadata"); assertThat(json).hasNoPath("$.schemas"); }
assertThat(catalog.getServiceDefinitions().get(0).getPlans().get(1).getName()).isEqualTo("Plan Two"); assertThat(catalog.getServiceDefinitions().get(0).getPlans().get(1).getDescription()).isEqualTo("Description for Plan Two"); assertThat(catalog.getServiceDefinitions().get(0).getPlans().get(1).getMetadata()).containsOnly(entry("key1", "value1"), entry("key2", "value2")); assertThat(catalog.getServiceDefinitions().get(0).getPlans().get(1).isBindable()).isTrue(); assertThat(catalog.getServiceDefinitions().get(0).getPlans().get(1).isFree()).isTrue();
assertThat(plan.isFree()).isEqualTo(false); assertThat(plan.isBindable()).isEqualTo(true); assertThat(plan.getMetadata()).hasSize(4); assertThat(plan.getMetadata()).contains( entry("field1", "value1"), entry("field2", "value2"),
.andExpect(jsonPath("$.services[*].plans[*].name", containsInAnyOrder(plans.get(0).getName(), plans.get(1).getName(), plans.get(2).getName()))) .andExpect(jsonPath("$.services[*].plans[*].description", containsInAnyOrder(plans.get(0).getDescription(), plans.get(1).getDescription(), plans.get(2).getDescription()))) .andExpect(jsonPath("$.services[*].plans[*].metadata", contains(plans.get(1).getMetadata()))) .andExpect(jsonPath("$.services[*].plans[*].bindable", hasSize(1))) .andExpect(jsonPath("$.services[*].plans[*].bindable", contains(plans.get(1).isBindable())))
.jsonPath("$.services[0].plans[1].name").isEqualTo(plans.get(1).getName()) .jsonPath("$.services[0].plans[1].description").isEqualTo(plans.get(1).getDescription()) .jsonPath("$.services[0].plans[1].metadata").isEqualTo(plans.get(1).getMetadata()) .jsonPath("$.services[0].plans[1].bindable").isEqualTo(plans.get(1).isBindable()) .jsonPath("$.services[0].plans[1].free").isEqualTo(plans.get(1).isFree())