From c3493a86e85836bc658c198e3e335bde0fd6acb5 Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Fri, 30 Jul 2010 09:43:06 +0000
Subject: [PATCH] LMS-1671: screening api tests

SVN: 17297
---
 .../client/api/v1/ScreeningClientApiTest.java | 55 ++++++++++++++-----
 1 file changed, 42 insertions(+), 13 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java
index 329f413b086..3ad8b691546 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java
@@ -34,13 +34,18 @@ import org.apache.log4j.PropertyConfigurator;
 
 import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.ScreeningOpenbisServiceFacade.IImageOutputStreamProvider;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetIdentifier;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorDataset;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorDatasetReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorWithDescription;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.IDatasetIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetMetadata;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.MaterialIdentifier;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.MaterialTypeIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Plate;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateImageReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellReferenceWithDatasets;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellPosition;
 
 /**
@@ -73,6 +78,31 @@ public class ScreeningClientApiTest
             System.err.println("Authentication failed: check the user name and password.");
             return;
         }
+        List<ExperimentIdentifier> experiments = facade.listExperiments();
+        System.out.println("Experiments: " + experiments);
+
+        MaterialIdentifier gene = new MaterialIdentifier(MaterialTypeIdentifier.GENE, "OPRS1");
+        ExperimentIdentifier experimentIdentifer = experiments.get(0);
+        List<PlateWellReferenceWithDatasets> plateWells =
+                facade.listPlateWells(experimentIdentifer, gene, true);
+        System.out.println(String.format("Wells with gene '%s' in experiment '%s': %s", gene,
+                experimentIdentifer, plateWells));
+
+        List<FeatureVectorWithDescription> featuresForPlateWells =
+                facade.loadFeaturesForPlateWells(experimentIdentifer, gene, null);
+        System.out.println("Features for wells: " + featuresForPlateWells);
+
+        List<FeatureVectorWithDescription> featuresForPlateWellsCheck =
+                facade.loadFeaturesForDatasetWellReferences(facade
+                        .convertToFeatureVectorDatasetWellIdentifier(plateWells), null);
+
+        if (featuresForPlateWellsCheck.equals(featuresForPlateWells) == false)
+        {
+            throw new IllegalStateException(String.format(
+                    "Inconsistent results to fetch feature vectors, expected:\n%s\nbut got:\n%s",
+                    featuresForPlateWells, featuresForPlateWellsCheck));
+        }
+
         List<Plate> plates = facade.listPlates();
         System.out.println("Plates: " + plates);
         List<ImageDatasetReference> imageDatasets = facade.listImageDatasets(plates);
@@ -110,9 +140,8 @@ public class ScreeningClientApiTest
 
         facade.logout();
     }
-    
-    private static List<IDatasetIdentifier> getFirstFive(
-            IScreeningOpenbisServiceFacade facade,
+
+    private static List<IDatasetIdentifier> getFirstFive(IScreeningOpenbisServiceFacade facade,
             List<? extends DatasetIdentifier> identfiers)
     {
         List<IDatasetIdentifier> result = new ArrayList<IDatasetIdentifier>();
@@ -141,7 +170,7 @@ public class ScreeningClientApiTest
         {
             File dir = new File(datasetIdentifier.getDatasetCode());
             dir.mkdir();
-            
+
             for (int wellRow = 1; wellRow <= 5; wellRow++)
             {
                 for (int wellCol = 1; wellCol <= 5; wellCol++)
@@ -150,10 +179,10 @@ public class ScreeningClientApiTest
                     {
                         for (int tile = 0; tile < 1; tile++)
                         {
-                            
+
                             PlateImageReference imageRef =
-                                new PlateImageReference(wellRow, wellCol, tile, "dapi",
-                                        datasetIdentifier);
+                                    new PlateImageReference(wellRow, wellCol, tile, "dapi",
+                                            datasetIdentifier);
                             imageRefs.add(imageRef);
                             imageFiles.add(new File(dir, createImageFileName(imageRef)));
                         }
@@ -180,13 +209,13 @@ public class ScreeningClientApiTest
         try
         {
             facade.loadImages(imageReferences, new IImageOutputStreamProvider()
-            {
-                public OutputStream getOutputStream(PlateImageReference imageReference)
-                throws IOException
                 {
-                    return imageRefToFileMap.get(imageReference);
-                }
-            });
+                    public OutputStream getOutputStream(PlateImageReference imageReference)
+                            throws IOException
+                    {
+                        return imageRefToFileMap.get(imageReference);
+                    }
+                });
         } finally
         {
             closeOutputStreams(imageRefToFileMap.values());
-- 
GitLab