From 7d5213927abdb6e82654fdd3bf67336089cc9e72 Mon Sep 17 00:00:00 2001
From: Nicola Fulvio Calabria <nicola.calabria@inaf.it>
Date: Sun, 30 Oct 2022 09:46:09 +0100
Subject: [PATCH] added delete collection and test

---
 .../oats/vospace/persistence/CollectionsDAO.java  | 11 +++++++++--
 .../vospace/persistence/CollectionsDAOTest.java   | 15 ++++++++++++++-
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java b/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java
index cd78547..fecca5c 100644
--- a/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java
+++ b/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java
@@ -43,7 +43,7 @@ public class CollectionsDAO {
         });
     }
 
-    Optional<NodeCollection> getNodeCollectionById(Long id) {
+    public Optional<NodeCollection> getNodeCollectionById(Long id) {
         String sql = "SELECT collection_id, title, owner_id FROM collections\n"
                 + "WHERE collection_id = ?";
 
@@ -66,7 +66,7 @@ public class CollectionsDAO {
 
     }
     
-    List<NodeCollection> getUserNodeCollections(String userId) {
+    public List<NodeCollection> getUserNodeCollections(String userId) {
         String sql = "SELECT collection_id, title, owner_id FROM collections\n"
                 + "WHERE owner_id = ?";
 
@@ -82,6 +82,13 @@ public class CollectionsDAO {
 
         return nc;
     }
+    
+    public void deleteCollection(Long collectionId) {
+        // TODO: this is just a stub for development.
+        String sql  = "DELETE FROM collections WHERE collection_id = ?";
+        
+        jdbcTemplate.update(sql, collectionId);
+    }
 
     private NodeCollection getNodeCollectionFromResultset(ResultSet rs)
             throws SQLException {
diff --git a/src/test/java/it/inaf/oats/vospace/persistence/CollectionsDAOTest.java b/src/test/java/it/inaf/oats/vospace/persistence/CollectionsDAOTest.java
index fb1ca9b..a7871d6 100644
--- a/src/test/java/it/inaf/oats/vospace/persistence/CollectionsDAOTest.java
+++ b/src/test/java/it/inaf/oats/vospace/persistence/CollectionsDAOTest.java
@@ -5,6 +5,8 @@
  */
 package it.inaf.oats.vospace.persistence;
 
+import it.inaf.oats.vospace.persistence.model.NodeCollection;
+import java.util.List;
 import javax.sql.DataSource;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -43,7 +45,18 @@ public class CollectionsDAOTest {
         collectionsDAO.createNewCollection("collection1", "pippo");
         collectionsDAO.createNewCollection("collection2", "pippo");
         
-        assertEquals(2, collectionsDAO.getUserNodeCollections("pippo").size());
+        List<NodeCollection> ncl = 
+                collectionsDAO.getUserNodeCollections("pippo");
+        
+        assertEquals(2, ncl.size());
+        
+        for(NodeCollection nc : ncl) {
+            collectionsDAO.deleteCollection(
+                    nc.getId()
+            );            
+        }
+        
+        assertTrue(collectionsDAO.getUserNodeCollections("pippo").isEmpty());        
     }
         
     
-- 
GitLab