/** * Construct a {@link GetServiceInstanceBindingRequest} from the provided values. * * @return the newly constructed {@literal GetServiceInstanceBindingRequest} */ public GetServiceInstanceBindingRequest build() { return new GetServiceInstanceBindingRequest(serviceInstanceId, bindingId, platformInstanceId, apiInfoLocation, originatingIdentity); } }
@Test public void requestWithDefaultsIsBuilt() { GetServiceInstanceBindingRequest request = GetServiceInstanceBindingRequest.builder() .build(); assertThat(request.getServiceInstanceId()).isNull(); assertThat(request.getBindingId()).isNull(); assertThat(request.getApiInfoLocation()).isNull(); assertThat(request.getPlatformInstanceId()).isNull(); assertThat(request.getOriginatingIdentity()).isNull(); }
@GetMapping(value = { "/{platformInstanceId}/v2/service_instances/{instanceId}/service_bindings/{bindingId}", "/v2/service_instances/{instanceId}/service_bindings/{bindingId}" }) public Mono<ResponseEntity<GetServiceInstanceBindingResponse>> getServiceInstanceBinding( @PathVariable Map<String, String> pathVariables, @PathVariable(ServiceBrokerRequest.INSTANCE_ID_PATH_VARIABLE) String serviceInstanceId, @PathVariable(ServiceBrokerRequest.BINDING_ID_PATH_VARIABLE) String bindingId, @RequestHeader(value = ServiceBrokerRequest.API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ServiceBrokerRequest.ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { return Mono.just(GetServiceInstanceBindingRequest.builder() .serviceInstanceId(serviceInstanceId) .bindingId(bindingId) .platformInstanceId(pathVariables.get(ServiceBrokerRequest.PLATFORM_INSTANCE_ID_VARIABLE)) .apiInfoLocation(apiInfoLocation) .originatingIdentity(parseOriginatingIdentity(originatingIdentityString)) .build()) .flatMap(req -> service.getServiceInstanceBinding(req) .doOnRequest(v -> logger.debug("Getting a service instance binding: request={}", req)) .doOnSuccess(response -> logger.debug("Getting a service instance binding succeeded: bindingId={}", bindingId))) .map(response -> new ResponseEntity<>(response, HttpStatus.OK)) .switchIfEmpty(Mono.just(new ResponseEntity<>(HttpStatus.OK))); }
@Override public Mono<GetServiceInstanceBindingResponse> getServiceInstanceBinding(GetServiceInstanceBindingRequest request) { String serviceInstanceId = request.getServiceInstanceId(); String bindingId = request.getBindingId(); // // retrieve the details of the specified service binding // String url = new String(/* retrieved URL */); String bindingUsername = new String(/* retrieved user */); String bindingPassword = new String(/* retrieved password */); GetServiceInstanceBindingResponse response = GetServiceInstanceAppBindingResponse.builder() .credentials("username", bindingUsername) .credentials("password", bindingPassword) .credentials("url", url) .build(); return Mono.just(response); } }
@Override public Mono<GetServiceInstanceBindingResponse> getServiceInstanceBinding(GetServiceInstanceBindingRequest request) { if (request.getBindingId() == null) { return Mono.error(new ServiceInstanceDoesNotExistException("foo")); } return Mono.just(GetServiceInstanceAppBindingResponse.builder().build()); }
@Test public void requestWithAllValuesIsBuilt() { Context originatingIdentity = PlatformContext.builder() .platform("test-platform") .build(); GetServiceInstanceBindingRequest request = GetServiceInstanceBindingRequest.builder() .serviceInstanceId("service-instance-id") .bindingId("binding-id") .platformInstanceId("platform-instance-id") .apiInfoLocation("https://api.example.com") .originatingIdentity(originatingIdentity) .build(); assertThat(request.getServiceInstanceId()).isEqualTo("service-instance-id"); assertThat(request.getBindingId()).isEqualTo("binding-id"); assertThat(request.getPlatformInstanceId()).isEqualTo("platform-instance-id"); assertThat(request.getApiInfoLocation()).isEqualTo("https://api.example.com"); assertThat(request.getOriginatingIdentity()).isEqualTo(originatingIdentity); }
@GetMapping(value = { "/{platformInstanceId}/v2/service_instances/{instanceId}/service_bindings/{bindingId}", "/v2/service_instances/{instanceId}/service_bindings/{bindingId}" }) public ResponseEntity<GetServiceInstanceBindingResponse> getServiceInstanceBinding( @PathVariable Map<String, String> pathVariables, @PathVariable(ServiceBrokerRequest.INSTANCE_ID_PATH_VARIABLE) String serviceInstanceId, @PathVariable(ServiceBrokerRequest.BINDING_ID_PATH_VARIABLE) String bindingId, @RequestHeader(value = ServiceBrokerRequest.API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ServiceBrokerRequest.ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { GetServiceInstanceBindingRequest request = GetServiceInstanceBindingRequest.builder() .serviceInstanceId(serviceInstanceId) .bindingId(bindingId) .platformInstanceId(pathVariables.get(ServiceBrokerRequest.PLATFORM_INSTANCE_ID_VARIABLE)) .apiInfoLocation(apiInfoLocation) .originatingIdentity(parseOriginatingIdentity(originatingIdentityString)) .build(); logger.debug("Getting a service instance binding: request={}", request); GetServiceInstanceBindingResponse response = service.getServiceInstanceBinding(request); logger.debug("Getting a service instance binding succeeded: bindingId={}", bindingId); return new ResponseEntity<>(response, HttpStatus.OK); }
@Test public void getServiceInstanceBinding() { StepVerifier .create(serviceInstanceBindingEventService.getServiceInstanceBinding( GetServiceInstanceBindingRequest.builder() .serviceInstanceId("foo") .bindingId("bar") .build())) .expectNext(GetServiceInstanceAppBindingResponse.builder().build()) .verifyComplete(); }
/** * Construct a {@link GetServiceInstanceBindingRequest} from the provided values. * * @return the newly constructed {@literal GetServiceInstanceBindingRequest} */ public GetServiceInstanceBindingRequest build() { return new GetServiceInstanceBindingRequest(serviceInstanceId, bindingId, platformInstanceId, apiInfoLocation, originatingIdentity); } }
@Test public void getServiceBindingParametersAreMappedToRequest() { GetServiceInstanceBindingRequest expectedRequest = GetServiceInstanceBindingRequest.builder() .serviceInstanceId("service-instance-id") .bindingId("binding-id") .platformInstanceId("platform-instance-id") .apiInfoLocation("api-info-location") .originatingIdentity(identityContext) .build(); ServiceInstanceBindingController controller = createControllerUnderTest(expectedRequest); controller.getServiceInstanceBinding(pathVariables, "service-instance-id", "binding-id", "api-info-location", encodeOriginatingIdentity(identityContext)); }