Search in sources :

Example 1 with Plan

use of org.springframework.cloud.servicebroker.model.catalog.Plan in project spring-cloud-open-service-broker by spring-cloud.

the class ExampleCatalogConfiguration method catalog.

@Bean
public Catalog catalog() {
    Plan plan = Plan.builder().id("simple-plan").name("standard").description("A simple plan").free(true).build();
    ServiceDefinition serviceDefinition = ServiceDefinition.builder().id("example-service").name("example").description("A simple example").bindable(true).tags("example", "tags").plans(plan).build();
    return Catalog.builder().serviceDefinitions(serviceDefinition).build();
}
Also used : Plan(org.springframework.cloud.servicebroker.model.catalog.Plan) ServiceDefinition(org.springframework.cloud.servicebroker.model.catalog.ServiceDefinition) Bean(org.springframework.context.annotation.Bean)

Example 2 with Plan

use of org.springframework.cloud.servicebroker.model.catalog.Plan in project spring-cloud-open-service-broker by spring-cloud.

the class CatalogControllerIntegrationTest method assertResult.

@SuppressWarnings("unchecked")
private void assertResult(MvcResult mvcResult) throws Exception {
    List<String> features = (List<String>) serviceDefinition.getMetadata().get("features");
    List<Plan> plans = serviceDefinition.getPlans();
    Schemas schemas = plans.get(1).getSchemas();
    Map<String, Object> createServiceInstanceSchema = schemas.getServiceInstanceSchema().getCreateMethodSchema().getParameters();
    Map<String, Object> updateServiceInstanceSchema = schemas.getServiceInstanceSchema().getUpdateMethodSchema().getParameters();
    Map<String, Object> createServiceBindingSchema = schemas.getServiceBindingSchema().getCreateMethodSchema().getParameters();
    ResultActions resultActions = this.mockMvc.perform(asyncDispatch(mvcResult));
    resultActions.andDo(print()).andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)).andExpect(jsonPath("$.services", hasSize(1))).andExpect(jsonPath("$.services[*].id", contains(serviceDefinition.getId()))).andExpect(jsonPath("$.services[*].name", contains(serviceDefinition.getName()))).andExpect(jsonPath("$.services[*].description", contains(serviceDefinition.getDescription()))).andExpect(jsonPath("$.services[*].bindable", contains(serviceDefinition.isBindable()))).andExpect(jsonPath("$.services[*].requires[*]", containsInAnyOrder(SERVICE_REQUIRES_SYSLOG_DRAIN.toString(), SERVICE_REQUIRES_ROUTE_FORWARDING.toString()))).andExpect(jsonPath("$.services[*].metadata.features[*]", contains(features.get(0), features.get(1)))).andExpect(jsonPath("$.services[*].plans[*]", hasSize(3))).andExpect(jsonPath("$.services[*].plans[*].id", containsInAnyOrder(plans.get(0).getId(), plans.get(1).getId(), plans.get(2).getId()))).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()))).andExpect(jsonPath("$.services[*].plans[*].free", containsInAnyOrder(plans.get(0).isFree(), plans.get(1).isFree(), plans.get(2).isFree()))).andExpect(jsonPath("$.services[*].plans[*].plan_updateable", contains(plans.get(1).isPlanUpdateable()))).andExpect(jsonPath("$.services[*].plans[*].maximum_polling_duration", contains(plans.get(1).getMaximumPollingDuration()))).andExpect(jsonPath("$.services[*].plans[*].schemas.service_instance.create.parameters", contains(createServiceInstanceSchema))).andExpect(jsonPath("$.services[*].plans[*].schemas.service_instance.update.parameters", contains(updateServiceInstanceSchema))).andExpect(jsonPath("$.services[*].plans[*].schemas.service_binding.create.parameters", contains(createServiceBindingSchema))).andExpect(jsonPath("$.services[*].plans[*].maintenance_info.version", contains(plans.get(0).getMaintenanceInfo().getVersion()))).andExpect(jsonPath("$.services[*].plans[*].maintenance_info.description", contains(plans.get(0).getMaintenanceInfo().getDescription())));
}
Also used : List(java.util.List) ResultActions(org.springframework.test.web.servlet.ResultActions) Plan(org.springframework.cloud.servicebroker.model.catalog.Plan) Schemas(org.springframework.cloud.servicebroker.model.catalog.Schemas)

Example 3 with Plan

use of org.springframework.cloud.servicebroker.model.catalog.Plan in project spring-cloud-open-service-broker by spring-cloud.

the class CatalogControllerIntegrationTest method assertResult.

