Improve UT for catalog db

Improve UT for catalog db.

Change-Id: Ie0f9c31f9ec39e4cc693b8b1076702fb1fe11a25
Issue-ID: SO-360
Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
diff --git a/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java b/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java
index 774a77a..aefe0d5 100644
--- a/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java
+++ b/mso-catalog-db/src/main/java/org/openecomp/mso/db/catalog/CatalogDatabase.java
@@ -1087,46 +1087,46 @@
      * @param serviceType The service Name, if null or empty is provided, it won't be taken into account
      * @return VnfRecipe object or null if none found
      */
-    public VnfRecipe getVnfRecipe (String vnfType, String action, String serviceType) {
+    public VnfRecipe getVnfRecipe(String vnfType, String action, String serviceType) {
         boolean withServiceType = false;
 
-        StringBuilder hql = new StringBuilder ("FROM VnfRecipe WHERE vnfType = :vnfType AND action = :action ");
+        StringBuilder hql = new StringBuilder("FROM VnfRecipe WHERE vnfType = :vnfType AND action = :action ");
 
         // If query c
-        if (serviceType == null || serviceType.isEmpty ()) {
-            hql.append ("AND serviceType is NULL ");
+        if (serviceType == null || serviceType.isEmpty()) {
+            hql.append("AND serviceType is NULL ");
         } else {
-            hql.append ("AND serviceType = :serviceType ");
+            hql.append("AND serviceType = :serviceType ");
             withServiceType = true;
         }
 
-        long startTime = System.currentTimeMillis ();
-        LOGGER.debug ("Catalog database - get VNF recipe with name " + vnfType
+        long startTime = System.currentTimeMillis();
+        LOGGER.debug("Catalog database - get VNF recipe with name " + vnfType
                                       + " and action "
                                       + action
                                       + " and service type "
                                       + serviceType);
 
-        Query query = getSession ().createQuery (hql.toString ());
-        query.setParameter (VNF_TYPE, vnfType);
-        query.setParameter (ACTION, action);
+        Query query = getSession().createQuery(hql.toString());
+        query.setParameter(VNF_TYPE, vnfType);
+        query.setParameter(ACTION, action);
         if (withServiceType) {
-            query.setParameter (SERVICE_TYPE, serviceType);
+            query.setParameter(SERVICE_TYPE, serviceType);
         }
 
         @SuppressWarnings("unchecked")
-        List <VnfRecipe> resultList = query.list ();
+        List <VnfRecipe> resultList = query.list();
 
-        if (resultList.isEmpty ()) {
-            LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
+        if (resultList.isEmpty()) {
+            LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
             return null;
         }
 
-        Collections.sort (resultList, new MavenLikeVersioningComparator ());
-        Collections.reverse (resultList);
+        Collections.sort(resultList, new MavenLikeVersioningComparator());
+        Collections.reverse(resultList);
 
-        LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
-        return resultList.get (0);
+        LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
+        return resultList.get(0);
     }
 
     /**
@@ -1136,31 +1136,31 @@
      * @param action
      * @return VnfRecipe object or null if none found
      */
-    public VnfRecipe getVnfRecipe (String vnfType, String action) {
-        StringBuilder hql = new StringBuilder ("FROM VnfRecipe WHERE vnfType = :vnfType AND action = :action ");
+    public VnfRecipe getVnfRecipe(String vnfType, String action) {
+        StringBuilder hql = new StringBuilder("FROM VnfRecipe WHERE vnfType = :vnfType AND action = :action ");
 
-        long startTime = System.currentTimeMillis ();
-        LOGGER.debug ("Catalog database - get VNF recipe with name " + vnfType
+        long startTime = System.currentTimeMillis();
+        LOGGER.debug("Catalog database - get VNF recipe with name " + vnfType
                                       + " and action "
                                       + action);
 
-        Query query = getSession ().createQuery (hql.toString ());
-        query.setParameter (VNF_TYPE, vnfType);
-        query.setParameter (ACTION, action);
+        Query query = getSession().createQuery(hql.toString());
+        query.setParameter(VNF_TYPE, vnfType);
+        query.setParameter(ACTION, action);
 
         @SuppressWarnings("unchecked")
-        List <VnfRecipe> resultList = query.list ();
+        List <VnfRecipe> resultList = query.list();
 
-        if (resultList.isEmpty ()) {
-            LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
+        if (resultList.isEmpty()) {
+            LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe not found", "CatalogDB", "getVnfRecipe", null);
             return null;
         }
 
-        Collections.sort (resultList, new MavenLikeVersioningComparator ());
-        Collections.reverse (resultList);
+        Collections.sort(resultList, new MavenLikeVersioningComparator());
+        Collections.reverse(resultList);
 
-        LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
-        return resultList.get (0);
+        LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVnfRecipe", null);
+        return resultList.get(0);
     }
 
     /**
@@ -1170,30 +1170,30 @@
      * @param action
      * @return VnfRecipe object or null if none found
      */
-    public VnfRecipe getVnfRecipeByVfModuleId (String vnfType, String vfModuleId, String action) {
+    public VnfRecipe getVnfRecipeByVfModuleId(String vnfType, String vfModuleId, String action) {
 
-    	StringBuilder hql = new StringBuilder ("FROM VnfRecipe WHERE vfModuleId = :vfModuleId and action = :action  ");
+    	StringBuilder hql = new StringBuilder("FROM VnfRecipe WHERE vfModuleId = :vfModuleId and action = :action  ");
 
-        long startTime = System.currentTimeMillis ();
-        LOGGER.debug ("Catalog database - get VNF Recipe with vfModuleId " + vfModuleId);
+        long startTime = System.currentTimeMillis();
+        LOGGER.debug("Catalog database - get VNF Recipe with vfModuleId " + vfModuleId);
 
-        Query query = getSession ().createQuery (hql.toString ());
-        query.setParameter (VF_MODULE_MODEL_UUID, vfModuleId);
-        query.setParameter (ACTION, action);
+        Query query = getSession().createQuery(hql.toString ());
+        query.setParameter(VF_MODULE_MODEL_UUID, vfModuleId);
+        query.setParameter(ACTION, action);
 
         @SuppressWarnings("unchecked")
-        List <VnfRecipe> resultList = query.list ();
+        List <VnfRecipe> resultList = query.list();
 
-        if (resultList.isEmpty ()) {
-            LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe Entry not found", "CatalogDB", "getVnfRecipeByVfModuleId", null);
+        if (resultList.isEmpty()) {
+            LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF recipe Entry not found", "CatalogDB", "getVnfRecipeByVfModuleId", null);
             return null;
         }
 
-        Collections.sort (resultList, new MavenLikeVersioningComparator ());
-        Collections.reverse (resultList);
+        Collections.sort(resultList, new MavenLikeVersioningComparator());
+        Collections.reverse(resultList);
 
-        LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF Recipe Entry found", "CatalogDB", "getVnfRecipeByVfModuleId", null);
-        return resultList.get (0);
+        LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully. VNF Recipe Entry found", "CatalogDB", "getVnfRecipeByVfModuleId", null);
+        return resultList.get(0);
     }
 
     public VfModule getVfModuleTypeByUuid(String modelCustomizationUuid) {
@@ -1299,7 +1299,7 @@
         query.setParameter ("serviceModelInvariantUuid", serviceModelInvariantUuid);
         VnfResource vnfResource = null;
         try {
-            vnfResource = (VnfResource) query.uniqueResult ();
+            vnfResource = (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: serviceModelInvariantUuid='" + serviceModelInvariantUuid);
             LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for serviceModelInvariantUuid=" + serviceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for serviceModelInvariantUuid==" + serviceModelInvariantUuid);
@@ -1317,23 +1317,23 @@
         	throw e;
         }
         if (vnfResource == null) {
-            LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleType", null);
+            LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "NotFound", "CatalogDB", "getVfModuleType", null);
         } else {
-            LOGGER.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleType", null);
+            LOGGER.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "CatalogDB", "getVfModuleType", null);
         }
         return vnfResource;
     }
 
     public VnfResource getVnfResourceByVnfUuid(String vnfResourceModelInvariantUuid) {
         long startTime = System.currentTimeMillis();
-        LOGGER.debug ("Catalog database - get vfModuleType with vnfResourceModelInvariantUuid " + vnfResourceModelInvariantUuid);
+        LOGGER.debug("Catalog database - get vfModuleType with vnfResourceModelInvariantUuid " + vnfResourceModelInvariantUuid);
 
         String hql = "FROM VnfResource WHERE vnfResourceModelInvariantUuid = :vnfResourceModelInvariantUuid";
         Query query = getSession().createQuery(hql);
-        query.setParameter ("vnfResourceModelInvariantUuid", vnfResourceModelInvariantUuid);
+        query.setParameter("vnfResourceModelInvariantUuid", vnfResourceModelInvariantUuid);
         VnfResource vnfResource = null;
         try {
-            vnfResource = (VnfResource) query.uniqueResult ();
+            vnfResource = (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: vnfResourceModelInvariantUuid='" + vnfResourceModelInvariantUuid);
             LOGGER.error(MessageEnum.GENERAL_EXCEPTION, " non unique result for vnfResourceModelInvariantUuid=" + vnfResourceModelInvariantUuid, "", "", MsoLogger.ErrorCode.DataError, "Non unique result for vnfResourceModelInvariantUuid==" + vnfResourceModelInvariantUuid);
diff --git a/mso-catalog-db/src/test/java/org/openecomp/mso/db/catalog/test/CatalogDatabaseTest.java b/mso-catalog-db/src/test/java/org/openecomp/mso/db/catalog/test/CatalogDatabaseTest.java
index c08cb3d..e9f080b 100644
--- a/mso-catalog-db/src/test/java/org/openecomp/mso/db/catalog/test/CatalogDatabaseTest.java
+++ b/mso-catalog-db/src/test/java/org/openecomp/mso/db/catalog/test/CatalogDatabaseTest.java
@@ -53,12 +53,7 @@
 import org.openecomp.mso.db.catalog.utils.RecordNotFoundException;
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -1716,19 +1711,172 @@
         assertEquals(null, networkResource);
     }
 
-    @Test(expected = Exception.class)
-    public void getVnfRecipeTestException(){
-        VnfRecipe vnf = cd.getVnfRecipe("tetes","ergfedrf","4993493");
+    @Test
+    public void getVnfRecipeTest(){
+
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+            @Mock
+            public List<VnfRecipe> list() throws Exception {
+                VnfRecipe vnfRecipe = new VnfRecipe();
+                vnfRecipe.setVfModuleId("123-id");
+                return Arrays.asList(vnfRecipe);
+            }
+        };
+
+        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();
+            }
+        };
+
+        VnfRecipe vnfRecipe = cd.getVnfRecipe("tetes","ergfedrf","4993493");
+        assertEquals("123-id", vnfRecipe.getVfModuleId());
     }
 
-    @Test(expected = Exception.class)
-    public void getVnfRecipe2TestException(){
-        VnfRecipe vnf = cd.getVnfRecipe("tetes","4993493");
+    @Test
+    public void getVnfRecipeEmptyTest(){
+
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+            @Mock
+            public List<VnfRecipe> list() throws Exception {
+                return Collections.emptyList();
+            }
+        };
+
+        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();
+            }
+        };
+
+        VnfRecipe vnfRecipe = cd.getVnfRecipe("tetes","ergfedrf","4993493");
+        assertEquals(null, vnfRecipe);
     }
 
-    @Test(expected = Exception.class)
-    public void getVnfRecipeByVfModuleIdTestException(){
-        VnfRecipe vnf = cd.getVnfRecipeByVfModuleId("tetes","4993493","vnf");
+    @Test
+    public void getVnfRecipe2Test(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+            @Mock
+            public List<VnfRecipe> list() throws Exception {
+                VnfRecipe vnfRecipe = new VnfRecipe();
+                vnfRecipe.setId(1);
+                return Arrays.asList(vnfRecipe);
+            }
+        };
+
+        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();
+            }
+        };
+        VnfRecipe vnfRecipe = cd.getVnfRecipe("tetes","4993493");
+        assertEquals(1, vnfRecipe.getId());
+    }
+
+    @Test
+    public void getVnfRecipe2EmptyTest(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+            @Mock
+            public List<VnfRecipe> list() throws Exception {
+                return Collections.emptyList();
+            }
+        };
+
+        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();
+            }
+        };
+        VnfRecipe vnfRecipe = cd.getVnfRecipe("tetes","4993493");
+        assertEquals(null, vnfRecipe);
+    }
+
+    @Test
+    public void getVnfRecipeByVfModuleIdTest(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+            @Mock
+            public List<VnfRecipe> list() throws Exception {
+                VnfRecipe vnfRecipe = new VnfRecipe();
+                vnfRecipe.setId(1);
+                return Arrays.asList(vnfRecipe);
+            }
+        };
+
+        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();
+            }
+        };
+
+        VnfRecipe vnfRecipe = cd.getVnfRecipeByVfModuleId("tetes","4993493","vnf");
+        assertEquals(1, vnfRecipe.getId());
+    }
+
+    @Test
+    public void getVnfRecipeByVfModuleIdEmptyTest(){
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+            @Mock
+            public List<VnfRecipe> list() throws Exception {
+                return Collections.emptyList();
+            }
+        };
+
+        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();
+            }
+        };
+
+        VnfRecipe vnfRecipe = cd.getVnfRecipeByVfModuleId("tetes","4993493","vnf");
+        assertEquals(null, vnfRecipe);
     }
 
     @Test(expected = Exception.class)
