From 33c6aa2e4c8414c06a9a5df68bcc862885813445 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Tue, 24 Aug 2010 19:21:44 +0000
Subject: [PATCH] [LMS-1698] headless system tests taking place broken system
 tests of sample registration

SVN: 17626
---
 .../sample/GenericSampleRegistrationTest.java | 45 ----------
 .../generic/SampleRegistrationTest.java       | 89 +++++++++++++++++--
 2 files changed, 83 insertions(+), 51 deletions(-)

diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java
index c45101a85cc..2ef3da8b49b 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java
@@ -20,17 +20,13 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMe
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenu.ActionMenuKind;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.GroupSelectionWidget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.InvokeActionMenu;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.sample.CommonSampleColDefKind;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.CheckSampleTable;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.ChooseTypeOfNewSample;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.ListSamples;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.ShowSample;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.columns.SampleRow;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.AbstractGWTTestCase;
-import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.CheckTableCommand;
 import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.FailureExpectation;
-import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.Row;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientService;
@@ -64,12 +60,8 @@ public class GenericSampleRegistrationTest extends AbstractGWTTestCase
 
     private static final String CONTROL_LAYOUT = "CONTROL_LAYOUT";
 
-    private static final String DILUTION_PLATE = "DILUTION_PLATE";
-
     private static final String CELL_PLATE = "CELL_PLATE";
 
-    private static final String WELL = "WELL";
-
     private static final String GROUP_CL = "GROUP_CL";
 
     private static final String SHARED_CL = "SHARED_CL";
@@ -116,20 +108,6 @@ public class GenericSampleRegistrationTest extends AbstractGWTTestCase
         launchTest();
     }
 
-    public final void testRegisterGroupSampleWithParent()
-    {
-        final String sampleCode = "dp4";
-        final String sampleTypeCode = DILUTION_PLATE;
-        loginAndPreprareRegistration(sampleTypeCode);
-        remoteConsole.prepare(new FillSampleRegistrationForm("CISD", sampleCode)
-                .parents("MP1-MIXED"));
-        remoteConsole.prepare(new InvokeActionMenu(TopMenu.ActionMenuKind.SAMPLE_MENU_BROWSE));
-        remoteConsole.prepare(new ListSamples("CISD", sampleTypeCode));
-        remoteConsole.prepare(new CheckSampleTable().expectedRow(new SampleRow(sampleCode
-                .toUpperCase()).identifier("CISD", "CISD")));
-        launchTest();
-    }
-
     public final void testRegisterGroupSampleWithExperiment()
     {
         final String sampleCode = "cp-with-exp";
@@ -144,29 +122,6 @@ public class GenericSampleRegistrationTest extends AbstractGWTTestCase
         launchTest();
     }
 
