Updating fetch all yang modules queries and tests 29/124329/2
authorniamhcore <niamh.core@est.tech>
Fri, 17 Sep 2021 09:30:56 +0000 (10:30 +0100)
committerniamhcore <niamh.core@est.tech>
Mon, 20 Sep 2021 09:57:20 +0000 (10:57 +0100)
Issue-ID: CPS-670
Signed-off-by: niamhcore <niamh.core@est.tech>
Change-Id: I11e6da303320aea096a135eb93e270a5fd014740

cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceRepository.java
cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsModulePersistenceServiceIntegrationSpec.groovy
cps-ri/src/test/resources/data/schemaset.sql

index b16b284..764e2df 100644 (file)
@@ -38,29 +38,31 @@ public interface YangResourceRepository extends JpaRepository<YangResourceEntity
     List<YangResourceEntity> findAllByChecksumIn(@NotNull Set<String> checksum);
 
     @Query(value = "SELECT DISTINCT\n"
-        + "yr.module_name AS module_name,\n"
-        + "yr.revision AS revision\n"
+        + "yang_resource.module_name AS module_name,\n"
+        + "yang_resource.revision AS revision\n"
         + "FROM\n"
-        + "dataspace d\n"
-        + "JOIN schema_set ss ON ss.dataspace_id = d.id\n"
-        + "JOIN schema_set_yang_resources ssyr ON ssyr.schema_set_id = ss.id\n"
-        + "JOIN yang_resource yr ON yr.id = ssyr.yang_resource_id\n"
+        + "dataspace dataspace\n"
+        + "JOIN schema_set schema_set ON schema_set.dataspace_id = dataspace.id\n"
+        + "JOIN schema_set_yang_resources schema_set_yang_resource ON schema_set_yang_resource.schema_set_id = "
+        + "schema_set.id\n"
+        + "JOIN yang_resource yang_resource ON yang_resource.id = schema_set_yang_resource.yang_resource_id\n"
         + "WHERE\n"
-        + "d.name = :dataspaceName", nativeQuery = true)
+        + "dataspace.name = :dataspaceName", nativeQuery = true)
     Set<YangResourceModuleReference> findAllModuleReferences(@Param("dataspaceName") String dataspaceName);
 
     @Query(value = "SELECT DISTINCT\n"
-        + "yr.module_Name AS module_name,\n"
-        + "yr.revision AS revision\n"
+        + "yang_resource.module_Name AS module_name,\n"
+        + "yang_resource.revision AS revision\n"
         + "FROM\n"
-        + "dataspace d\n"
-        + "JOIN anchor a ON a.dataspace_id = d.id\n"
-        + "JOIN schema_set ss ON ss.dataspace_id = a.dataspace_id\n"
-        + "JOIN schema_set_yang_resources ssyr ON ssyr.schema_set_id = ss.id\n"
-        + "JOIN yang_resource yr ON yr.id = ssyr.yang_resource_id\n"
+        + "dataspace dataspace\n"
+        + "JOIN anchor anchor ON anchor.dataspace_id = dataspace.id\n"
+        + "JOIN schema_set schema_set ON schema_set.id = anchor.schema_set_id\n"
+        + "JOIN schema_set_yang_resources schema_set_yang_resource ON schema_set_yang_resource.schema_set_id = "
+        + "schema_set.id\n"
+        + "JOIN yang_resource yang_resource ON yang_resource.id = schema_set_yang_resource.yang_resource_id\n"
         + "WHERE\n"
-        + "d.name = :dataspaceName AND\n"
-        + "a.name =:anchorName", nativeQuery = true)
+        + "dataspace.name = :dataspaceName AND\n"
+        + "anchor.name =:anchorName", nativeQuery = true)
     Set<YangResourceModuleReference> findAllModuleReferences(
         @Param("dataspaceName") String dataspaceName, @Param("anchorName") String anchorName);
 
index 7e42200..a223e71 100644 (file)
@@ -154,8 +154,7 @@ class CpsModulePersistenceServiceIntegrationSpec extends CpsPersistenceSpecBase
         when: 'all yang resources module references are retrieved for the given anchor'
             def result = objectUnderTest.getYangResourceModuleReferences(dataspaceName, anchorName)
         then: 'the correct module names and revisions are returned'
-            result.sort() == [new ModuleReference(moduleName: null, revision: null), new ModuleReference(moduleName: 'MODULE-NAME-002', revision: 'REVISION-002'),
-                              new ModuleReference(moduleName: 'MODULE-NAME-003', revision: 'REVISION-002'),
+            result.sort() == [ new ModuleReference(moduleName: 'MODULE-NAME-003', revision: 'REVISION-002'),
                               new ModuleReference(moduleName: 'MODULE-NAME-004', revision: 'REVISION-004')]
     }
 
index 6160035..2b0a896 100644 (file)
@@ -29,7 +29,8 @@ INSERT INTO SCHEMA_SET (ID, NAME, DATASPACE_ID) VALUES
     (2100, 'SCHEMA-SET-100', 1001), -- for removal, not referenced by anchors
     (2101, 'SCHEMA-SET-101', 1001), -- for removal, having anchor and data associated
     (2003, 'SCHEMA-SET-003', 1002),
-    (2004, 'SCHEMA-SET-004', 1002);
+    (2004, 'SCHEMA-SET-004', 1002),
+    (2005, 'SCHEMA-SET-005', 1001);
 
 INSERT INTO YANG_RESOURCE (ID, NAME, CONTENT, CHECKSUM, MODULE_NAME, REVISION) VALUES
     (3001, 'module1@2020-02-02.yang', 'CONTENT-001', 'e8bdda931099310de66532e08c3fafec391db29f55c81927b168f6aa8f81b73b',null,null),
@@ -42,14 +43,15 @@ INSERT INTO YANG_RESOURCE (ID, NAME, CONTENT, CHECKSUM, MODULE_NAME, REVISION) V
 
 INSERT INTO SCHEMA_SET_YANG_RESOURCES (SCHEMA_SET_ID, YANG_RESOURCE_ID) VALUES
     (2001, 3001), (2001, 3002),
-    (2002, 3003), (2002, 3004),
+    (2002, 3003), (2005, 3004),
     (2100, 3003), (2100, 3100), -- orphan removal case
     (2101, 3003), (2101, 3004),
     (2003, 3005), (2004, 3006);
 
 INSERT INTO ANCHOR (ID, NAME, DATASPACE_ID, SCHEMA_SET_ID) VALUES -- anchors for removal
     (6001, 'ANCHOR1', 1001, 2101),
-    (6002, 'ANCHOR2', 1001, 2101);
+    (6002, 'ANCHOR2', 1001, 2101),
+    (6003, 'ANCHOR3', 1001, 2005);
 
 INSERT INTO FRAGMENT (ID, XPATH, ANCHOR_ID, DATASPACE_ID) VALUES
     (7001, '/XPATH', 6001, 1001);
\ No newline at end of file