@@ -1740,18 +1888,284 @@
     public void getVfModuleType2TestException(){
         VfModule vnf = cd.getVfModuleType("4993493","vnf");
     }
-    @Test(expected = Exception.class)
-    public void getVnfResourceByServiceUuidTestException(){
-        VnfResource vnf = cd.getVnfResourceByServiceUuid("4993493");
+    @Test
+    public void getVnfResourceByServiceUuidTest(){
+        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 vnfResource = cd.getVnfResourceByServiceUuid("4993493");
+        assertEquals("123-uuid", vnfResource.getModelUuid());
     }
-    @Test(expected = Exception.class)
-    public void getVnfResourceByVnfUuidTestException(){
-        VnfResource vnf = cd.getVnfResourceByVnfUuid("4993493");
+
+    @Test(expected = NonUniqueResultException.class)
+    public void getVnfResourceByServiceUuidNURExceptionTest(){
+        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 vnfResource = cd.getVnfResourceByServiceUuid("4993493");
     }
-    @Test(expected = Exception.class)
-    public void getVfModuleByModelInvariantUuidTestException(){
-        VfModule vnf = cd.getVfModuleByModelInvariantUuid("4993493");
+
+    @Test(expected = HibernateException.class)
+    public void getVnfResourceByServiceUuidHibernateExceptionTest(){
+        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 vnfResource = cd.getVnfResourceByServiceUuid("4993493");
     }
+
+    @Test(expected = Exception.class)
+    public void getVnfResourceByServiceUuidExceptionTest(){
+        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 vnfResource = cd.getVnfResourceByServiceUuid("4993493");
+    }
+
+    @Test
+    public void getVnfResourceByVnfUuidTest(){
+        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 vnfResource = cd.getVnfResourceByVnfUuid("4993493");
+        assertEquals("123-uuid", vnfResource.getModelUuid());
+    }
+
+    @Test(expected = NonUniqueResultException.class)
+    public void getVnfResourceByVnfUuidNURExceptionTest(){
+        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 vnfResource = cd.getVnfResourceByVnfUuid("4993493");
+    }
+
+    @Test(expected = HibernateException.class)
+    public void getVnfResourceByVnfUuidHibernateExceptionTest(){
+        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 vnfResource = cd.getVnfResourceByVnfUuid("4993493");
+    }
+
+    @Test(expected = Exception.class)
+    public void getVnfResourceByVnfUuidExceptionTest(){
+        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 vnfResource = cd.getVnfResourceByVnfUuid("4993493");
+    }
+
+    @Test
+    public void getVfModuleByModelInvariantUuidTest(){
+
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+
+            @Mock
+            public List<VfModule> list() throws Exception {
+                VfModule vfModule = new VfModule();
+                vfModule.setModelUUID("123-uuid");
+                return Arrays.asList(vfModule);
+            }
+        };
+
+        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();
+            }
+        };
+
+        VfModule vfModule = cd.getVfModuleByModelInvariantUuid("4993493");
+        assertEquals("123-uuid", vfModule.getModelUUID());
+    }
+
+    @Test
+    public void getVfModuleByModelInvariantUuidEmptyTest(){
+
+        MockUp<Query> mockUpQuery = new MockUp<Query>() {
+
+            @Mock
+            public List<VfModule> list() throws Exception {
+                return Collections.emptyList();
+            }
+        };
+
+        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();
+            }
+        };
+
+        VfModule vfModule = cd.getVfModuleByModelInvariantUuid("4993493");
+        assertEquals(null, vfModule);
+    }
+
     @Test(expected = Exception.class)
     public void getVfModuleByModelCustomizationUuidTestException(){
         VfModuleCustomization vnf = cd.getVfModuleByModelCustomizationUuid("4993493");