From b43354d1accf5de3550bfa47966e3032fc628e3b Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Thu, 4 Aug 2011 07:54:00 +0000
Subject: [PATCH] [LMS-2421] fixed test expectations + refactoring

SVN: 22337
---
 .../server/dataaccess/db/DeletionDAOTest.java | 110 +++++++++++++-----
 1 file changed, 79 insertions(+), 31 deletions(-)

diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DeletionDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DeletionDAOTest.java
index 40ffce055f7..616a89b5f27 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DeletionDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DeletionDAOTest.java
@@ -38,8 +38,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.TableNames;
  * @author Piotr Buczek
  */
 @Test(groups =
-    { "db", "broken" })
-// FIXME LMS-2421
+    { "db" })
 public class DeletionDAOTest extends AbstractDAOTest
 {
 
@@ -52,12 +51,49 @@ public class DeletionDAOTest extends AbstractDAOTest
         assertEquals(countRowsInTable(TableNames.DELETIONS_TABLE), allDeletions.size());
         assertEquals(4, allDeletions.size());
 
-        assertTrashedEntitiesFound(0, 5, 1, allDeletions.get(0));
-        assertTrashedEntitiesFound(0, 3, 0, allDeletions.get(1));
-        assertTrashedEntitiesFound(0, 323, 0, allDeletions.get(2));
-        assertTrashedEntitiesFound(2, 3, 0, allDeletions.get(3));
+        int e0 = 0, s0 = 5, d0 = 1;
+        checkTrashFor(allDeletions.get(0)).hasExperiments(e0).hasSamples(s0).hasDataSets(d0);
+        int e1 = 0, s1 = 3, d1 = 0;
+        checkTrashFor(allDeletions.get(1)).hasExperiments(e1).hasSamples(s1).hasDataSets(d1);
+        int e2 = 0, s2 = 323, d2 = 0;
+        checkTrashFor(allDeletions.get(2)).hasExperiments(e2).hasSamples(s2).hasDataSets(d2);
+        int e3 = 2, s3 = 3, d3 = 0;
+        checkTrashFor(allDeletions.get(3)).hasExperiments(e3).hasSamples(s3).hasDataSets(d3);
+
+        int eAll = e0 + e1 + e2 + e3, sAll = s0 + s1 + s2 + s3, dAll = d0 + d1 + d2 + d3;
+        checkTrashFor(allDeletions).hasExperiments(eAll).hasSamples(sAll).hasDataSets(dAll);
+
+        assertEquals(eAll, countRowsInTable(TableNames.DELETED_EXPERIMENTS_VIEW));
+        assertEquals(sAll, countRowsInTable(TableNames.DELETED_SAMPLES_VIEW));
+        assertEquals(dAll, countRowsInTable(TableNames.DELETED_DATA_VIEW));
+    }
+
+    @Test
+    public void testViews()
+    {
+        // simple test checking that views for our entities sum up to the whole table
+
+        assertEquals(countRowsInTable(TableNames.EXPERIMENTS_ALL_TABLE),
+                countRowsInTable(TableNames.EXPERIMENTS_VIEW)
+                        + countRowsInTable(TableNames.DELETED_EXPERIMENTS_VIEW));
+
+        assertEquals(countRowsInTable(TableNames.SAMPLES_ALL_TABLE),
+                countRowsInTable(TableNames.SAMPLES_VIEW)
+                        + countRowsInTable(TableNames.DELETED_SAMPLES_VIEW));
+
+        assertEquals(countRowsInTable(TableNames.DATA_ALL_TABLE),
+                countRowsInTable(TableNames.DATA_VIEW)
+                        + countRowsInTable(TableNames.DELETED_DATA_VIEW));
+    }
 
-        assertTrashedEntitiesFound(2, 334, 1, allDeletions);
+    private TrashedEntityExpectations checkTrashFor(DeletionPE deletion)
+    {
+        return checkTrashFor(Collections.singletonList(deletion));
+    }
+
+    private TrashedEntityExpectations checkTrashFor(List<DeletionPE> deletions)
+    {
+        return new TrashedEntityExpectations(deletions);
     }
 
     @Test
@@ -133,7 +169,7 @@ public class DeletionDAOTest extends AbstractDAOTest
             String errorMsg =
                     String.format("sample with id %s is expected %s be deleted;", id,
                             expectedDeleted ? "to" : "not to");
