X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-backend%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fportal%2Fnonrtric%2Fcontrolpanel%2Feiproducerapi%2FEiProducerApiImplTest.java;h=1f4c21bbf9003f3219b44f3d5b59a48fb5d2a898;hb=6b3b1b864dea5c5ed5154cf9a7210b672917feca;hp=773bb54744a543907b9e6dda3077c8080886f3d5;hpb=6b4c6ef963e37ebdff26337cd90684e3e2ff2a6c;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImplTest.java b/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImplTest.java index 773bb54..1f4c21b 100644 --- a/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImplTest.java +++ b/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImplTest.java @@ -19,15 +19,23 @@ */ package org.oransc.portal.nonrtric.controlpanel.eiproducerapi; +import static org.junit.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonSyntaxException; + import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Test; +import org.oransc.portal.nonrtric.controlpanel.model.JobInfo; +import org.oransc.portal.nonrtric.controlpanel.model.ProducerRegistrationInfo; +import org.oransc.portal.nonrtric.controlpanel.model.ProducerStatusInfo; import org.oransc.portal.nonrtric.controlpanel.util.AsyncRestClient; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,13 +43,6 @@ import org.springframework.web.client.HttpServerErrorException; import reactor.core.publisher.Mono; class EiProducerApiImplTest { - private static final String URL_EI_TYPES = "/eitypes"; - private static final String EI_TYPE_1 = "eitype1"; - private static final String EI_TYPE_2 = "eitype2"; - private static final String EI_TYPE_1_INFO_VALID = - "{\"ei_producer_ids\":[\"eiprod1\",\"eiprod2\"],\"ei_job_data_schema\":{\"title\":\"eijob1\"}}"; - private static final String EI_TYPE_1_INFO_INVALID = - "{\"ei_producer_ids\":[\"eiprod1\",\"eiprod2\"],\"ei_job_data_schema\":\"title\":\"eijob1\"}}"; private static final String URL_EI_PRODUCERS = "/eiproducers"; private static final String EI_PRODUCER_1 = "eiprod1"; private static final String EI_PRODUCER_2 = "eiprod2"; @@ -60,6 +61,7 @@ class EiProducerApiImplTest { AsyncRestClient restClientMock = mock(AsyncRestClient.class); EiProducerApiImpl apiUnderTest = new EiProducerApiImpl(restClientMock); + private static com.google.gson.Gson gson = new GsonBuilder().create(); private void whenGetReturnOK(String url, HttpStatus status, String body) { ResponseEntity ret = new ResponseEntity<>(body, status); @@ -71,44 +73,6 @@ class EiProducerApiImplTest { when(restClientMock.getForEntity(eq(url))).thenReturn(Mono.error(e)); } - @Test - void testGetAllEiTypeIdsFailure() { - whenGetReturnFailure(URL_EI_TYPES, HttpStatus.NOT_FOUND, ""); - ResponseEntity returnedResp = apiUnderTest.getAllEiTypeIds(); - assertEquals(HttpStatus.NOT_FOUND, returnedResp.getStatusCode()); - } - - @Test - void testGetAllEiTypeIdsSuccess() { - String eiTypeIds = Arrays.asList(EI_TYPE_1, EI_TYPE_2).toString(); - - whenGetReturnOK(URL_EI_TYPES, HttpStatus.OK, eiTypeIds); - - ResponseEntity returnedResp = apiUnderTest.getAllEiTypeIds(); - assertEquals("[\"" + EI_TYPE_1 + "\",\"" + EI_TYPE_2 + "\"]", returnedResp.getBody()); - assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); - } - - @Test - void testGetEiTypeValidJson() { - whenGetReturnOK(URL_EI_TYPES + "/" + EI_TYPE_1, HttpStatus.OK, EI_TYPE_1_INFO_VALID); - - ResponseEntity returnedResp = apiUnderTest.getEiType(EI_TYPE_1); - - assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); - assertEquals(EI_TYPE_1_INFO_VALID, returnedResp.getBody()); - } - - @Test - void testGetEiTypeInvalidJson() { - whenGetReturnOK(URL_EI_TYPES + "/" + EI_TYPE_1, HttpStatus.OK, EI_TYPE_1_INFO_INVALID); - - ResponseEntity returnedResp = apiUnderTest.getEiType(EI_TYPE_1); - - assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, returnedResp.getStatusCode()); - assertTrue(returnedResp.getBody().contains("JSONException")); - } - @Test void testGetAllEiProducerIdsFailure() { whenGetReturnFailure(URL_EI_PRODUCERS, HttpStatus.NOT_FOUND, ""); @@ -131,27 +95,34 @@ class EiProducerApiImplTest { void testGetEiProducerValidJson() { whenGetReturnOK(URL_EI_PRODUCERS + "/" + EI_PRODUCER_1, HttpStatus.OK, EI_PRODUCER_1_INFO_VALID); - ResponseEntity returnedResp = apiUnderTest.getEiProducer(EI_PRODUCER_1); + ResponseEntity returnedResp = apiUnderTest.getEiProducer(EI_PRODUCER_1); assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); - assertEquals(EI_PRODUCER_1_INFO_VALID, returnedResp.getBody()); + assertEquals(EI_PRODUCER_1_INFO_VALID, gson.toJson(returnedResp.getBody())); } @Test - void testGetEiProducerInvalidJson() { + public void whenGetEiProducerExceptionThrown_thenAssertionSucceeds() { whenGetReturnOK(URL_EI_PRODUCERS + "/" + EI_PRODUCER_1, HttpStatus.OK, EI_PRODUCER_1_INFO_INVALID); + Exception exception = assertThrows(JsonSyntaxException.class, () -> { + apiUnderTest.getEiProducer(EI_PRODUCER_1); + }); - ResponseEntity returnedResp = apiUnderTest.getEiProducer(EI_PRODUCER_1); - - assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, returnedResp.getStatusCode()); - assertTrue(returnedResp.getBody().contains("JSONException")); + String expectedMessage = "Expected BEGIN_OBJECT but was STRING"; + String actualMessage = exception.getMessage(); + assertTrue(actualMessage.contains(expectedMessage)); } @Test - void testGetEiJobsForOneEiProducerFailure() { + void whenGetEiJobsForOneEiProducerExceptionThrown_thenAssertionSucceeds() { whenGetReturnFailure(URL_EI_PRODUCERS + "/" + EI_PRODUCER_1 + URL_EI_JOBS, HttpStatus.NOT_FOUND, ""); - ResponseEntity returnedResp = apiUnderTest.getEiJobsForOneEiProducer(EI_PRODUCER_1); - assertEquals(HttpStatus.NOT_FOUND, returnedResp.getStatusCode()); + Exception exception = assertThrows(IllegalStateException.class, () -> { + apiUnderTest.getEiJobsForOneEiProducer(EI_PRODUCER_1); + }); + + String expectedMessage = "Not a JSON Array: null"; + String actualMessage = exception.getMessage(); + assertTrue(actualMessage.contains(expectedMessage)); } @Test @@ -160,9 +131,9 @@ class EiProducerApiImplTest { whenGetReturnOK(URL_EI_PRODUCERS + "/" + EI_PRODUCER_1 + URL_EI_JOBS, HttpStatus.OK, eiJobs); - ResponseEntity returnedResp = apiUnderTest.getEiJobsForOneEiProducer(EI_PRODUCER_1); - assertTrue(returnedResp.getBody().contains("\"ei_job_identity\":\"eijob1\"")); - assertTrue(returnedResp.getBody().contains("\"ei_job_identity\":\"eijob2\"")); + ResponseEntity> returnedResp = apiUnderTest.getEiJobsForOneEiProducer(EI_PRODUCER_1); + assertTrue(gson.toJson(returnedResp.getBody()).contains("\"ei_job_identity\":\"eijob1\"")); + assertTrue(gson.toJson(returnedResp.getBody()).contains("\"ei_job_identity\":\"eijob2\"")); assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); } @@ -170,20 +141,22 @@ class EiProducerApiImplTest { void testGetEiProducerStatusValidJson() { whenGetReturnOK(URL_EI_PRODUCERS + "/" + EI_PRODUCER_1 + URL_STATUS, HttpStatus.OK, EI_PRODUCER_1_STATUS_VALID); - ResponseEntity returnedResp = apiUnderTest.getEiProducerStatus(EI_PRODUCER_1); + ResponseEntity returnedResp = apiUnderTest.getEiProducerStatus(EI_PRODUCER_1); assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); - assertEquals(EI_PRODUCER_1_STATUS_VALID, returnedResp.getBody()); + assertEquals(EI_PRODUCER_1_STATUS_VALID, gson.toJson(returnedResp.getBody())); } @Test - void testGetEiProducerStatusInvalidJson() { + public void whenGetEiProducerStatusExceptionThrown_thenAssertionSucceeds() { whenGetReturnOK(URL_EI_PRODUCERS + "/" + EI_PRODUCER_1 + URL_STATUS, HttpStatus.OK, EI_PRODUCER_1_STATUS_INVALID); + Exception exception = assertThrows(JsonSyntaxException.class, () -> { + apiUnderTest.getEiProducerStatus(EI_PRODUCER_1); + }); - ResponseEntity returnedResp = apiUnderTest.getEiProducerStatus(EI_PRODUCER_1); - - assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, returnedResp.getStatusCode()); - assertTrue(returnedResp.getBody().contains("JSONException")); + String expectedMessage = "Expected BEGIN_OBJECT but was STRING"; + String actualMessage = exception.getMessage(); + assertTrue(actualMessage.contains(expectedMessage)); } }