From 24ccf46cd06239bcb2173abf0dd43c689a4c8697 Mon Sep 17 00:00:00 2001 From: Joss Armstrong Date: Wed, 6 Feb 2019 16:53:34 +0000 Subject: Test coverage for DBConnectionPool Increased class coverage to 100% Issue-ID: APPC-1394 Change-Id: I7c8adb081b7342a5a18d3a2ca0238625317c6b4d Signed-off-by: Joss Armstrong --- .../appc/dao/util/dbcp/DBConnectionPoolTest.java | 40 +++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/test/java') diff --git a/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/test/java/org/onap/appc/dao/util/dbcp/DBConnectionPoolTest.java b/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/test/java/org/onap/appc/dao/util/dbcp/DBConnectionPoolTest.java index b9ba1daa7..d2ac778a4 100644 --- a/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/test/java/org/onap/appc/dao/util/dbcp/DBConnectionPoolTest.java +++ b/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/test/java/org/onap/appc/dao/util/dbcp/DBConnectionPoolTest.java @@ -25,12 +25,16 @@ package org.onap.appc.dao.util.dbcp; +import org.apache.commons.dbcp2.BasicDataSource; import org.junit.After; import org.junit.Assert; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.mockito.Mockito; import org.onap.appc.dao.util.exception.DBConnectionPoolException; - +import org.powermock.reflect.Whitebox; import java.sql.Connection; import java.sql.SQLException; import java.util.Map; @@ -46,6 +50,9 @@ public class DBConnectionPoolTest { private DBConnectionPool dbcp2; private Connection connection; + @Rule + public ExpectedException expectedEx = ExpectedException.none(); + @Before public void setUp() throws Exception { dbcp = new DBConnectionPool(connectURI, username, password, driverClass); @@ -62,6 +69,26 @@ public class DBConnectionPoolTest { Assert.assertNotNull(connection); } + @Test + public void testGetConnectionSQLExceptionFlow() throws SQLException { + DBConnectionPool dbcpSpy = Mockito.spy(new DBConnectionPool(connectURI, username, password, driverClass)); + BasicDataSource mockDataSource = Mockito.mock(BasicDataSource.class); + Mockito.when(mockDataSource.getConnection()).thenThrow(new SQLException()); + Whitebox.setInternalState(dbcpSpy, "dataSource", mockDataSource); + expectedEx.expect(SQLException.class); + connection = dbcpSpy.getConnection(); + } + + @Test + public void testGetConnectionDBConnectionPoolExceptionFlow() throws SQLException { + DBConnectionPool dbcpSpy = Mockito.spy(new DBConnectionPool(connectURI, username, password, driverClass)); + BasicDataSource mockDataSource = Mockito.mock(BasicDataSource.class); + Mockito.when(mockDataSource.getConnection()).thenReturn(null); + Whitebox.setInternalState(dbcpSpy, "dataSource", mockDataSource); + expectedEx.expect(DBConnectionPoolException.class); + connection = dbcpSpy.getConnection(); + } + @Test public void testGetDataSourceStatus() { Map dataSourceStatus = dbcp.getDataSourceStatus(); @@ -75,6 +102,17 @@ public class DBConnectionPoolTest { Assert.assertNull(connection); } + @Test + public void testShutdownException() throws SQLException { + DBConnectionPool dbcpSpy = Mockito.spy(new DBConnectionPool(connectURI, username, password, driverClass, + 0, 0, 0, 0, 0)); + BasicDataSource mockDataSource = Mockito.mock(BasicDataSource.class); + Mockito.doThrow(new SQLException()).when(mockDataSource).close(); + Whitebox.setInternalState(dbcpSpy, "dataSource", mockDataSource); + dbcpSpy.shutdown(); + Mockito.verify(mockDataSource).close(); + } + @After public void clean() { if (dbcp != null) { -- cgit