assertThat(this.eiJobs.size()).isEqualTo(1);
String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId";
restClient().delete(url).block();
- assertThat(this.eiJobs.size()).isEqualTo(0);
+ assertThat(this.eiJobs.size()).isZero();
ProducerSimulatorController.TestResults simulatorResults = this.producerSimulator.getTestResults();
await().untilAsserted(() -> assertThat(simulatorResults.jobsStopped.size()).isEqualTo(1));
assertThat(this.eiTypes.size()).isEqualTo(1);
EiType type = this.eiTypes.getType(EI_TYPE_ID);
- assertThat(type.getProducerIds().contains("eiProducerId")).isTrue();
+ assertThat(type.getProducerIds()).contains("eiProducerId");
assertThat(this.eiProducers.size()).isEqualTo(1);
- assertThat(this.eiProducers.get("eiProducerId").eiTypes().iterator().next().getId().equals(EI_TYPE_ID))
- .isTrue();
+ assertThat(this.eiProducers.get("eiProducerId").eiTypes().iterator().next().getId()).isEqualTo(EI_TYPE_ID);
resp = restClient().putForEntity(url, body).block();
assertThat(resp.getStatusCode()).isEqualTo(HttpStatus.OK);
@Test
void testDeleteEiProducer() throws Exception {
- String url = ProducerConsts.API_ROOT + "/eiproducers/eiProducerId";
- String url2 = ProducerConsts.API_ROOT + "/eiproducers/eiProducerId2";
- String body = gson.toJson(producerEiRegistratioInfo(EI_TYPE_ID));
- restClient().putForEntity(url, body).block();
- restClient().putForEntity(url2, body).block();
+ putEiProducerWithOneType("eiProducerId", EI_TYPE_ID);
+ putEiProducerWithOneType("eiProducerId2", EI_TYPE_ID);
+
assertThat(this.eiProducers.size()).isEqualTo(2);
EiType type = this.eiTypes.getType(EI_TYPE_ID);
- assertThat(type.getProducerIds().contains("eiProducerId")).isTrue();
- assertThat(type.getProducerIds().contains("eiProducerId2")).isTrue();
+ assertThat(type.getProducerIds()).contains("eiProducerId");
+ assertThat(type.getProducerIds()).contains("eiProducerId2");
putEiJob(EI_TYPE_ID, "jobId");
assertThat(this.eiJobs.size()).isEqualTo(1);
+ String url = ProducerConsts.API_ROOT + "/eiproducers/eiProducerId";
restClient().deleteForEntity(url).block();
assertThat(this.eiProducers.size()).isEqualTo(1);
- assertThat(this.eiTypes.getType(EI_TYPE_ID).getProducerIds().contains("eiProducerId")).isFalse();
+ assertThat(this.eiTypes.getType(EI_TYPE_ID).getProducerIds()).doesNotContain("eiProducerId");
assertThat(this.eiJobs.size()).isEqualTo(1);
+ String url2 = ProducerConsts.API_ROOT + "/eiproducers/eiProducerId2";
restClient().deleteForEntity(url2).block();
- assertThat(this.eiProducers.size()).isEqualTo(0);
- assertThat(this.eiTypes.size()).isEqualTo(0);
- assertThat(this.eiJobs.size()).isEqualTo(0);
+ assertThat(this.eiProducers.size()).isZero();
+ assertThat(this.eiTypes.size()).isZero();
+ assertThat(this.eiJobs.size()).isZero();
+ }
+
+ @Test
+ void testGetProducerEiType() throws JsonMappingException, JsonProcessingException, ServiceException {
+ putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID);
+ String url = ProducerConsts.API_ROOT + "/eitypes/" + EI_TYPE_ID;
+ ResponseEntity<String> resp = restClient().getForEntity(url).block();
+ assertThat(resp.getBody()).contains(EI_PRODUCER_ID);
+ }
+
+ @Test
+ void testGetProducerIdentifiers() throws JsonMappingException, JsonProcessingException, ServiceException {
+ putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID);
+ String url = ProducerConsts.API_ROOT + "/eiproducers";
+ ResponseEntity<String> resp = restClient().getForEntity(url).block();
+ assertThat(resp.getBody()).contains(EI_PRODUCER_ID);
}
ProducerEiTypeRegistrationInfo producerEiTypeRegistrationInfo(String typeId)
--- /dev/null
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2019-2020 Nordix Foundation. All rights reserved.
+ * ======================================================================
+ * 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.
+ * ========================LICENSE_END===================================
+ */
+
+package org.oransc.enrichment.clients;
+
+import io.netty.util.internal.logging.InternalLoggerFactory;
+import io.netty.util.internal.logging.JdkLoggerFactory;
+
+import java.io.IOException;
+
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.web.reactive.function.client.WebClientResponseException;
+
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
+import reactor.util.Loggers;
+
+class AsyncRestClientTest {
+ private static final String BASE_URL = "BaseUrl";
+ private static final String REQUEST_URL = "/test";
+ private static final String USERNAME = "username";
+ private static final String PASSWORD = "password";
+ private static final String TEST_JSON = "{\"type\":\"type1\"}";
+ private static final int SUCCESS_CODE = 200;
+ private static final int ERROR_CODE = 500;
+
+ private static MockWebServer mockWebServer;
+
+ private static AsyncRestClient clientUnderTest;
+
+ @BeforeAll
+ static void init() {
+ // skip a lot of unnecessary logs from MockWebServer
+ InternalLoggerFactory.setDefaultFactory(JdkLoggerFactory.INSTANCE);
+ Loggers.useJdkLoggers();
+ mockWebServer = new MockWebServer();
+ clientUnderTest = new AsyncRestClient(mockWebServer.url(BASE_URL).toString());
+ }
+
+ @AfterAll
+ static void tearDown() throws IOException {
+ mockWebServer.shutdown();
+ }
+
+ @Test
+ void testGetNoError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(SUCCESS_CODE) //
+ .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) //
+ .setBody(TEST_JSON));
+
+ Mono<String> returnedMono = clientUnderTest.get(REQUEST_URL);
+ StepVerifier.create(returnedMono).expectNext(TEST_JSON).expectComplete().verify();
+ }
+
+ @Test
+ void testGetError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(ERROR_CODE));
+
+ Mono<String> returnedMono = clientUnderTest.get(REQUEST_URL);
+ StepVerifier.create(returnedMono)
+ .expectErrorMatches(throwable -> throwable instanceof WebClientResponseException).verify();
+ }
+
+ @Test
+ void testPutNoError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(SUCCESS_CODE) //
+ .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) //
+ .setBody(TEST_JSON));
+
+ Mono<String> returnedMono = clientUnderTest.put(REQUEST_URL, TEST_JSON);
+ StepVerifier.create(returnedMono).expectNext(TEST_JSON).expectComplete().verify();
+ }
+
+ @Test
+ void testPutError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(ERROR_CODE));
+
+ Mono<String> returnedMono = clientUnderTest.put(REQUEST_URL, TEST_JSON);
+ StepVerifier.create(returnedMono)
+ .expectErrorMatches(throwable -> throwable instanceof WebClientResponseException).verify();
+ }
+
+ @Test
+ void testDeleteNoError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(SUCCESS_CODE));
+
+ Mono<String> returnedMono = clientUnderTest.delete(REQUEST_URL);
+ StepVerifier.create(returnedMono).expectNext("").expectComplete().verify();
+ }
+
+ @Test
+ void testDeleteError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(ERROR_CODE));
+
+ Mono<String> returnedMono = clientUnderTest.delete(REQUEST_URL);
+ StepVerifier.create(returnedMono)
+ .expectErrorMatches(throwable -> throwable instanceof WebClientResponseException).verify();
+ }
+
+ @Test
+ void testPostNoError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(SUCCESS_CODE) //
+ .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) //
+ .setBody(TEST_JSON));
+
+ Mono<String> returnedMono = clientUnderTest.post(REQUEST_URL, TEST_JSON);
+ StepVerifier.create(returnedMono).expectNext(TEST_JSON).expectComplete().verify();
+ }
+
+ @Test
+ void testPostError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(ERROR_CODE));
+
+ Mono<String> returnedMono = clientUnderTest.post(REQUEST_URL, TEST_JSON);
+ StepVerifier.create(returnedMono)
+ .expectErrorMatches(throwable -> throwable instanceof WebClientResponseException).verify();
+ }
+
+ @Test
+ void testPostWithAuthHeaderNoError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(SUCCESS_CODE) //
+ .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) //
+ .setBody(TEST_JSON));
+
+ Mono<String> returnedMono = clientUnderTest.postWithAuthHeader(REQUEST_URL, TEST_JSON, USERNAME, PASSWORD);
+ StepVerifier.create(returnedMono).expectNext(TEST_JSON).expectComplete().verify();
+ }
+
+ @Test
+ void testPostWithAuthHeaderError() {
+ mockWebServer.enqueue(new MockResponse().setResponseCode(ERROR_CODE));
+
+ Mono<String> returnedMono = clientUnderTest.postWithAuthHeader(REQUEST_URL, TEST_JSON, USERNAME, PASSWORD);
+ StepVerifier.create(returnedMono)
+ .expectErrorMatches(throwable -> throwable instanceof WebClientResponseException).verify();
+ }
+}