aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/main/java/org/onap/appc/dao/util/dbcp/DBConnectionPool.java5
-rw-r--r--appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/test/java/org/onap/appc/dao/util/dbcp/DBConnectionPoolTest.java40
2 files changed, 42 insertions, 3 deletions
diff --git a/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/main/java/org/onap/appc/dao/util/dbcp/DBConnectionPool.java b/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/main/java/org/onap/appc/dao/util/dbcp/DBConnectionPool.java
index 161cc30ca..d201f399c 100644
--- a/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/main/java/org/onap/appc/dao/util/dbcp/DBConnectionPool.java
+++ b/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/main/java/org/onap/appc/dao/util/dbcp/DBConnectionPool.java
@@ -5,6 +5,8 @@
* Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
+ * ================================================================================
+ * Modifications Copyright (C) 2019 Ericsson
* =============================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -77,7 +79,6 @@ public class DBConnectionPool implements DBConnectionPoolService {
if (dataSource == null) {
throw new DBConnectionPoolException();
}
-
Connection connection = null;
try {
connection = dataSource.getConnection();
@@ -123,7 +124,7 @@ public class DBConnectionPool implements DBConnectionPoolService {
return map;
}
- private BasicDataSource getBasicDataSource(String connectURI, String username, String password,
+ protected BasicDataSource getBasicDataSource(String connectURI, String username, String password,
String driverClass, Integer initialSize, Integer maxtotal,
Integer maxIdle, Integer maxWaitMillis, Integer minIdle) {
BasicDataSource dataSource = new BasicDataSource();
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);
@@ -63,6 +70,26 @@ public class DBConnectionPoolTest {
}
@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<String, Integer> dataSourceStatus = dbcp.getDataSourceStatus();
Assert.assertNotNull(dataSourceStatus);
@@ -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) {