@SuppressWarnings("unchecked")
private void assertResult(ResultActions result) throws Exception {
    List<Plan> plans = serviceDefinition.getPlans();
    Schemas schemas = plans.get(1).getSchemas();
    Map<String, Object> createServiceInstanceSchema = schemas.getServiceInstanceSchema().getCreateMethodSchema().getParameters();
    Map<String, Object> updateServiceInstanceSchema = schemas.getServiceInstanceSchema().getUpdateMethodSchema().getParameters();
    Map<String, Object> createServiceBindingSchema = schemas.getServiceBindingSchema().getCreateMethodSchema().getParameters();
    result.andDo(print()).andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)).andExpect(jsonPath("$.services", hasSize(1))).andExpect(jsonPath("$.services[*].id", contains(serviceDefinition.getId()))).andExpect(jsonPath("$.services[*].name", contains(serviceDefinition.getName()))).andExpect(jsonPath("$.services[*].description", contains(serviceDefinition.getDescription()))).andExpect(jsonPath("$.services[*].bindable", contains(serviceDefinition.isBindable()))).andExpect(jsonPath("$.services[*].requires[*]", containsInAnyOrder(SERVICE_REQUIRES_SYSLOG_DRAIN.toString(), SERVICE_REQUIRES_ROUTE_FORWARDING.toString()))).andExpect(jsonPath("$.services[*].plans[*]", hasSize(2))).andExpect(jsonPath("$.services[*].plans[*].id", containsInAnyOrder(plans.get(0).getId(), plans.get(1).getId()))).andExpect(jsonPath("$.services[*].plans[*].name", containsInAnyOrder(plans.get(0).getName(), plans.get(1).getName()))).andExpect(jsonPath("$.services[*].plans[*].description", containsInAnyOrder(plans.get(0).getDescription(), plans.get(1).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()))).andExpect(jsonPath("$.services[*].plans[*].free", containsInAnyOrder(plans.get(0).isFree(), plans.get(1).isFree()))).andExpect(jsonPath("$.services[*].plans[*].schemas.service_instance.create.parameters", contains(createServiceInstanceSchema))).andExpect(jsonPath("$.services[*].plans[*].schemas.service_instance.update.parameters", contains(updateServiceInstanceSchema))).andExpect(jsonPath("$.services[*].plans[*].schemas.service_binding.create.parameters", contains(createServiceBindingSchema)));
}
Also used : Plan(org.springframework.cloud.servicebroker.model.catalog.Plan) Schemas(org.springframework.cloud.servicebroker.model.catalog.Schemas)

Example 4 with Plan

use of org.springframework.cloud.servicebroker.model.catalog.Plan in project spring-cloud-open-service-broker by spring-cloud.

the class ServiceInstanceBindingControllerResponseCodeTest method setUp.

@BeforeEach
void setUp() {
    controller = new ServiceInstanceBindingController(catalogService, bindingService);
    ServiceDefinition serviceDefinition = mock(ServiceDefinition.class);
    List<Plan> plans = new ArrayList<>();
    plans.add(Plan.builder().id("service-definition-plan-id").build());
    given(serviceDefinition.getPlans()).willReturn(plans);
    given(serviceDefinition.getId()).willReturn("service-definition-id");
    given(catalogService.getServiceDefinition(any())).willReturn(Mono.just(serviceDefinition));
}
Also used : ArrayList(java.util.ArrayList) Plan(org.springframework.cloud.servicebroker.model.catalog.Plan) ServiceDefinition(org.springframework.cloud.servicebroker.model.catalog.ServiceDefinition) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 5 with Plan

use of org.springframework.cloud.servicebroker.model.catalog.Plan in project spring-cloud-open-service-broker by spring-cloud.

the class ServiceInstanceControllerResponseCodeTest method setUp.

@BeforeEach
void setUp() {
    controller = new ServiceInstanceController(catalogService, serviceInstanceService);
    ServiceDefinition serviceDefinition = mock(ServiceDefinition.class);
    List<Plan> plans = new ArrayList<>();
    plans.add(Plan.builder().id("service-definition-plan-id").build());
    given(serviceDefinition.getPlans()).willReturn(plans);
    given(serviceDefinition.getId()).willReturn("service-definition-id");
    given(catalogService.getServiceDefinition(any())).willReturn(Mono.just(serviceDefinition));
}
Also used : ArrayList(java.util.ArrayList) Plan(org.springframework.cloud.servicebroker.model.catalog.Plan) ServiceDefinition(org.springframework.cloud.servicebroker.model.catalog.ServiceDefinition) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

Plan (org.springframework.cloud.servicebroker.model.catalog.Plan)6 Schemas (org.springframework.cloud.servicebroker.model.catalog.Schemas)3 ServiceDefinition (org.springframework.cloud.servicebroker.model.catalog.ServiceDefinition)3 ArrayList (java.util.ArrayList)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 List (java.util.List)1 Bean (org.springframework.context.annotation.Bean)1 ResultActions (org.springframework.test.web.servlet.ResultActions)1