-            assertEquals(errorMsg, expectedDeleted, sampleDAO.getByTechId(id).getDeletion() != null);
+            assertEquals(errorMsg, expectedDeleted, sampleDAO.tryGetByTechId(id) == null);
         }
     }
 
@@ -145,8 +181,7 @@ public class DeletionDAOTest extends AbstractDAOTest
             String errorMsg =
                     String.format("experiment with id %s is expected %s be deleted;", id,
                             expectedDeleted ? "to" : "not to");
-            assertEquals(errorMsg, expectedDeleted,
-                    experimentDAO.getByTechId(id).getDeletion() != null);
+            assertEquals(errorMsg, expectedDeleted, experimentDAO.tryGetByTechId(id) == null);
         }
     }
 
@@ -158,32 +193,45 @@ public class DeletionDAOTest extends AbstractDAOTest
             String errorMsg =
                     String.format("data set '%s' is expected %s be deleted;", code,
                             expectedDeleted ? "to" : "not to");
-            assertEquals(errorMsg, expectedDeleted, dataDAO.tryToFindDataSetByCode(code)
-                    .getDeletion() != null);
+            assertEquals(errorMsg, expectedDeleted, dataDAO.tryToFindDataSetByCode(code) == null);
         }
     }
 
-    private void assertTrashedEntitiesFound(int expectedExperiments, int expectedSamples,
-            int expectedDataSets, DeletionPE deletion)
+    private class TrashedEntityExpectations
     {
-        assertTrashedEntitiesFound(expectedExperiments, expectedSamples, expectedDataSets,
-                Collections.singletonList(deletion));
-    }
+        private final List<TechId> deletionIds;
 
-    private void assertTrashedEntitiesFound(int expectedExperiments, int expectedSamples,
-            int expectedDataSets, List<DeletionPE> deletions)
-    {
-        List<TechId> deletionIds = TechId.createList(deletions);
-        IDeletionDAO deletionDAO = daoFactory.getDeletionDAO();
+        private final IDeletionDAO deletionDAO;
+
+        public TrashedEntityExpectations(List<DeletionPE> deletions)
+        {
+            deletionIds = TechId.createList(deletions);
+            deletionDAO = daoFactory.getDeletionDAO();
+        }
+
+        public TrashedEntityExpectations hasExperiments(int expectedExperiments)
+        {
+            List<TechId> foundExperimentIds = deletionDAO.findTrashedExperimentIds(deletionIds);
+            assertEquals(deletionIds.toString(), expectedExperiments, foundExperimentIds.size());
+            assertExperimentsDeleted(true, foundExperimentIds);
+            return this;
+        }
+
+        public TrashedEntityExpectations hasSamples(int expectedSamples)
+        {
+            List<TechId> foundSampleIds = deletionDAO.findTrashedSampleIds(deletionIds);
+            assertEquals(deletionIds.toString(), expectedSamples, foundSampleIds.size());
+            assertSamplesDeleted(true, foundSampleIds);
+            return this;
+        }
+
+        public TrashedEntityExpectations hasDataSets(int expectedDataSets)
+        {
+            List<String> foundDataSetCodes = deletionDAO.findTrashedDataSetCodes(deletionIds);
+            assertEquals(deletionIds.toString(), expectedDataSets, foundDataSetCodes.size());
+            assertDataSetsDeleted(true, foundDataSetCodes);
+            return this;
+        }
 
-        List<TechId> foundExperimentIds = deletionDAO.findTrashedExperimentIds(deletionIds);
-        assertEquals(deletionIds.toString(), expectedExperiments, foundExperimentIds.size());
-        assertExperimentsDeleted(true, foundExperimentIds);
-        List<TechId> foundSampleIds = deletionDAO.findTrashedSampleIds(deletionIds);
-        assertEquals(deletionIds.toString(), expectedSamples, foundSampleIds.size());
-        assertSamplesDeleted(true, foundSampleIds);
-        List<String> foundDataSetCodes = deletionDAO.findTrashedDataSetCodes(deletionIds);
-        assertEquals(deletionIds.toString(), expectedDataSets, foundDataSetCodes.size());
-        assertDataSetsDeleted(true, foundDataSetCodes);
     }
 }
-- 
GitLab