From 52677eac7fb1b64af79efe200cba1e8306cdce64 Mon Sep 17 00:00:00 2001
From: jakubs <jakubs>
Date: Fri, 5 Jul 2013 14:26:43 +0000
Subject: [PATCH] SP-748 BIS-472 fix project update / add attachment via
 dropbox

SVN: 29522
---
 .../registrator/api/v1/impl/ConversionUtils.java     |  2 ++
 .../registrator/api/v2/impl/ConversionUtils.java     |  2 ++
 .../drop-boxes/rich-test/rich-data-set-handler.py    |  3 +++
 .../FeatureRichDataSetImportSystemTest.java          | 12 +++++++++++-
 4 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java
index 3d251dc2880..1e58e371d74 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java
@@ -300,9 +300,11 @@ public class ConversionUtils
     public static ProjectUpdatesDTO convertToProjectUpdateDTO(Project apiProject)
     {
         final ProjectUpdatesDTO projectUpdate = new ProjectUpdatesDTO();
+        projectUpdate.setIdentifier(apiProject.getProjectIdentifier());
         projectUpdate.setTechId(new TechId(apiProject.getId()));
         projectUpdate.setDescription(apiProject.getDescription());
         projectUpdate.setAttachments(apiProject.getNewAttachments());
+        projectUpdate.setVersion(apiProject.getProject().getVersion());
         return projectUpdate;
     }
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java
index 8df91857c14..e3f4dd84660 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java
@@ -300,9 +300,11 @@ public class ConversionUtils
     public static ProjectUpdatesDTO convertToProjectUpdateDTO(Project apiProject)
     {
         final ProjectUpdatesDTO projectUpdate = new ProjectUpdatesDTO();
+        projectUpdate.setIdentifier(apiProject.getProjectIdentifier());
         projectUpdate.setTechId(new TechId(apiProject.getId()));
         projectUpdate.setDescription(apiProject.getDescription());
         projectUpdate.setAttachments(apiProject.getNewAttachments());
+        projectUpdate.setVersion(apiProject.getProject().getVersion());
         return projectUpdate;
     }
 
diff --git a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/rich-data-set-handler.py b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/rich-data-set-handler.py
index e2260858653..296d439148e 100644
--- a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/rich-data-set-handler.py
+++ b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/rich-data-set-handler.py
@@ -29,6 +29,9 @@ def create_project_if_needed(transaction):
         create_space_if_needed(transaction)
         project = transaction.createNewProject(PROJECT_ID)
         project.setDescription("A demo project")
+        f = open("%s/%s" % (transaction.getIncoming().getPath(), "set1.txt"), 'r')
+        project.addAttachment("attachment.txt", 'Source Import File', 'Source Import File ', f.read())
+        f.close()
 
 def create_experiment_if_needed(transaction):
     exp = transaction.getExperiment(EXPERIMENT_ID)
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java
index 6dd5993169f..8736bf82e0d 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java
@@ -26,8 +26,11 @@ import org.testng.annotations.Test;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Attachment;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.project.ProjectTechIdId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LinkDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListMaterialCriteria;
@@ -118,12 +121,19 @@ public class FeatureRichDataSetImportSystemTest extends SystemTestCase
     {
         List<Project> projects = openBISService.listProjects();
         boolean notFound = true;
+
         for (Project p : projects)
         {
             if (p.getIdentifier().equals("/RICH_SPACE/RICH_PROJECT"))
             {
                 notFound = false;
                 assertEquals("RICH_SPACE", p.getSpace().getCode());
+
+                IGeneralInformationService generalInformationService = ServiceProvider.getGeneralInformationService();
+                String sessionToken = generalInformationService.tryToAuthenticateForAllServices("test", "test");
+                List<Attachment> attachments =
+                        generalInformationService.listAttachmentsForProject(sessionToken, new ProjectTechIdId(p.getId()), true);
+                assertEquals(1, attachments.size());
             }
         }
         if (notFound)
-- 
GitLab