Refactor Prov DB handling
[dmaap/datarouter.git] / datarouter-prov / src / test / java / org / onap / dmaap / datarouter / provisioning / beans / GroupTest.java
1 /*******************************************************************************
2  * ============LICENSE_START==================================================
3  * * org.onap.dmaap
4  * * ===========================================================================
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * * ===========================================================================
7  * * Licensed under the Apache License, Version 2.0 (the "License");
8  * * you may not use this file except in compliance with the License.
9  * * You may obtain a copy of the License at
10  * *
11  *  *      http://www.apache.org/licenses/LICENSE-2.0
12  * *
13  *  * Unless required by applicable law or agreed to in writing, software
14  * * distributed under the License is distributed on an "AS IS" BASIS,
15  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * * See the License for the specific language governing permissions and
17  * * limitations under the License.
18  * * ============LICENSE_END====================================================
19  * *
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  * *
22  ******************************************************************************/
23 package org.onap.dmaap.datarouter.provisioning.beans;
24
25 import java.sql.Connection;
26 import java.util.Collection;
27 import java.util.List;
28 import javax.persistence.EntityManager;
29 import javax.persistence.EntityManagerFactory;
30 import javax.persistence.Persistence;
31 import org.junit.After;
32 import org.junit.AfterClass;
33 import org.junit.Assert;
34 import org.junit.Before;
35 import org.junit.BeforeClass;
36 import org.junit.Test;
37 import org.junit.runner.RunWith;
38 import org.onap.dmaap.datarouter.provisioning.utils.ProvDbUtils;
39 import org.powermock.modules.junit4.PowerMockRunner;
40
41 @RunWith(PowerMockRunner.class)
42 public class GroupTest {
43   private static EntityManagerFactory emf;
44   private static EntityManager em;
45   private Group group;
46   private ProvDbUtils provDbUtils = ProvDbUtils.getInstance();
47
48   @BeforeClass
49   public static void init() {
50     emf = Persistence.createEntityManagerFactory("dr-unit-tests");
51     em = emf.createEntityManager();
52     System.setProperty(
53         "org.onap.dmaap.datarouter.provserver.properties",
54         "src/test/resources/h2Database.properties");
55   }
56
57   @AfterClass
58   public static void tearDownClass() {
59     em.clear();
60     em.close();
61     emf.close();
62   }
63
64   @Before
65   public void setUp() throws Exception {
66     group = new Group("GroupTest", "This group has a description", "");
67     try (Connection conn = provDbUtils.getConnection()) {
68       group.doInsert(conn);
69     }
70   }
71
72   @After
73   public void tearDown() throws Exception {
74     try (Connection conn = provDbUtils.getConnection()) {
75       group.doDelete(conn);
76     }
77   }
78
79   @Test
80   public void Given_Group_Exists_In_Db_GetAllGroups_Returns_Correct_Group() {
81     Collection<Group> groups = Group.getAllgroups();
82     Assert.assertEquals("Group1", ((List<Group>) groups).get(0).getName());
83   }
84
85   @Test
86   public void Given_Group_Inserted_Into_Db_GetGroupMatching_Returns_Created_Group() {
87     Assert.assertEquals(group, Group.getGroupMatching(group));
88   }
89
90   @Test
91   public void Given_Group_Inserted_With_Same_Name_GetGroupMatching_With_Id_Returns_Correct_Group()
92       throws Exception {
93     Group sameGroupName = new Group("GroupTest", "This group has a description", "");
94     sameGroupName.doInsert(provDbUtils.getConnection());
95     Assert.assertEquals(
96         "This group has a description", Group.getGroupMatching(group, 2).getDescription());
97     sameGroupName.doDelete(provDbUtils.getConnection());
98   }
99
100   @Test
101   public void Given_Group_AuthId_Updated_GetGroupByAuthId_Returns_Correct_Group() throws Exception {
102     group.setAuthid("Basic TmFtZTp6Z04wMFkyS3gybFppbXltNy94ZDhuMkdEYjA9");
103     group.doUpdate(provDbUtils.getConnection());
104     Assert.assertEquals(group, Group.getGroupByAuthId("Basic TmFtZTp6Z04wMFkyS3gybFppbXltNy94ZDhuMkdEYjA9"));
105   }
106
107   @Test
108   public void Given_Group_Inserted_GetGroupById_Returns_Correct_Group() {
109     Assert.assertEquals(group, Group.getGroupById(group.getGroupid()));
110   }
111 }