242d11737000677d5c2f59bc01ce2c6529f8d35f
[appc.git] / appc-dispatcher / appc-dispatcher-common / appc-data-access-lib / src / test / java / org / onap / appc / dao / util / dbcp / DBConnectionPoolTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2017 Amdocs
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * 
21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  * ============LICENSE_END=========================================================
23  */
24
25 package org.onap.appc.dao.util.dbcp;
26
27 import org.junit.After;
28 import org.junit.Assert;
29 import org.junit.Before;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 import org.onap.appc.dao.util.exception.DBConnectionPoolException;
33 import org.powermock.core.classloader.annotations.PowerMockIgnore;
34 import org.powermock.core.classloader.annotations.PrepareForTest;
35 import org.powermock.modules.junit4.PowerMockRunner;
36
37 import java.sql.Connection;
38 import java.sql.SQLException;
39 import java.util.Map;
40
41 @RunWith(PowerMockRunner.class)
42 @PrepareForTest({DBConnectionPool.class})
43 @PowerMockIgnore("javax.management.*")
44 public class DBConnectionPoolTest {
45     private final String connectURI = "jdbc:h2:mem:~/test;MODE=MYSQL;DB_CLOSE_DELAY=-1";
46     private final String username = "sa";
47     private final String password = "sa";
48     private final String driverClass = "org.h2.Driver";
49
50     private DBConnectionPool dbcp;
51     private DBConnectionPool dbcp2;
52     private Connection connection;
53
54     @Before
55     public void setUp() throws Exception {
56         dbcp = new DBConnectionPool(connectURI, username, password, driverClass);
57         dbcp2 = new DBConnectionPool(connectURI, username, password, driverClass);
58     }
59
60     @Test
61     public void testGetConnection() {
62         try {
63             connection = dbcp.getConnection();
64         } catch (DBConnectionPoolException e) {
65             Assert.fail(e.getMessage());
66         }
67         Assert.assertNotNull(connection);
68     }
69
70     @Test
71     public void testGetDataSourceStatus() {
72         Map<String, Integer> dataSourceStatus = dbcp.getDataSourceStatus();
73         Assert.assertNotNull(dataSourceStatus);
74     }
75
76     @Test(expected = DBConnectionPoolException.class)
77     public void testShutdown() throws DBConnectionPoolException {
78         dbcp2.shutdown();
79         connection = dbcp2.getConnection();
80         Assert.assertNull(connection);
81     }
82
83     @After
84     public void clean() {
85         if (dbcp != null) {
86             dbcp.shutdown();
87         }
88         if (dbcp2 != null) {
89             dbcp2.shutdown();
90         }
91         if (connection != null) {
92             try {
93                 connection.close();
94             } catch (SQLException e) {
95                 e.printStackTrace();
96             }
97         }
98     }
99 }