Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import org.cloudfoundry.client.v2.servicebindings.CreateServiceBindingResponse;
import org.cloudfoundry.client.v2.servicebindings.DeleteServiceBindingRequest;
import org.cloudfoundry.client.v2.servicebindings.DeleteServiceBindingResponse;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingParametersRequest;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingParametersResponse;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingRequest;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingResponse;
import org.cloudfoundry.client.v2.servicebindings.ListServiceBindingsRequest;
Expand All @@ -28,6 +30,7 @@
import org.cloudfoundry.reactor.ConnectionContext;
import org.cloudfoundry.reactor.TokenProvider;
import org.cloudfoundry.reactor.client.v2.AbstractClientV2Operations;

import reactor.core.publisher.Mono;

/**
Expand Down Expand Up @@ -64,6 +67,12 @@ public Mono<GetServiceBindingResponse> get(GetServiceBindingRequest request) {
.checkpoint();
}

@Override
public Mono<GetServiceBindingParametersResponse> getParameters(GetServiceBindingParametersRequest request) {
return get(request, GetServiceBindingParametersResponse.class, builder -> builder.pathSegment("service_bindings", request.getServiceBindingId(), "parameters"))
.checkpoint();
}

@Override
public Mono<ListServiceBindingsResponse> list(ListServiceBindingsRequest request) {
return get(request, ListServiceBindingsResponse.class, builder -> builder.pathSegment("service_bindings"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import org.cloudfoundry.client.v2.serviceinstances.CreateServiceInstanceResponse;
import org.cloudfoundry.client.v2.serviceinstances.DeleteServiceInstanceRequest;
import org.cloudfoundry.client.v2.serviceinstances.DeleteServiceInstanceResponse;
import org.cloudfoundry.client.v2.serviceinstances.GetServiceInstanceParametersRequest;
import org.cloudfoundry.client.v2.serviceinstances.GetServiceInstanceParametersResponse;
import org.cloudfoundry.client.v2.serviceinstances.GetServiceInstancePermissionsRequest;
import org.cloudfoundry.client.v2.serviceinstances.GetServiceInstancePermissionsResponse;
import org.cloudfoundry.client.v2.serviceinstances.GetServiceInstanceRequest;
Expand All @@ -41,6 +43,7 @@
import org.cloudfoundry.reactor.ConnectionContext;
import org.cloudfoundry.reactor.TokenProvider;
import org.cloudfoundry.reactor.client.v2.AbstractClientV2Operations;

import reactor.core.publisher.Mono;

/**
Expand Down Expand Up @@ -83,6 +86,12 @@ public Mono<GetServiceInstanceResponse> get(GetServiceInstanceRequest request) {
.checkpoint();
}

@Override
public Mono<GetServiceInstanceParametersResponse> getParameters(GetServiceInstanceParametersRequest request) {
return get(request, GetServiceInstanceParametersResponse.class, builder -> builder.pathSegment("service_instances", request.getServiceInstanceId(), "parameters"))
.checkpoint();
}

@Override
public Mono<GetServiceInstancePermissionsResponse> getPermissions(GetServiceInstancePermissionsRequest request) {
return get(request, GetServiceInstancePermissionsResponse.class, builder -> builder.pathSegment("service_instances", request.getServiceInstanceId(), "permissions"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,25 @@

package org.cloudfoundry.reactor.client.v2.servicebindings;

import static io.netty.handler.codec.http.HttpMethod.DELETE;
import static io.netty.handler.codec.http.HttpMethod.GET;
import static io.netty.handler.codec.http.HttpMethod.POST;
import static io.netty.handler.codec.http.HttpResponseStatus.ACCEPTED;
import static io.netty.handler.codec.http.HttpResponseStatus.CREATED;
import static io.netty.handler.codec.http.HttpResponseStatus.NO_CONTENT;
import static io.netty.handler.codec.http.HttpResponseStatus.OK;

import java.time.Duration;
import java.util.Collections;

import org.cloudfoundry.client.v2.Metadata;
import org.cloudfoundry.client.v2.jobs.JobEntity;
import org.cloudfoundry.client.v2.servicebindings.CreateServiceBindingRequest;
import org.cloudfoundry.client.v2.servicebindings.CreateServiceBindingResponse;
import org.cloudfoundry.client.v2.servicebindings.DeleteServiceBindingRequest;
import org.cloudfoundry.client.v2.servicebindings.DeleteServiceBindingResponse;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingParametersRequest;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingParametersResponse;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingRequest;
import org.cloudfoundry.client.v2.servicebindings.GetServiceBindingResponse;
import org.cloudfoundry.client.v2.servicebindings.LastOperation;
Expand All @@ -35,18 +47,8 @@
import org.cloudfoundry.reactor.TestResponse;
import org.cloudfoundry.reactor.client.AbstractClientApiTest;
import org.junit.Test;
import reactor.test.StepVerifier;

import java.time.Duration;
import java.util.Collections;

import static io.netty.handler.codec.http.HttpMethod.DELETE;
import static io.netty.handler.codec.http.HttpMethod.GET;
import static io.netty.handler.codec.http.HttpMethod.POST;
import static io.netty.handler.codec.http.HttpResponseStatus.ACCEPTED;
import static io.netty.handler.codec.http.HttpResponseStatus.CREATED;
import static io.netty.handler.codec.http.HttpResponseStatus.NO_CONTENT;
import static io.netty.handler.codec.http.HttpResponseStatus.OK;
import reactor.test.StepVerifier;

public final class ReactorServiceBindingsV2Test extends AbstractClientApiTest {

Expand All @@ -56,7 +58,8 @@ public final class ReactorServiceBindingsV2Test extends AbstractClientApiTest {
public void create() {
mockRequest(InteractionContext.builder()
.request(TestRequest.builder()
.method(POST).path("/service_bindings")
.method(POST)
.path("/service_bindings")
.payload("fixtures/client/v2/service_bindings/POST_request.json")
.build())
.response(TestResponse.builder()
Expand All @@ -65,12 +68,12 @@ public void create() {
.build())
.build());

this.serviceBindings
.create(CreateServiceBindingRequest.builder()
.applicationId("26ddc1de-3eeb-424b-82f3-f7f30a38b610")
.serviceInstanceId("650d0eb7-3b83-414a-82a0-d503d1c8eb5f")
.parameters(Collections.singletonMap("the_service_broker", (Object) "wants this object"))
.build())
this.serviceBindings.create(CreateServiceBindingRequest.builder()
.applicationId("26ddc1de-3eeb-424b-82f3-f7f30a38b610")
.serviceInstanceId("650d0eb7-3b83-414a-82a0-d503d1c8eb5f")
.parameters(Collections.singletonMap("the_service_broker",
(Object) "wants this object"))
.build())
.as(StepVerifier::create)
.expectNext(CreateServiceBindingResponse.builder()
.metadata(Metadata.builder()
Expand All @@ -82,7 +85,8 @@ public void create() {
.applicationId("26ddc1de-3eeb-424b-82f3-f7f30a38b610")
.serviceInstanceId("650d0eb7-3b83-414a-82a0-d503d1c8eb5f")
.bindingOptions(Collections.emptyMap())
.credential("creds-key-356", "creds-val-356")
.credential("creds-key-356",
"creds-val-356")
.gatewayName("")
.applicationUrl("/v2/apps/26ddc1de-3eeb-424b-82f3-f7f30a38b610")
.serviceInstanceUrl("/v2/service_instances/650d0eb7-3b83-414a-82a0-d503d1c8eb5f")
Expand All @@ -96,17 +100,17 @@ public void create() {
public void delete() {
mockRequest(InteractionContext.builder()
.request(TestRequest.builder()
.method(DELETE).path("/service_bindings/test-service-binding-id")
.method(DELETE)
.path("/service_bindings/test-service-binding-id")
.build())
.response(TestResponse.builder()
.status(NO_CONTENT)
.build())
.build());

this.serviceBindings
.delete(DeleteServiceBindingRequest.builder()
.serviceBindingId("test-service-binding-id")
.build())
this.serviceBindings.delete(DeleteServiceBindingRequest.builder()
.serviceBindingId("test-service-binding-id")
.build())
.as(StepVerifier::create)
.expectComplete()
.verify(Duration.ofSeconds(5));
Expand All @@ -116,19 +120,19 @@ public void delete() {
public void deleteAsync() {
mockRequest(InteractionContext.builder()
.request(TestRequest.builder()
.method(DELETE).path("/service_bindings/test-service-binding-id?async=true")
.method(DELETE)
.path("/service_bindings/test-service-binding-id?async=true")
.build())
.response(TestResponse.builder()
.status(ACCEPTED)
.payload("fixtures/client/v2/service_bindings/DELETE_{id}_async_response.json")
.build())
.build());

this.serviceBindings
.delete(DeleteServiceBindingRequest.builder()
.async(true)
.serviceBindingId("test-service-binding-id")
.build())
this.serviceBindings.delete(DeleteServiceBindingRequest.builder()
.async(true)
.serviceBindingId("test-service-binding-id")
.build())
.as(StepVerifier::create)
.expectNext(DeleteServiceBindingResponse.builder()
.metadata(Metadata.builder()
Expand All @@ -149,18 +153,18 @@ public void deleteAsync() {
public void get() {
mockRequest(InteractionContext.builder()
.request(TestRequest.builder()
.method(GET).path("/service_bindings/test-service-binding-id")
.method(GET)
.path("/service_bindings/test-service-binding-id")
.build())
.response(TestResponse.builder()
.status(OK)
.payload("fixtures/client/v2/service_bindings/GET_{id}_response.json")
.build())
.build());

this.serviceBindings
.get(GetServiceBindingRequest.builder()
.serviceBindingId("test-service-binding-id")
.build())
this.serviceBindings.get(GetServiceBindingRequest.builder()
.serviceBindingId("test-service-binding-id")
.build())
.as(StepVerifier::create)
.expectNext(GetServiceBindingResponse.builder()
.metadata(Metadata.builder()
Expand Down Expand Up @@ -192,23 +196,51 @@ public void get() {
.verify(Duration.ofSeconds(5));
}

@Test
public void getParameters() {
mockRequest(InteractionContext.builder()
.request(TestRequest.builder()
.method(GET)
.path("/service_bindings/test-service-binding-id/parameters")
.build())
.response(TestResponse.builder()
.status(OK)
.payload("fixtures/client/v2/service_bindings/GET_{id}_parameters_response.json")
.build())
.build());

this.serviceBindings.getParameters(GetServiceBindingParametersRequest.builder()
.serviceBindingId("test-service-binding-id")
.build())
.as(StepVerifier::create)
.expectNext(GetServiceBindingParametersResponse.builder()
.parameter("foo", "abc")
.parameter("bar", 12345)
.parameter("baz", false)
.parameter("qux", 3.141)
.parameter("quux", null)
.build())
.expectComplete()
.verify(Duration.ofSeconds(5));
}

@Test
public void list() {
mockRequest(InteractionContext.builder()
.request(TestRequest.builder()
.method(GET).path("/service_bindings?q=app_guid:dd44fd4f-5e20-4c52-b66d-7af6e201f01e&page=-1")
.method(GET)
.path("/service_bindings?q=app_guid:dd44fd4f-5e20-4c52-b66d-7af6e201f01e&page=-1")
.build())
.response(TestResponse.builder()
.status(OK)
.payload("fixtures/client/v2/service_bindings/GET_response.json")
.build())
.build());

this.serviceBindings
.list(ListServiceBindingsRequest.builder()
.applicationId("dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.page(-1)
.build())
this.serviceBindings.list(ListServiceBindingsRequest.builder()
.applicationId("dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.page(-1)
.build())
.as(StepVerifier::create)
.expectNext(ListServiceBindingsResponse.builder()
.totalResults(3)
Expand All @@ -223,7 +255,8 @@ public void list() {
.applicationId("dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.serviceInstanceId("bbd1f170-bb1f-481d-bcf7-def2bbe6a3a2")
.bindingOptions(Collections.emptyMap())
.credential("creds-key-3", "creds-val-3")
.credential("creds-key-3",
"creds-val-3")
.gatewayName("")
.applicationUrl("/v2/apps/dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.serviceInstanceUrl("/v2/service_instances/bbd1f170-bb1f-481d-bcf7-def2bbe6a3a2")
Expand All @@ -240,7 +273,8 @@ public void list() {
.applicationId("dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.serviceInstanceId("f99b3d23-55f9-48b5-add3-d7ab08b2ff0c")
.bindingOptions(Collections.emptyMap())
.credential("creds-key-108", "creds-val-108")
.credential("creds-key-108",
"creds-val-108")
.gatewayName("")
.applicationUrl("/v2/apps/dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.serviceInstanceUrl("/v2/service_instances/f99b3d23-55f9-48b5-add3-d7ab08b2ff0c")
Expand All @@ -256,7 +290,8 @@ public void list() {
.applicationId("dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.serviceInstanceId("650d0eb7-3b83-414a-82a0-d503d1c8eb5f")
.bindingOptions(Collections.emptyMap())
.credential("creds-key-356", "creds-val-356")
.credential("creds-key-356",
"creds-val-356")
.gatewayName("")
.applicationUrl("/v2/apps/dd44fd4f-5e20-4c52-b66d-7af6e201f01e")
.serviceInstanceUrl("/v2/service_instances/650d0eb7-3b83-414a-82a0-d503d1c8eb5f")
Expand Down
Loading