UNit test and minor fixes for DB pars
[policy/models.git] / models-dao / src / test / java / org / onap / policy / models / dao / EntityTest.java
index a0ad5c2..74d0636 100644 (file)
@@ -26,16 +26,14 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.sql.Connection;
-import java.sql.DriverManager;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.UUID;
 
-import org.junit.After;
-import org.junit.Before;
+import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.junit.Test;
 import org.onap.policy.models.base.PfConceptKey;
 import org.onap.policy.models.base.PfModelException;
@@ -49,23 +47,22 @@ import org.onap.policy.models.dao.impl.DefaultPfDao;
  * JUnit test class.
  */
 public class EntityTest {
-    private Connection connection;
     private PfDao pfDao;
 
-    @Before
-    public void setup() throws Exception {
-        connection = DriverManager.getConnection("jdbc:h2:mem:test");
-    }
-
-    @After
-    public void teardown() throws Exception {
-        connection.close();
-    }
-
     @Test
     public void testEntityTestSanity() throws PfModelException {
         final DaoParameters daoParameters = new DaoParameters();
 
+        Properties jdbcProperties = new Properties();
+        // @formatter:off
+        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER,   "org.h2.Driver");
+        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,      "jdbc:h2:mem:testdb");
+        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER,     "sa");
+        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "");
+        // @formatter:on
+
+        daoParameters.setJdbcProperties(jdbcProperties);
+
         pfDao = new PfDaoFactory().createPfDao(daoParameters);
 
         try {
@@ -101,10 +98,19 @@ public class EntityTest {
 
     @Test
     public void testEntityTestAllOpsJpa() throws PfModelException {
+
         final DaoParameters daoParameters = new DaoParameters();
         daoParameters.setPluginClass(DefaultPfDao.class.getCanonicalName());
         daoParameters.setPersistenceUnit("DaoTest");
 
+        Properties jdbcProperties = new Properties();
+        jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+        jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:mem:testdb");
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "sa");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "");
+
+        daoParameters.setJdbcProperties(jdbcProperties);
+
         pfDao = new PfDaoFactory().createPfDao(daoParameters);
         pfDao.init(daoParameters);
 
@@ -112,6 +118,8 @@ public class EntityTest {
 
         testVersionOps();
 
+        testgetFilteredOps();
+
         pfDao.close();
     }
 
@@ -326,11 +334,41 @@ public class EntityTest {
         pfDao.create(keyInfo5);
 
         assertEquals(3, pfDao.getAllVersions(DummyConceptEntity.class, "AAA0").size());
-        DummyConceptEntity latestVersionEntity = pfDao.getLatestVersion(DummyConceptEntity.class, "AAA0");
-        assertEquals(aKey2, latestVersionEntity.getKey());
-        List<DummyConceptEntity> returnedLatestVersions = pfDao.getLatestVersions(DummyConceptEntity.class);
-        assertEquals(2, returnedLatestVersions.size());
-        assertEquals("0.0.3", returnedLatestVersions.get(0).getKey().getVersion());
-        assertEquals("0.0.3", returnedLatestVersions.get(1).getKey().getVersion());
+        assertEquals(0, pfDao.getAllVersions(null, "AAA0").size());
+        assertEquals(0, pfDao.getAllVersions(DummyConceptEntity.class, null).size());
+    }
+
+    private void testgetFilteredOps() {
+        final PfConceptKey aKey0 = new PfConceptKey("AAA0", "0.0.1");
+        final PfConceptKey aKey1 = new PfConceptKey("AAA0", "0.0.2");
+        final PfConceptKey aKey2 = new PfConceptKey("AAA0", "0.0.3");
+        final PfConceptKey bKey0 = new PfConceptKey("BBB0", "0.0.1");
+        final PfConceptKey bKey1 = new PfConceptKey("BBB0", "0.0.2");
+        final PfConceptKey bKey2 = new PfConceptKey("BBB0", "0.0.3");
+        final DummyConceptEntity keyInfo0 = new DummyConceptEntity(aKey0,
+                UUID.fromString("00000000-0000-0000-0000-000000000000"), "key description 0");
+        final DummyConceptEntity keyInfo1 = new DummyConceptEntity(aKey1,
+                UUID.fromString("00000000-0000-0000-0000-000000000001"), "key description 1");
+        final DummyConceptEntity keyInfo2 = new DummyConceptEntity(aKey2,
+                UUID.fromString("00000000-0000-0000-0000-000000000002"), "key description 2");
+        final DummyConceptEntity keyInfo3 = new DummyConceptEntity(bKey0,
+                UUID.fromString("00000000-0000-0000-0000-000000000000"), "key description 0");
+        final DummyConceptEntity keyInfo4 = new DummyConceptEntity(bKey1,
+                UUID.fromString("00000000-0000-0000-0000-000000000001"), "key description 1");
+        final DummyConceptEntity keyInfo5 = new DummyConceptEntity(bKey2,
+                UUID.fromString("00000000-0000-0000-0000-000000000002"), "key description 2");
+
+        pfDao.create(keyInfo0);
+        pfDao.create(keyInfo1);
+        pfDao.create(keyInfo2);
+        pfDao.create(keyInfo3);
+        pfDao.create(keyInfo4);
+        pfDao.create(keyInfo5);
+
+        assertEquals(6, pfDao.getFiltered(DummyConceptEntity.class, null, null).size());
+        assertEquals(3, pfDao.getFiltered(DummyConceptEntity.class, "AAA0", null).size());
+        assertEquals(3, pfDao.getFiltered(DummyConceptEntity.class, "BBB0", null).size());
+        assertEquals(1, pfDao.getFiltered(DummyConceptEntity.class, "BBB0", "0.0.3").size());
+        assertEquals(6, pfDao.getFiltered(DummyConceptEntity.class, null, "0.0.3").size());
     }
 }