From 014c63887de86a7f7b871a2a84e3c1ec7f2ba668 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Fri, 5 Aug 2011 18:05:45 +0000
Subject: [PATCH] LMS-2440 Fixing broken tests.

SVN: 22364
---
 .../db/EntityPropertyTypeDAOTest.java         | 23 ++++++--------
 .../dataaccess/db/ExperimentDAOTest.java      | 31 +++++++------------
 .../server/dataaccess/db/SampleDAOTest.java   | 27 +++++++---------
 .../systemtest/ExperimentBrowsingTest.java    |  4 +--
 .../078/020=experiment_properties.tsv         |  1 +
 .../078/040=sample_relationships.tsv          |  4 +--
 .../sql/postgresql/078/043=samples_all.tsv    |  3 +-
 7 files changed, 39 insertions(+), 54 deletions(-)

diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAOTest.java
index 80fb9a6a3ad..0de7ea4c2ff 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAOTest.java
@@ -34,9 +34,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.EntityPropertyPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPropertyPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityPropertiesHolder;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.TableNames;
 import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyTermPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyTermWithStats;
@@ -170,25 +170,20 @@ public class EntityPropertyTypeDAOTest extends AbstractDAOTest
         assertEquals("FLY", properties.get(0).getVocabularyTerm().getCode());
     }
 
-    @Test(groups = "broken-deletion")
-    // FIXME LMS-2440
+    @Test
     public void testDelete()
     {
         EntityTypePropertyTypePE assignment =
                 tryToGetAssignment(EntityKind.EXPERIMENT, "SIRNA_HCS", "DESCRIPTION");
-        assertEquals(false, assignment.getPropertyValues().isEmpty());
-        ExperimentPropertyPE propertyValue =
-                (ExperimentPropertyPE) (assignment.getPropertyValues().iterator().next());
-        ExperimentPE experiment = propertyValue.getEntity();
-        long id = experiment.getId();
-        int totalProps = experiment.getProperties().size();
-
+        // Remember how many rows are in the properties table before we delete
+        int beforeDeletionPropertiesRowCount =
+                countRowsInTable(TableNames.EXPERIMENT_PROPERTIES_TABLE);
+        assertEquals(true, beforeDeletionPropertiesRowCount > 0);
         daoFactory.getEntityPropertyTypeDAO(EntityKind.EXPERIMENT).delete(assignment);
 
-        // load the experiment once again - it was cleared from session
-        experiment = new ExperimentPE();
-        daoFactory.getSessionFactory().getCurrentSession().load(experiment, id);
-        assertEquals(totalProps - 1, experiment.getProperties().size());
+        int afterDeletionPropertiesRowCount =
+                countRowsInTable(TableNames.EXPERIMENT_PROPERTIES_TABLE);
+        assertEquals(beforeDeletionPropertiesRowCount - 7, afterDeletionPropertiesRowCount);
     }
 
     private EntityTypePropertyTypePE tryToGetAssignment(EntityKind entityKind,
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java
index 301835128cf..04ddd1e7ab2 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java
@@ -42,13 +42,12 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPropertyPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.TableNames;
 import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.dto.types.ExperimentTypeCode;
 
@@ -152,7 +151,7 @@ public class ExperimentDAOTest extends AbstractDAOTest
                 daoFactory.getExperimentDAO().listExperimentsWithProperties(expType,
                         projectDefault, null);
         Collections.sort(experiments);
-        assertEquals(2, experiments.size());
+        assertEquals(3, experiments.size());
         assertContains(experiments, CISD_CISD_DEFAULT_EXP_REUSE);
         assertNotContains(experiments, CISD_CISD_DEFAULT_EXP_X);
     }
@@ -176,7 +175,7 @@ public class ExperimentDAOTest extends AbstractDAOTest
                 daoFactory.getExperimentDAO().listExperimentsWithProperties(expType, null,
                         spaceCisd);
         Collections.sort(experiments);
-        assertEquals(6, experiments.size());
+        assertEquals(7, experiments.size());
         assertContains(experiments, CISD_CISD_NEMO_EXP10);
         assertContains(experiments, CISD_CISD_NEMO_EXP11);
         assertContains(experiments, CISD_CISD_DEFAULT_EXP_REUSE);
@@ -244,35 +243,29 @@ public class ExperimentDAOTest extends AbstractDAOTest
         return experiment;
     }
 