-    public final void testRegisterGroupSampleWithContainer()
-    {
-        final String sampleCode = "W12";
-        final String sampleTypeCode = WELL;
-        final String containerCode = "3VCP5";
-        final String containerId = "CISD:/CISD/" + containerCode;
-        loginAndPreprareRegistration(sampleTypeCode);
-        remoteConsole.prepare(new FillSampleRegistrationForm("CISD", sampleCode)
-                .container(containerCode));
-        remoteConsole.prepare(new InvokeActionMenu(TopMenu.ActionMenuKind.SAMPLE_MENU_BROWSE));
-        remoteConsole.prepare(new ListSamples("CISD", CELL_PLATE));
-        remoteConsole.prepare(new ShowSample(containerCode));
-        final CheckSample checkSample = new CheckSample();
-        checkSample.property("Sample").asString(containerId);
-        final CheckTableCommand componentsTable = checkSample.componentsTable().expectedSize(1);
-        final String sampleCodeFieldIdent = CommonSampleColDefKind.CODE.id();
-        final String sampleSubcodeFieldIdent = CommonSampleColDefKind.SUBCODE.id();
-        componentsTable.expectedRow(new Row().withCell(sampleCodeFieldIdent,
-                containerCode + ":" + sampleCode).withCell(sampleSubcodeFieldIdent, sampleCode));
-        remoteConsole.prepare(checkSample);
-        launchTest();
-    }
-
     public final void testRegisterSharedSample()
     {
         final String sampleTypeCode = CONTROL_LAYOUT;
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleRegistrationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleRegistrationTest.java
index 6270b31f4ea..ae1879e3134 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleRegistrationTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleRegistrationTest.java
@@ -29,6 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListSampleDisplayC
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetWithEntityTypes;
 import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IdentifierExtractor;
+import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
@@ -41,6 +42,16 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
 @Test(groups = "system test")
 public class SampleRegistrationTest extends GenericSystemTestCase
 {
+    private static final String CELL_PLATE = "CELL_PLATE";
+
+    private static final String DILUTION_PLATE = "DILUTION_PLATE";
+
+    private static final String WELL = "WELL";
+
+    private static final String CISD_SHORT = "/CISD/";
+
+    private static final String CISD_LONG = "CISD:/CISD/";
+
     @Test
     public void testSimpleRegistration()
     {
@@ -50,7 +61,7 @@ public class SampleRegistrationTest extends GenericSystemTestCase
         String identifier = "/cisd/" + commonClientService.generateCode("S-");
         sample.setIdentifier(identifier);
         SampleType sampleType = new SampleType();
-        sampleType.setCode("CELL_PLATE");
+        sampleType.setCode(CELL_PLATE);
         sample.setSampleType(sampleType);
         sample.setProperties(new IEntityProperty[]
             { property("COMMENT", "test sample") });
@@ -59,7 +70,8 @@ public class SampleRegistrationTest extends GenericSystemTestCase
         sample.setParents(parents);
         genericClientService.registerSample("session", sample);
 
-        Sample s = getSample(identifier);
+        Sample s = getSpaceSample(identifier);
+        assertEquals(CELL_PLATE, s.getSampleType().getCode());
         List<IEntityProperty> properties = s.getProperties();
         assertEquals("COMMENT", properties.get(0).getPropertyType().getCode());
         assertEquals("test sample", properties.get(0).getValue());
@@ -69,17 +81,66 @@ public class SampleRegistrationTest extends GenericSystemTestCase
                 .toString(IdentifierExtractor.extract(s.getParents()).toArray()));
     }
 
-    private Sample getSample(String sampleIdentifier)
+    @Test
+    // translated broken test from GenericSampleRegistrationTest
+    public void testRegisterGroupSampleWithParent()
+    {
+        logIntoCommonClientService();
+
+        final NewSample sample = new NewSample();
+        final String sampleCode = "dp4";
+        final String identifier = CISD_SHORT + sampleCode;
+        sample.setIdentifier(identifier);
+        final String parent = "CISD:/CISD/C1";
+        sample.setParents(new String[]
+            { parent });
+        final SampleType sampleType = new SampleType();
+        sampleType.setCode(DILUTION_PLATE);
+        sample.setSampleType(sampleType);
+        genericClientService.registerSample("session", sample);
+
+        Sample s = getSpaceSample(identifier);
+        assertEquals(1, s.getParents().size());
+        assertEquals(parent, IdentifierExtractor.extract(s.getParents()).get(0));
+    }
+
+    @Test
+    // translated broken test from GenericSampleRegistrationTest
+    public void testRegisterGroupSampleWithContainer()
+    {
+        logIntoCommonClientService();
+
+        final NewSample sample = new NewSample();
+        final String sampleCode = "W12";
+        final String simpleIdentifier = CISD_SHORT + sampleCode;
+        final String containerCode = "3VCP5";
+        final String containerIdentifier = CISD_LONG + containerCode;
+        sample.setIdentifier(simpleIdentifier);
+        sample.setContainerIdentifier(containerIdentifier);
+        final SampleType sampleType = new SampleType();
+        sampleType.setCode(WELL);
+        sample.setSampleType(sampleType);
+        genericClientService.registerSample("session", sample);
+
+        final String fullIdentifier = containerIdentifier + ":" + sampleCode;
+        Sample s = getContainedSample(containerIdentifier, fullIdentifier);
+        assertEquals(0, s.getParents().size());
+        assertEquals(containerIdentifier, s.getContainer().getIdentifier());
+        assertEquals(sampleCode, s.getSubCode());
+        assertEquals(containerCode + ":" + sampleCode, s.getCode());
+        assertEquals(fullIdentifier, s.getIdentifier());
+    }
+
+    private Sample getSample(String sampleIdentifier, ListSampleCriteria listCriteria)
     {
-        ListSampleCriteria listCriteria = new ListSampleCriteria();
-        listCriteria.setIncludeSpace(true);
         ResultSetWithEntityTypes<Sample> samples =
                 commonClientService.listSamples(new ListSampleDisplayCriteria(listCriteria));
         GridRowModels<Sample> list = samples.getResultSet().getList();
         for (GridRowModel<Sample> gridRowModel : list)
         {
             Sample sample = gridRowModel.getOriginalObject();
-            System.out.println("SAMPLE:" + sample.getIdentifier());
+            System.err.println(sample.getIdentifier() + " (" + sample.getCode() + "; "
+                    + sample.getSubCode() + ")");
             if (sample.getIdentifier().endsWith(sampleIdentifier.toUpperCase()))
             {
                 return sample;
@@ -88,4 +149,20 @@ public class SampleRegistrationTest extends GenericSystemTestCase
         fail("No sample of type found for identifier " + sampleIdentifier);
         return null; // satisfy compiler
     }
+
+    private Sample getSpaceSample(String sampleIdentifier)
+    {
+        ListSampleCriteria listCriteria = new ListSampleCriteria();
+        listCriteria.setIncludeSpace(true);
+        return getSample(sampleIdentifier, listCriteria);
+    }
+
+    private Sample getContainedSample(String containerIdentifier, String sampleIdentifier)
+    {
+        final Sample container = getSpaceSample(containerIdentifier);
+        ListSampleCriteria listCriteria =
+                ListSampleCriteria.createForContainer(TechId.create(container));
+        return getSample(sampleIdentifier, listCriteria);
+    }
+
 }
-- 
GitLab