@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).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(catalog.getServiceDefinitions().get(0).getPlans().get(1).getSchemas().getServiceInstanceSchema().getCreateMethodSchema().getParameters())
assertThat(plan.getDescription()).isEqualTo("Plan One"); assertThat(plan.isFree()).isEqualTo(false); assertThat(plan.isBindable()).isEqualTo(true); assertThat(plan.getMetadata()).hasSize(4); assertThat(plan.getMetadata()).contains(
.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()))) .andExpect(jsonPath("$.services[*].plans[*].free", containsInAnyOrder(plans.get(0).isFree(), plans.get(1).isFree(), plans.get(2).isFree()))) .andExpect(jsonPath("$.services[*].plans[*].schemas.service_instance.create.parameters", contains(createServiceInstanceSchema)))
.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()) .jsonPath("$.services[0].plans[1].schemas.service_instance.create.parameters").isEqualTo(createServiceInstanceSchema)