-    @Test(groups = "broken-deletion")
-    // FIXME LMS-2440
+    @Test
     public final void testDeleteWithProperties()
     {
         final IExperimentDAO experimentDAO = daoFactory.getExperimentDAO();
-        final ExperimentPE deletedExperiment = findExperiment("/CISD/DEFAULT/EXP-X");
+        final ExperimentPE deletedExperiment = findExperiment("/CISD/DEFAULT/EXP-Y");
 
         // Deleted experiment should have all collections which prevent it from deletion empty.
-        assertTrue(deletedExperiment.getAttachments().isEmpty());
         assertTrue(deletedExperiment.getDataSets().isEmpty());
         assertTrue(deletedExperiment.getSamples().isEmpty());
 
+        // Remember how many rows are in the properties table before we delete
+        int beforeDeletionPropertiesRowCount =
+                countRowsInTable(TableNames.EXPERIMENT_PROPERTIES_TABLE);
+
         // delete
         experimentDAO.delete(deletedExperiment);
 
         // test successful deletion of experiment
         assertNull(experimentDAO.tryGetByTechId(TechId.create(deletedExperiment)));
 
-        // test successful deletion of sample properties
-        assertFalse(deletedExperiment.getProperties().isEmpty());
-        List<EntityTypePropertyTypePE> retrievedPropertyTypes =
-                daoFactory.getEntityPropertyTypeDAO(EntityKind.EXPERIMENT).listEntityPropertyTypes(
-                        deletedExperiment.getEntityType());
-        for (ExperimentPropertyPE property : deletedExperiment.getProperties())
-        {
-            int index = retrievedPropertyTypes.indexOf(property.getEntityTypePropertyType());
-            EntityTypePropertyTypePE retrievedPropertyType = retrievedPropertyTypes.get(index);
-            assertFalse(retrievedPropertyType.getPropertyValues().contains(property));
-        }
+        int afterDeletionPropertiesRowCount =
+                countRowsInTable(TableNames.EXPERIMENT_PROPERTIES_TABLE);
+        assertEquals(beforeDeletionPropertiesRowCount - 1, afterDeletionPropertiesRowCount);
     }
 
     private static final String ATT_CONTENTS_TABLE = "attachment_contents";
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java
index 0b55167c63c..d6d2ce436a7 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAOTest.java
@@ -42,7 +42,6 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO;
 import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventType;
