private void initializeMap() { for (ServiceDefinition def: catalog.getServiceDefinitions()) { serviceDefs.put(def.getId(), def); } }
private void initializeMap() { for (ServiceDefinition def: catalog.getServiceDefinitions()) { serviceDefs.put(def.getId(), def); } }
protected void setupCatalogService() { when(catalogService.getServiceDefinition(isNull())) .thenReturn(Mono.empty()); when(catalogService.getServiceDefinition(eq(serviceDefinition.getId()))) .thenReturn(Mono.just(serviceDefinition)); }
protected void setupCatalogService(ServiceDefinition serviceDefinition) { Mono<ServiceDefinition> serviceDefinitionMono; if (serviceDefinition == null) { serviceDefinitionMono = Mono.empty(); } else { serviceDefinitionMono = Mono.just(serviceDefinition); } when(catalogService.getServiceDefinition(isNull())) .thenReturn(Mono.empty()); when(catalogService.getServiceDefinition(eq(this.serviceDefinition.getId()))) .thenReturn(serviceDefinitionMono); }
@Test public void catalogWithServicesIsDeserializedFromJson() { Catalog catalog = JsonUtils.readTestDataFile("catalog.json", Catalog.class); assertThat(catalog.getServiceDefinitions().get(0).getId()).isEqualTo("service-one-id"); }
protected String buildDeleteUrl(String platformInstanceId, boolean asyncAccepted) { return buildBaseUrl(platformInstanceId) .queryParam("service_id", serviceDefinition.getId()) .queryParam("plan_id", serviceDefinition.getPlans().get(0).getId()) .queryParam("accepts_incomplete", asyncAccepted) .toUriString(); }
@Before public void setUpCommonFixtures() { this.createRequestBody = JsonUtils.toJson(CreateServiceInstanceRequest .builder() .serviceDefinitionId(serviceDefinition.getId()) .planId("plan-one-id") .build()); this.updateRequestBody = JsonUtils.toJson(UpdateServiceInstanceRequest .builder() .serviceDefinitionId(serviceDefinition.getId()) .build()); this.updateRequestBodyWithPlan = JsonUtils.toJson(UpdateServiceInstanceRequest .builder() .serviceDefinitionId(serviceDefinition.getId()) .planId("plan-three-id") .build()); }
protected String buildDeleteUrl(String platformInstanceId, boolean asyncAccepted) { return buildBaseUrl(platformInstanceId) .path(SERVICE_INSTANCE_ID) .queryParam("service_id", serviceDefinition.getId()) .queryParam("plan_id", "plan-three-id") .queryParam("accepts_incomplete", asyncAccepted) .toUriString(); }
@Before public void setupBase() { CreateServiceInstanceBindingRequest request = CreateServiceInstanceBindingRequest.builder() .serviceDefinitionId(serviceDefinition.getId()) .planId("plan-one-id") .build(); createRequestBody = JsonUtils.toJson(request); }
private CreateServiceInstanceBindingRequestBuilder buildCreateRequest() { return CreateServiceInstanceBindingRequest.builder() .serviceDefinitionId(serviceDefinition.getId()) .planId("plan-id") .bindResource(BindResource.builder().build()) .parameters("create-param-1", "value1") .parameters("create-param-2", "value2") .context(requestContext); }
@Test public void createDuplicateServiceInstanceIdFails() { setupCatalogService(); setupServiceInstanceService(new ServiceInstanceExistsException(SERVICE_INSTANCE_ID, serviceDefinition.getId())); client.put().uri(buildCreateUpdateUrl()) .contentType(MediaType.APPLICATION_JSON) .syncBody(createRequestBody) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().is4xxClientError() .expectStatus().isEqualTo(HttpStatus.CONFLICT) .expectBody() .jsonPath("$.description").isNotEmpty() .consumeWith(result -> assertDescriptionContains(result, String.format("serviceInstanceId=%s, serviceDefinitionId=%s", SERVICE_INSTANCE_ID, serviceDefinition.getId()))); }
@Test public void deleteServiceInstanceWithUnknownServiceDefinitionIdFails() { setupCatalogService(null); client.delete().uri(buildDeleteUrl()) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().is4xxClientError() .expectStatus().isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY) .expectBody() .jsonPath("$.description").isNotEmpty() .consumeWith(result -> assertDescriptionContains(result, String.format("id=%s", serviceDefinition.getId()))); }
@Test public void createServiceInstanceWithUnknownServiceDefinitionIdFails() { setupCatalogService(null); client.put().uri(buildCreateUpdateUrl()) .contentType(MediaType.APPLICATION_JSON) .syncBody(createRequestBody) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().is4xxClientError() .expectStatus().isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY) .expectBody() .jsonPath("$.description").isNotEmpty() .consumeWith(result -> assertDescriptionContains(result, String.format("id=%s", serviceDefinition.getId()))); }
@Test public void updateServiceInstanceWithUnknownServiceDefinitionIdFails() { setupCatalogService(null); client.patch().uri(buildCreateUpdateUrl()) .contentType(MediaType.APPLICATION_JSON) .syncBody(updateRequestBody) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().is4xxClientError() .expectStatus().isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY) .expectHeader().contentTypeCompatibleWith(MediaType.APPLICATION_JSON) .expectBody() .jsonPath("$.description").isNotEmpty() .consumeWith(result -> assertDescriptionContains(result, String.format("id=%s", serviceDefinition.getId()))); }
@Test public void deleteServiceInstanceWithUnknownServiceDefinitionIdFails() throws Exception { setupCatalogService(null); MvcResult mvcResult = mockMvc.perform(delete(buildDeleteUrl()) .accept(MediaType.APPLICATION_JSON)) .andExpect(request().asyncStarted()) .andReturn(); mockMvc.perform(asyncDispatch(mvcResult)) .andExpect(status().isUnprocessableEntity()) .andExpect(jsonPath("$.description", containsString(serviceDefinition.getId()))); }
@Test public void createBindingWithUnknownServiceDefinitionIdSucceeds() throws Exception { setupCatalogService(null); client.put().uri(buildCreateUrl()) .contentType(MediaType.APPLICATION_JSON) .syncBody(createRequestBody) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().is4xxClientError() .expectStatus().isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY) .expectBody() .jsonPath("$.description").isNotEmpty() .consumeWith(result -> assertDescriptionContains(result, serviceDefinition.getId())); }
@Test public void createServiceInstanceWithUnknownServiceDefinitionIdFails() throws Exception { setupCatalogService(null); MvcResult mvcResult = mockMvc.perform(put(buildCreateUpdateUrl()) .content(createRequestBody) .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON)) .andExpect(request().asyncStarted()) .andReturn(); mockMvc.perform(asyncDispatch(mvcResult)) .andExpect(status().isUnprocessableEntity()) .andExpect(jsonPath("$.description", containsString(serviceDefinition.getId()))); }
@Test public void createBindingWithUnknownServiceDefinitionIdSucceeds() throws Exception { setupCatalogService(null); MvcResult mvcResult = mockMvc.perform(put(buildCreateUrl()) .content(createRequestBody) .accept(MediaType.APPLICATION_JSON) .contentType(MediaType.APPLICATION_JSON)) .andExpect(request().asyncStarted()) .andReturn(); mockMvc.perform(asyncDispatch(mvcResult)) .andExpect(status().isUnprocessableEntity()) .andExpect(jsonPath("$.description", containsString(serviceDefinition.getId()))); }
@Test public void createDuplicateServiceInstanceIdFails() throws Exception { setupCatalogService(); setupServiceInstanceService(new ServiceInstanceExistsException(SERVICE_INSTANCE_ID, serviceDefinition.getId())); MvcResult mvcResult = mockMvc.perform(put(buildCreateUpdateUrl()) .content(createRequestBody) .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON)) .andExpect(request().asyncStarted()) .andReturn(); mockMvc.perform(asyncDispatch(mvcResult)) .andExpect(status().isConflict()) .andExpect(jsonPath("$.description", containsString(SERVICE_INSTANCE_ID))); }
@Test public void updateServiceInstanceWithUnknownServiceDefinitionIdFails() throws Exception { setupCatalogService(null); MvcResult mvcResult = mockMvc.perform(patch(buildCreateUpdateUrl()) .content(updateRequestBody) .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON)) .andExpect(request().asyncStarted()) .andReturn(); mockMvc.perform(asyncDispatch(mvcResult)) .andExpect(status().isUnprocessableEntity()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.description", containsString(serviceDefinition.getId()))); }