/* * Copyright 2013-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.cloudfoundry.reactor.client.v2.events; import org.cloudfoundry.client.v2.Metadata; import org.cloudfoundry.client.v2.events.EventEntity; import org.cloudfoundry.client.v2.events.EventResource; import org.cloudfoundry.client.v2.events.GetEventRequest; import org.cloudfoundry.client.v2.events.GetEventResponse; import org.cloudfoundry.client.v2.events.ListEventsRequest; import org.cloudfoundry.client.v2.events.ListEventsResponse; import org.cloudfoundry.reactor.InteractionContext; import org.cloudfoundry.reactor.TestRequest; 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.GET; import static io.netty.handler.codec.http.HttpResponseStatus.OK; public final class ReactorEventsTest extends AbstractClientApiTest { private final ReactorEvents events = new ReactorEvents(CONNECTION_CONTEXT, this.root, TOKEN_PROVIDER); @Test public void get() { mockRequest(InteractionContext.builder() .request(TestRequest.builder() .method(GET).path("/v2/events/test-event-id") .build()) .response(TestResponse.builder() .status(OK) .payload("fixtures/client/v2/events/GET_{id}_response.json") .build()) .build()); this.events .get(GetEventRequest.builder() .eventId("test-event-id") .build()) .as(StepVerifier::create) .expectNext(GetEventResponse.builder() .metadata(Metadata.builder() .id("8f1366e5-1fe2-418c-ae33-38bf29ad857a") .url("/v2/events/8f1366e5-1fe2-418c-ae33-38bf29ad857a") .createdAt("2015-07-27T22:43:23Z") .build()) .entity(EventEntity.builder() .type("name-1010") .actor("guid-a01d98f8-ba9a-40b0-86ba-3deacc2978c2") .actorType("name-1011") .actorName("name-1012") .actee("guid-ff2c9780-b8db-4276-ba5f-b06adb724873") .acteeType("name-1013") .acteeName("name-1014") .timestamp("2015-07-27T22:43:23Z") .metadatas(Collections.emptyMap()) .spaceId("dcb0dcdd-5236-4af3-abc2-1ab0ff424794") .organizationId("3317f885-4670-4249-9861-7c75d851d492") .build()) .build()) .expectComplete() .verify(Duration.ofSeconds(5)); } @Test public void list() { mockRequest(InteractionContext.builder() .request(TestRequest.builder() .method(GET).path("/v2/events?q=actee:test-actee&page=-1") .build()) .response(TestResponse.builder() .status(OK) .payload("fixtures/client/v2/events/GET_response.json") .build()) .build()); this.events .list(ListEventsRequest.builder() .actee("test-actee") .page(-1) .build()) .as(StepVerifier::create) .expectNext(ListEventsResponse.builder() .totalResults(3) .totalPages(1) .resource(EventResource.builder() .metadata(Metadata.builder() .id("2cc565c7-18e7-4fff-8fb0-52525f09ee6b") .url("/v2/events/2cc565c7-18e7-4fff-8fb0-52525f09ee6b") .createdAt("2015-07-27T22:43:23Z") .build()) .entity(EventEntity.builder() .type("name-1034") .actor("guid-ddc7f725-c67f-4e68-8118-1ae1687f9fff") .actorType("name-1035") .actorName("name-1036") .actee("guid-16ac41e9-c30c-45e1-b51c-226fb37e4197") .acteeType("name-1037") .acteeName("name-1038") .timestamp("2015-07-27T22:43:23Z") .metadatas(Collections.emptyMap()) .spaceId("1a769af6-8ddb-4508-a35a-cc61c51fdcdf") .organizationId("49723c2a-a11e-43f8-971a-b34e9134ce00") .build()) .build()) .resource(EventResource.builder() .metadata(Metadata.builder() .id("a82493b7-bd16-421b-aef0-d0b5c40869e8") .url("/v2/events/a82493b7-bd16-421b-aef0-d0b5c40869e8") .createdAt("2015-07-27T22:43:23Z") .build()) .entity(EventEntity.builder() .type("name-1042") .actor("guid-e68c8d10-dc83-4466-8735-9c4201166af9") .actorType("name-1043") .actorName("name-1044") .actee("guid-d3ecb6be-c8a0-4e3b-9838-b78c58a88b65") .acteeType("name-1045") .acteeName("name-1046") .timestamp("2015-07-27T22:43:23Z") .metadatas(Collections.emptyMap()) .spaceId("dbe6bbdc-0d9c-495c-abbb-0b5eb93c8494") .organizationId("52c7fb45-e31b-4271-9f16-8c94df30d8c7") .build()) .build()) .resource(EventResource.builder() .metadata(Metadata.builder() .id("4a0e6a34-2807-44cd-a5cc-b61890662ade") .url("/v2/events/4a0e6a34-2807-44cd-a5cc-b61890662ade") .createdAt("2015-07-27T22:43:23Z") .build()) .entity(EventEntity.builder() .type("name-1050") .actor("guid-69e5e7e7-7723-4af8-a7cb-255d9a90c8db") .actorType("name-1051") .actorName("name-1052") .actee("guid-cc1f17ce-85ab-4cc2-988b-9fca0f3a1d03") .acteeType("name-1053") .acteeName("name-1054") .timestamp("2015-07-27T22:43:23Z") .metadatas(Collections.emptyMap()) .spaceId("38a2f075-fe19-4edc-8787-5571f2af7051") .organizationId("9160433e-860d-4251-bd6d-140187a2c5db") .build()) .build()) .build()) .expectComplete() .verify(Duration.ofSeconds(5)); } }