Improve UT for catalog db 09/28509/1
authorsubhash kumar singh <subhash.kumar.singh@huawei.com>
Thu, 18 Jan 2018 10:25:40 +0000 (10:25 +0000)
committersubhash kumar singh <subhash.kumar.singh@huawei.com>
Thu, 18 Jan 2018 10:25:40 +0000 (10:25 +0000)
Improve UT for catalog DB

Change-Id: I08d5a565d409cc00f32677918f4e8645cecf6754
Issue-ID: SO-360
Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java
mso-catalog-db/src/test/java/org/openecomp/mso/db/catalog/test/CatalogDatabaseTest.java

index b65b667..0219e30 100644 (file)
@@ -885,22 +885,23 @@ public class CatalogDatabase implements Closeable {
     /**
      * Return the newest version of a specific VNF resource (queried by modelInvariantId).
      *
-     * @param version
+     * @param modelInvariantUuid model invariant ID
+     * @param modelVersion model version
      * @return VnfResource object or null if none found
      */
     public VnfResource getVnfResourceByModelInvariantId(String modelInvariantUuid, String modelVersion) {
 
-        long startTime = System.currentTimeMillis ();
-        LOGGER.debug ("Catalog database - get VNF resource with modelInvariantUuid " + modelInvariantUuid);
+        long startTime = System.currentTimeMillis();
+        LOGGER.debug("Catalog database - get VNF resource with modelInvariantUuid " + modelInvariantUuid);
 
         String hql = "FROM VnfResource WHERE modelInvariantUuid = :modelInvariantUuid and version = :serviceVersion";
-        Query query = getSession ().createQuery (hql);
-        query.setParameter ("modelInvariantUuid", modelInvariantUuid);
-        query.setParameter ("serviceVersion", modelVersion);
+        Query query = getSession().createQuery(hql);
+        query.setParameter("modelInvariantUuid", modelInvariantUuid);
+        query.setParameter("serviceVersion", modelVersion);
 
         VnfResource resource = null;
         try {
-               resource = (VnfResource) query.uniqueResult ();
+               resource = (VnfResource) query.uniqueResult();
         } catch (org.hibernate.NonUniqueResultException nure) {
                LOGGER.debug("Non Unique Result Exception - the Catalog Database does not match a unique row - data integrity error: modelInvariantUuid='" + modelInvariantUuid + "', serviceVersion='" + modelVersion + "'");
                LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for modelInvariantUuid=" + modelInvariantUuid + " and serviceVersion=" + modelVersion, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for modelInvariantUuid=" + modelInvariantUuid);
index 53ce265..219e70e 100644 (file)
@@ -1331,8 +1331,110 @@ public class CatalogDatabaseTest {
         assertEquals(null, vnf);
     }
 
+    @Test
+    public void getVnfResourceByModelInvariantIdTest(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+
+            @Mock
+            public Object uniqueResult(){
+                VnfResource vnfResource = new VnfResource();
+                vnfResource.setModelUuid("123-uuid");
+                return vnfResource;
+            }
+        };
+
+        MockUp<Session> mockedSession = new MockUp<Session>() {
+            @Mock
+            public Query createQuery(String hql) {
+                return mockUpQuery.getMockInstance();
+            }
+        };
+
+        new MockUp<CatalogDatabase>() {
+            @Mock
+            private Session getSession() {
+                return mockedSession.getMockInstance();
+            }
+        };
+        VnfResource vnf = cd.getVnfResourceByModelInvariantId("test", "test234");
+        assertEquals("123-uuid", vnf.getModelUuid());
+    }
+
+    @Test(expected = NonUniqueResultException.class)
+    public void getVnfResourceByModelInvariantIdNURExceptionTest(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+
+            @Mock
+            public Object uniqueResult(){
+                throw new NonUniqueResultException(-1);
+            }
+        };
+
+        MockUp<Session> mockedSession = new MockUp<Session>() {
+            @Mock
+            public Query createQuery(String hql) {
+                return mockUpQuery.getMockInstance();
+            }
+        };
+
+        new MockUp<CatalogDatabase>() {
+            @Mock
+            private Session getSession() {
+                return mockedSession.getMockInstance();
+            }
+        };
+        VnfResource vnf = cd.getVnfResourceByModelInvariantId("test", "test234");
+    }
+
+    @Test(expected = HibernateException.class)
+    public void getVnfResourceByModelInvariantIdHibernateExceptionTest(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+
+            @Mock
+            public Object uniqueResult(){
+                throw new HibernateException("hibernate exception");
+            }
+        };
+
+        MockUp<Session> mockedSession = new MockUp<Session>() {
+            @Mock
+            public Query createQuery(String hql) {
+                return mockUpQuery.getMockInstance();
+            }
+        };
+
+        new MockUp<CatalogDatabase>() {
+            @Mock
+            private Session getSession() {
+                return mockedSession.getMockInstance();
+            }
+        };
+        VnfResource vnf = cd.getVnfResourceByModelInvariantId("test", "test234");
+    }
+
     @Test(expected = Exception.class)
-    public void getVnfResourceByModelInvariantIdTestException(){
+    public void getVnfResourceByModelInvariantIdExceptionTest(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+
+            @Mock
+            public Object uniqueResult() throws Exception {
+                throw new Exception();
+            }
+        };
+
+        MockUp<Session> mockedSession = new MockUp<Session>() {
+            @Mock
+            public Query createQuery(String hql) {
+                return mockUpQuery.getMockInstance();
+            }
+        };
+
+        new MockUp<CatalogDatabase>() {
+            @Mock
+            private Session getSession() {
+                return mockedSession.getMockInstance();
+            }
+        };
         VnfResource vnf = cd.getVnfResourceByModelInvariantId("test", "test234");
     }