@@ -53,7 +52,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePropertyPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SampleRelationshipPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind;
+import ch.systemsx.cisd.openbis.generic.shared.dto.TableNames;
 import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
 
 /**
@@ -340,8 +339,7 @@ public final class SampleDAOTest extends AbstractDAOTest
         return eventDAO.tryFind(sample.getPermId(), EntityType.SAMPLE, EventType.DELETION);
     }
 
-    @Test(groups = "broken-deletion")
-    // FIXME LMS-2440
+    @Test
     public final void testDeleteWithProperties()
     {
         final ISampleDAO sampleDAO = daoFactory.getSampleDAO();
@@ -354,6 +352,9 @@ public final class SampleDAOTest extends AbstractDAOTest
         assertTrue(deletedSample.getContained().isEmpty());
         assertFalse(deletedSample.getProperties().isEmpty());
 
+        // Remember how many rows are in the properties table before we delete
+        int beforeDeletionPropertiesRowCount = countRowsInTable(TableNames.SAMPLE_PROPERTIES_TABLE);
+
         // delete
         deleteSample(deletedSample);
 
@@ -361,15 +362,10 @@ public final class SampleDAOTest extends AbstractDAOTest
         assertNull(sampleDAO.tryGetByTechId(TechId.create(deletedSample)));
 
         // test successful deletion of sample properties
-        List<EntityTypePropertyTypePE> retrievedPropertyTypes =
-                daoFactory.getEntityPropertyTypeDAO(EntityKind.SAMPLE).listEntityPropertyTypes(
-                        deletedSample.getEntityType());
-        for (SamplePropertyPE property : deletedSample.getProperties())
-        {
-            int index = retrievedPropertyTypes.indexOf(property.getEntityTypePropertyType());
-            EntityTypePropertyTypePE retrievedPropertyType = retrievedPropertyTypes.get(index);
-            assertFalse(retrievedPropertyType.getPropertyValues().contains(property));
-        }
+        int afterDeletionPropertiesRowCount = countRowsInTable(TableNames.SAMPLE_PROPERTIES_TABLE);
+
+        assertEquals(afterDeletionPropertiesRowCount, beforeDeletionPropertiesRowCount
+                - deletedSample.getProperties().size());
     }
 
     private static final String ATT_CONTENTS_TABLE = "attachment_contents";
@@ -421,11 +417,10 @@ public final class SampleDAOTest extends AbstractDAOTest
         deleteSample(deletedSample);
     }
 
-    @Test(groups = "broken-deletion")
-    // FIXME LMS-2440
+    @Test
     public final void testDeleteWithGeneratedSamples()
     {
-        final SamplePE deletedSample = findSample("3VCP2", "CISD");
+        final SamplePE deletedSample = findSample("3VCP2-NEW", "CISD");
 
         // Deleted sample should have 'generated' samples which prevent it from deletion.
         // Other connections which also prevent sample deletion should be empty in this test.
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java
index 88c22550ee8..5271b98537d 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java
@@ -78,8 +78,8 @@ public class ExperimentBrowsingTest extends SystemTestCase
         assertEquals(null, e1.getDeletion());
         assertObjectWithCodeDoesNotExists(resultSet, "EXP-X"); // deleted
         assertEquals(false, resultSet.getResultSet().isPartial());
-        assertEquals(2, resultSet.getResultSet().getTotalLength());
-        assertEquals(2, resultSet.getResultSet().getList().size());
+        assertEquals(3, resultSet.getResultSet().getTotalLength());
+        assertEquals(3, resultSet.getResultSet().getList().size());
     }
 
     @Test
diff --git a/openbis/sourceTest/sql/postgresql/078/020=experiment_properties.tsv b/openbis/sourceTest/sql/postgresql/078/020=experiment_properties.tsv
index 49a8ad788d3..3b4dc448c8a 100644
--- a/openbis/sourceTest/sql/postgresql/078/020=experiment_properties.tsv
+++ b/openbis/sourceTest/sql/postgresql/078/020=experiment_properties.tsv
@@ -12,3 +12,4 @@
 17	20	1	very important expertiment	\N	2	2009-02-09 12:17:55.058768+01	2009-03-18 10:50:19.475958+01	\N
 19	20	5	\N	12	2	2009-02-09 12:17:55.058768+01	2009-03-18 10:50:19.475958+01	\N
 18	20	3	2009-02-09 00:00:00 +0100	\N	2	2009-02-09 12:17:55.058768+01	2009-03-18 10:50:19.475958+01	\N
+20	22	1	A simple experiment	\N	2	2008-11-05 09:22:37.246+01	2009-03-18 10:50:19.475958+01	\N
diff --git a/openbis/sourceTest/sql/postgresql/078/040=sample_relationships.tsv b/openbis/sourceTest/sql/postgresql/078/040=sample_relationships.tsv
index a3f5c810823..35c04b997e5 100644
--- a/openbis/sourceTest/sql/postgresql/078/040=sample_relationships.tsv
+++ b/openbis/sourceTest/sql/postgresql/078/040=sample_relationships.tsv
@@ -3,7 +3,7 @@
 7	979	1	989
 16	4	1	977
 26	1025	1	1030
-12	983	1	992
+12	1053	1	992
 23	1020	1	1025
 5	979	1	987
 9	982	1	990
@@ -22,7 +22,7 @@
 1	325	1	979
 4	979	1	986
 8	977	1	982
-11	977	1	983
+11	977	1	1053
 19	1008	1	1020
 27	1026	1	1031
 40	994	2	1029
diff --git a/openbis/sourceTest/sql/postgresql/078/043=samples_all.tsv b/openbis/sourceTest/sql/postgresql/078/043=samples_all.tsv
index 2ce11b55e93..0305264c2ed 100644
--- a/openbis/sourceTest/sql/postgresql/078/043=samples_all.tsv
+++ b/openbis/sourceTest/sql/postgresql/078/043=samples_all.tsv
@@ -975,7 +975,7 @@
 990	3VRP1A	4	2008-11-05 09:21:47.449+01	2	1	\N	1	\N	2009-03-18 10:50:19.475958+01	\N	200811050947449-984
 991	3VRP1B	4	2008-11-05 09:21:47.449+01	2	1	\N	1	\N	2009-03-18 10:50:19.475958+01	\N	200811050947449-985
 983	3VCP2	3	2008-11-05 09:21:46.559+01	2	1	\N	1	\N	2009-03-18 10:50:19.475958+01	\N	200811050946559-986
-992	3VRP2	4	2008-11-05 09:21:47.449+01	2	1	\N	1	\N	2009-03-18 10:50:19.475958+01	\N	200811050947449-987
+992	3VRP2	4	2008-11-05 09:21:47.449+01	2	\N	\N	1	\N	2009-03-18 10:50:19.475958+01	\N	200811050947449-987
 984	3VCP3	3	2008-11-05 09:21:46.559+01	2	2	\N	1	\N	2009-03-18 10:50:19.475958+01	2	200811050946559-988
 993	3VRP3T	4	2008-11-05 09:21:47.449+01	2	2	\N	1	\N	2009-03-18 10:50:19.475958+01	\N	200811050947449-989
 985	3VCP4	3	2008-11-05 09:21:46.559+01	2	2	\N	1	\N	2009-03-18 10:50:19.475958+01	2	200811050946559-990
@@ -1021,3 +1021,4 @@
 1050	PLATE_WELLSEARCH	3	2009-02-09 12:09:50.077973+01	2	\N	\N	1	\N	2009-08-18 17:54:36.929+02	21	200902091250077-1050
 1051	WELL-A01	6	2009-02-09 12:09:50.077973+01	2	\N	\N	1	1050	2009-08-18 17:54:36.929+02	21	200902091250077-1051
 1052	WELL-A02	6	2009-02-09 12:09:50.077973+01	2	\N	\N	1	1050	2009-08-18 17:54:36.929+02	21	200902091250077-1052
+1053	3VCP2-NEW	3	2008-11-05 09:21:46.559+01	2	\N	\N	1	\N	2009-03-18 10:50:19.475958+01	\N	201108050946559-986
\ No newline at end of file
-- 
GitLab