aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogumil Zebek <bogumil.zebek@nokia.com>2019-12-16 09:34:21 +0100
committerZebek Bogumil <bogumil.zebek@nokia.com>2019-12-16 09:35:57 +0100
commitb9c324e98a42ba7af4c7c8e5ac4b5482e7509b8c (patch)
tree8b3caf87e117462b923832b71c6bcf86d5b89b2d
parent308b6c2ec77dc41c2f91152af7571917ac18bca6 (diff)
Improve code coverage
Issue-ID: DCAEGEN2-1992 Signed-off-by: Zebek Bogumil <bogumil.zebek@nokia.com> Change-Id: I3e57f34fb8d3fcec66a5c937aa352032dc84b1e8
-rw-r--r--src/main/java/io/swagger/api/impl/DcaeServicesGroupByApiServiceImpl.java15
-rw-r--r--src/test/java/io/swagger/api/FakeUriInfoTestDataFactory.java (renamed from src/test/java/io/swagger/api/Util.java)8
-rw-r--r--src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplH2Tests.java7
-rw-r--r--src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplTests.java21
-rw-r--r--src/test/java/io/swagger/api/impl/DcaeServicesLinkResolverTest.java99
-rw-r--r--src/test/java/io/swagger/api/impl/RunningDcaeServicesProviderTest.java68
6 files changed, 197 insertions, 21 deletions
diff --git a/src/main/java/io/swagger/api/impl/DcaeServicesGroupByApiServiceImpl.java b/src/main/java/io/swagger/api/impl/DcaeServicesGroupByApiServiceImpl.java
index f879bff..fff2bd4 100644
--- a/src/main/java/io/swagger/api/impl/DcaeServicesGroupByApiServiceImpl.java
+++ b/src/main/java/io/swagger/api/impl/DcaeServicesGroupByApiServiceImpl.java
@@ -27,6 +27,7 @@ import org.onap.dcae.inventory.dbthings.models.DCAEServiceObject;
import io.swagger.model.DCAEServiceGroupByResults;
import io.swagger.model.DCAEServiceGroupByResultsPropertyValues;
import org.skife.jdbi.v2.Handle;
+import org.skife.jdbi.v2.Query;
import javax.ws.rs.core.Link;
import javax.ws.rs.core.Response;
@@ -149,14 +150,18 @@ public class DcaeServicesGroupByApiServiceImpl extends DcaeServicesGroupbyApiSer
String queryString = createQuery(columnName);
try (Handle jdbiHandle = inventoryDataAccessManager.getHandle()) {
-
- // NOTE: This is hardcoded because service status is only used internally.
- return jdbiHandle.createQuery(queryString)
- .bind(SERVICE_STATUS_PLACE_HOLDER, DCAEServiceObject.DCAEServiceStatus.RUNNING)
- .list();
+ return executeQuery(queryString, jdbiHandle);
}
}
+ List<Map<String, Object>> executeQuery(String queryString, Handle jdbiHandle) {
+ // NOTE: This is hardcoded because service status is only used internally.
+ final Query<Map<String, Object>> query = jdbiHandle.createQuery(queryString);
+ final Query<Map<String, Object>> bind = query
+ .bind(SERVICE_STATUS_PLACE_HOLDER, DCAEServiceObject.DCAEServiceStatus.RUNNING);
+ return bind.list();
+ }
+
static String createQuery(String columnName) {
StringBuilder sb = new StringBuilder();
sb.append(String.format("select %s, count(1) as num ", columnName));
diff --git a/src/test/java/io/swagger/api/Util.java b/src/test/java/io/swagger/api/FakeUriInfoTestDataFactory.java
index 6e5a554..edfce01 100644
--- a/src/test/java/io/swagger/api/Util.java
+++ b/src/test/java/io/swagger/api/FakeUriInfoTestDataFactory.java
@@ -29,9 +29,13 @@ import javax.ws.rs.core.UriInfo;
/**
* Created by mhwang on 9/25/17.
*/
-public class Util {
+public class FakeUriInfoTestDataFactory {
- public static class FakeUriInfo implements UriInfo {
+ public static UriInfo givenFakeUriInfo(){
+ return new FakeUriInfo();
+ }
+
+ private static class FakeUriInfo implements UriInfo {
@Override
public String getPath() {
diff --git a/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplH2Tests.java b/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplH2Tests.java
index cbdff7d..32cc664 100644
--- a/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplH2Tests.java
+++ b/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplH2Tests.java
@@ -28,6 +28,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;
+import org.eclipse.jetty.http.HttpStatus;
import org.joda.time.DateTime;
import org.junit.Before;
import org.junit.Test;
@@ -51,7 +52,7 @@ import io.dropwizard.db.DataSourceFactory;
import io.dropwizard.jackson.Jackson;
import io.dropwizard.jdbi.DBIFactory;
import io.dropwizard.setup.Environment;
-import io.swagger.api.Util;
+import io.swagger.api.FakeUriInfoTestDataFactory;
import io.swagger.model.DCAEServiceRequest;
/**
@@ -126,11 +127,11 @@ public class DcaeServicesApiServiceImplH2Tests {
Boolean shareable = Boolean.TRUE;
DateTime created = null;
Integer offset = 0;
- UriInfo uriInfo = new Util.FakeUriInfo();
+ UriInfo uriInfo = FakeUriInfoTestDataFactory.givenFakeUriInfo();
SecurityContext securityContext = null;
Response response = api.dcaeServicesGet(typeId, vnfId, vnfType, vnfLocation, componentType, shareable, created,
offset, uriInfo, securityContext);
- assertEquals(response.getStatus(), 200);
+ assertEquals(HttpStatus.OK_200, response.getStatus());
}
}
diff --git a/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplTests.java b/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplTests.java
index 0f5a0a8..9599ca5 100644
--- a/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplTests.java
+++ b/src/test/java/io/swagger/api/impl/DcaeServicesApiServiceImplTests.java
@@ -31,6 +31,7 @@ import java.util.List;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
+import org.eclipse.jetty.http.HttpStatus;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -48,7 +49,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.swagger.api.NotFoundException;
-import io.swagger.api.Util;
+import io.swagger.api.FakeUriInfoTestDataFactory;
import io.swagger.model.DCAEService;
import io.swagger.model.DCAEServiceRequest;
@@ -102,8 +103,8 @@ public class DcaeServicesApiServiceImplTests {
serviceRequest.setVnfId("vnf-id-def");
String serviceId = "service-id-123";
DCAEServiceObject serviceObject = new DCAEServiceObject(serviceId, serviceRequest);
- List<DCAEServiceComponentObject> components = new ArrayList<DCAEServiceComponentObject>();
- UriInfo uriInfo = new Util.FakeUriInfo();
+ List<DCAEServiceComponentObject> components = new ArrayList<>();
+ UriInfo uriInfo = FakeUriInfoTestDataFactory.givenFakeUriInfo();
try {
DCAEService service = (DCAEService) createDCAEService.invoke(api, serviceObject, components, uriInfo);
@@ -121,15 +122,15 @@ public class DcaeServicesApiServiceImplTests {
serviceRequest.setVnfId("vnf-id-def");
DCAEServiceObject serviceObject = new DCAEServiceObject(serviceId, serviceRequest);
when(mockServicesDao.getByServiceId(DCAEServiceObject.DCAEServiceStatus.RUNNING, serviceId)).thenReturn(serviceObject);
- when(mockComponentsDao.getByServiceId(serviceId)).thenReturn(new ArrayList<DCAEServiceComponentObject>());
+ when(mockComponentsDao.getByServiceId(serviceId)).thenReturn(new ArrayList<>());
DatabusControllerClient dbcc = mock(DatabusControllerClient.class);
DcaeServicesApiServiceImpl api = new DcaeServicesApiServiceImpl(dbcc);
- UriInfo uriInfo = new Util.FakeUriInfo();
+ UriInfo uriInfo = FakeUriInfoTestDataFactory.givenFakeUriInfo();
try {
Response response = api.dcaeServicesServiceIdGet(serviceId, uriInfo, null);
- assertEquals(response.getStatus(), 200);
+ assertEquals(HttpStatus.OK_200, response.getStatus());
} catch (NotFoundException e) {
fail("Service should have been found");
}
@@ -183,11 +184,11 @@ public class DcaeServicesApiServiceImplTests {
DatabusControllerClient dbcc = mock(DatabusControllerClient.class);
DcaeServicesApiServiceImpl api = new DcaeServicesApiServiceImpl(dbcc);
- UriInfo uriInfo = new Util.FakeUriInfo();
+ UriInfo uriInfo = FakeUriInfoTestDataFactory.givenFakeUriInfo();
String serviceId = "service-id-123";
Response response = api.dcaeServicesServiceIdPut(serviceId, serviceRequest, uriInfo, null);
- assertEquals(response.getStatus(), 422);
+ assertEquals(HttpStatus.UNPROCESSABLE_ENTITY_422, response.getStatus());
}
@Test
@@ -201,11 +202,10 @@ public class DcaeServicesApiServiceImplTests {
DatabusControllerClient dbcc = mock(DatabusControllerClient.class);
DcaeServicesApiServiceImpl api = new DcaeServicesApiServiceImpl(dbcc);
- UriInfo uriInfo = new Util.FakeUriInfo();
try {
Response response = api.dcaeServicesServiceIdDelete(serviceId, null);
- assertEquals(response.getStatus(), 200);
+ assertEquals(HttpStatus.OK_200, response.getStatus());
} catch (NotFoundException e) {
fail("Should have NOT thrown a NotFoundException");
} catch (Exception e) {
@@ -221,7 +221,6 @@ public class DcaeServicesApiServiceImplTests {
DatabusControllerClient dbcc = mock(DatabusControllerClient.class);
DcaeServicesApiServiceImpl api = new DcaeServicesApiServiceImpl(dbcc);
- UriInfo uriInfo = new Util.FakeUriInfo();
try {
api.dcaeServicesServiceIdDelete(serviceId, null);
diff --git a/src/test/java/io/swagger/api/impl/DcaeServicesLinkResolverTest.java b/src/test/java/io/swagger/api/impl/DcaeServicesLinkResolverTest.java
new file mode 100644
index 0000000..3d19536
--- /dev/null
+++ b/src/test/java/io/swagger/api/impl/DcaeServicesLinkResolverTest.java
@@ -0,0 +1,99 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * dcae-inventory
+ * ================================================================================
+ * Copyright (C) 2019 Nokia Intellectual Property. 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 io.swagger.api.impl;
+
+import io.swagger.api.FakeUriInfoTestDataFactory;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+import javax.ws.rs.core.Link;
+import javax.ws.rs.core.UriInfo;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class DcaeServicesLinkResolverTest {
+ private DcaeServicesGroupByApiServiceImpl.DcaeServicesLinkResolver dcaeServicesLinkResolver;
+ private UriInfo uriInfo;
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ @Before
+ public void setUp(){
+ dcaeServicesLinkResolver = new DcaeServicesGroupByApiServiceImpl.DcaeServicesLinkResolver();
+ uriInfo = FakeUriInfoTestDataFactory.givenFakeUriInfo();
+ }
+
+ @Test
+ public void shouldReturnDcaeServiceLinkForTypeParameter(){
+ // when
+ final Link link = dcaeServicesLinkResolver.resolveLink(
+ DcaeServicesGroupByApiServiceImpl.PROPERTY_NAME_TYPE,
+ uriInfo,
+ "test"
+ );
+
+ // then
+ assertThat(link.getRel()).isEqualTo("dcae_services");
+ assertThat(link.getUri().toString()).isEqualTo("http://some-fake-base-uri/dcae-services/?typeId=test");
+ }
+
+ @Test
+ public void shouldReturnDcaeServiceLinkForVnfLocationParameter(){
+ // when
+ final Link link = dcaeServicesLinkResolver.resolveLink(
+ DcaeServicesGroupByApiServiceImpl.PROPERTY_NAME_VNF_LOCATION,
+ uriInfo,
+ "test"
+ );
+
+ // then
+ assertThat(link.getRel()).isEqualTo("dcae_services");
+ assertThat(link.getUri().toString()).isEqualTo("http://some-fake-base-uri/dcae-services/?vnfLocation=test");
+ }
+
+ @Test
+ public void shouldReturnDcaeServiceLinkForVnfTypeParameter(){
+ // when
+ final Link link = dcaeServicesLinkResolver.resolveLink(
+ DcaeServicesGroupByApiServiceImpl.PROPERTY_NAME_VNF_TYPE,
+ uriInfo,
+ "test"
+ );
+
+ // then
+ assertThat(link.getRel()).isEqualTo("dcae_services");
+ assertThat(link.getUri().toString()).isEqualTo("http://some-fake-base-uri/dcae-services/?vnfType=test");
+ }
+
+
+ @Test
+ public void shouldReportAnErrorForUnknownParameter(){
+ // arrange
+ thrown.expect(UnsupportedOperationException.class);
+ thrown.expectMessage("Unsupported 'unknown' property name!");
+
+ // when
+ dcaeServicesLinkResolver.resolveLink("unknown", uriInfo, "test");
+
+ }
+}
diff --git a/src/test/java/io/swagger/api/impl/RunningDcaeServicesProviderTest.java b/src/test/java/io/swagger/api/impl/RunningDcaeServicesProviderTest.java
new file mode 100644
index 0000000..18e2da9
--- /dev/null
+++ b/src/test/java/io/swagger/api/impl/RunningDcaeServicesProviderTest.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * dcae-inventory
+ * ================================================================================
+ * Copyright (C) 2019 Nokia Intellectual Property. 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 io.swagger.api.impl;
+
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.dcae.inventory.daos.InventoryDataAccessManager;
+import org.skife.jdbi.v2.Handle;
+
+import java.util.ArrayList;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class RunningDcaeServicesProviderTest {
+
+ @Mock
+ private InventoryDataAccessManager inventoryDataAccessManager;
+ @Mock
+ private Handle handle;
+
+ private DcaeServicesGroupByApiServiceImpl.RunningDcaeServicesProvider runningDcaeServicesProvider;
+
+
+ @Before
+ public void setUp() {
+ runningDcaeServicesProvider = Mockito.spy(new DcaeServicesGroupByApiServiceImpl.RunningDcaeServicesProvider(inventoryDataAccessManager));
+ }
+
+ @Test
+ public void shouldInvokeQueryForRunningDcaeServices() {
+ // given
+ when(inventoryDataAccessManager.getHandle()).thenReturn(handle);
+ Mockito.doReturn(new ArrayList<>()).when(runningDcaeServicesProvider).executeQuery(any(), any());
+
+ // when
+ runningDcaeServicesProvider.fetch("testColumnName");
+
+ // then
+ verify(runningDcaeServicesProvider, times(1)).executeQuery(any(), any());
+
+ }
+}