Skip to content
Snippets Groups Projects
Commit 87aa545e authored by felmer's avatar felmer
Browse files

SP-524, BIS-278: more tests

SVN: 28501
parent 19192476
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,7 @@
package ch.systemsx.cisd.openbis.generic.shared.api.v1;
import java.util.Arrays;
import java.util.Date;
import java.util.EnumSet;
import java.util.HashMap;
......@@ -25,8 +26,10 @@ import org.testng.AssertJUnit;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Attachment;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.experiment.ExperimentPermIdId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
......@@ -38,6 +41,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentBuil
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.LinkDataSetBuilder;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.SampleBuilder;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.SampleTypeBuilder;
import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
/**
* @author Franz-Josef Elmer
......@@ -236,6 +242,85 @@ public class TranslatorTest extends AssertJUnit
assertEquals(edms, translated.getExternalDataManagementSystem());
}
@Test
public void testTranslateAttachmentsWithAllVersions()
{
AttachmentPE a1 = attachment("test.txt", 1);
AttachmentPE a2 = attachment("test.txt", 2);
ExperimentPE attachmentHolder = new ExperimentPE();
attachmentHolder.setId(1234L);
List<Attachment> attachments =
Translator.translateAttachments("st-1", new ExperimentPermIdId("perm1"),
attachmentHolder, Arrays.asList(a1, a2), true);
assertEquals("[Attachment [fileName=test.txt, version=2, title=Title, "
+ "description=File:test.txt, version:2, "
+ "registrationDate=Thu Jan 01 01:00:04 CET 1970, "
+ "userFirstName=Albert, userLastName=Einstein, "
+ "userEmail=ae@ae.ch, userId=ae, "
+ "downloadLink=/openbis/attachment-download?sessionID=st-1&"
+ "attachmentHolder=EXPERIMENT&id=1234&fileName=test.txt&version=2], "
+ "Attachment [fileName=test.txt, version=1, title=Title, "
+ "description=File:test.txt, version:1, "
+ "registrationDate=Thu Jan 01 01:00:04 CET 1970, "
+ "userFirstName=Albert, userLastName=Einstein, userEmail=ae@ae.ch, userId=ae, "
+ "downloadLink=/openbis/attachment-download?sessionID=st-1&"
+ "attachmentHolder=EXPERIMENT&id=1234&fileName=test.txt&version=1]]",
attachments.toString());
assertEquals(2, attachments.size());
}
@Test
public void testTranslateAttachmentsWithLatestVersions()
{
AttachmentPE a1 = attachment("test.txt", 1);
AttachmentPE a2 = attachment("greetings.txt", 1);
AttachmentPE a3 = attachment("greetings.txt", 2);
AttachmentPE a4 = attachment("test.txt", 2);
AttachmentPE a5 = attachment("test.txt", 3);
ExperimentPE attachmentHolder = new ExperimentPE();
attachmentHolder.setId(1234L);
List<Attachment> attachments =
Translator.translateAttachments("st-1", new ExperimentPermIdId("perm1"),
attachmentHolder, Arrays.asList(a1, a2, a3, a4, a5), false);
assertEquals("[Attachment [fileName=greetings.txt, version=2, title=Title, "
+ "description=File:greetings.txt, version:2, "
+ "registrationDate=Thu Jan 01 01:00:04 CET 1970, "
+ "userFirstName=Albert, userLastName=Einstein, "
+ "userEmail=ae@ae.ch, userId=ae, "
+ "downloadLink=/openbis/attachment-download?sessionID=st-1&"
+ "attachmentHolder=EXPERIMENT&id=1234&fileName=greetings.txt&version=2], "
+ "Attachment [fileName=test.txt, version=3, title=Title, "
+ "description=File:test.txt, version:3, "
+ "registrationDate=Thu Jan 01 01:00:04 CET 1970, "
+ "userFirstName=Albert, userLastName=Einstein, userEmail=ae@ae.ch, userId=ae, "
+ "downloadLink=/openbis/attachment-download?sessionID=st-1&"
+ "attachmentHolder=EXPERIMENT&id=1234&fileName=test.txt&version=3]]",
attachments.toString());
assertEquals(2, attachments.size());
}
private AttachmentPE attachment(String fileName, int version)
{
AttachmentPE attachment = new AttachmentPE();
attachment.setFileName(fileName);
attachment.setVersion(version);
attachment.setTitle("Title");
attachment.setDescription("File:" + fileName + ", version:" + version);
PersonPE registrator = new PersonPE();
registrator.setUserId("ae");
registrator.setFirstName("Albert");
registrator.setLastName("Einstein");
registrator.setEmail("ae@ae.ch");
attachment.setRegistrator(registrator);
attachment.setRegistrationDate(new Date(4711));
return attachment;
}
private void assertBasicAttributes(
ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData originalDataSet,
DataSet translatedDataSet)
......
......@@ -22,10 +22,13 @@ import static org.testng.AssertJUnit.assertTrue;
import static org.testng.AssertJUnit.fail;
import java.net.MalformedURLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.EnumSet;
import java.util.List;
import java.util.Map;
......@@ -36,9 +39,11 @@ import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import ch.systemsx.cisd.common.exceptions.UserFailureException;
import ch.systemsx.cisd.common.string.ToStringComparator;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationChangingService;
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.DataSet;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetType;
......@@ -54,7 +59,15 @@ import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria.MatchCl
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchSubCriteria;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SpaceWithProjectsAndRoleAssignments;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Vocabulary;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.experiment.ExperimentIdentifierId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.experiment.ExperimentPermIdId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.experiment.ExperimentTechIdId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.metaproject.MetaprojectIdentifierId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.project.ProjectIdentifierId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.project.ProjectPermIdId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.sample.SampleIdentifierId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.sample.SamplePermIdId;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.sample.SampleTechIdId;
import ch.systemsx.cisd.openbis.remoteapitest.RemoteApiTestCase;
/**
......@@ -783,171 +796,173 @@ public class GeneralInformationServiceJsonApiTest extends RemoteApiTestCase
return null;
}
// @Test
// public void testListAttachmentsForExperimentAllVersions()
// {
// final List<Experiment> experiments =
// generalInformationService.listExperiments(sessionToken,
// Collections.singletonList("/CISD/NEMO/EXP1"));
// assertEquals(1, experiments.size());
//
// final List<Attachment> attachments =
// generalInformationService.listAttachmentsForExperiment(sessionToken,
// ExperimentIdentifier.createFromEntity(experiments.get(0)),
// true);
// assertEquals(4, attachments.size());
// int version = 4;
// for (Attachment a : attachments)
// {
// assertEquals("exampleExperiments.txt", a.getFileName());
// assertEquals(version, a.getVersion());
// assertEquals("", a.getTitle());
// assertEquals("", a.getDescription());
// assertTrue(a.getRegistrationDate().getTime() > 0);
// assertEquals("test", a.getUserId());
// assertEquals("franz-josef.elmer@systemsx.ch", a.getUserEmail());
// assertNotNull(a.getUserFirstName());
// assertNotNull(a.getUserLastName());
// assertEquals(
// String.format(
// "http://localhost/openbis/index.html?viewMode=SIMPLE#action=DOWNLOAD_ATTACHMENT&file=exampleExperiments.txt&version=%d&entity=EXPERIMENT&permId=200811050951882-1028",
// version),
// a.getPermLink());
// --version;
// }
// }
//
// @Test
// public void testListAttachmentsForExperimentLatestVersion()
// {
// final List<Experiment> experiments =
// generalInformationService.listExperiments(sessionToken,
// Collections.singletonList("/CISD/NEMO/EXP1"));
// assertEquals(1, experiments.size());
//
// final List<Attachment> attachments =
// generalInformationService.listAttachmentsForExperiment(sessionToken,
// ExperimentIdentifier.createFromEntity(experiments.get(0)), false);
// assertEquals(1, attachments.size());
// final Attachment a = attachments.get(0);
// assertEquals("exampleExperiments.txt", a.getFileName());
// assertEquals(4, a.getVersion());
// assertEquals("", a.getTitle());
// assertEquals("", a.getDescription());
// assertTrue(a.getRegistrationDate().getTime() > 0);
// assertEquals("test", a.getUserId());
// assertEquals("franz-josef.elmer@systemsx.ch", a.getUserEmail());
// assertNotNull(a.getUserFirstName());
// assertNotNull(a.getUserLastName());
// assertEquals(
// "http://localhost/openbis/index.html?viewMode=SIMPLE#action=DOWNLOAD_ATTACHMENT&file=exampleExperiments.txt&version=4&entity=EXPERIMENT&permId=200811050951882-1028",
// a.getPermLink());
//
// final List<Attachment> attachments2 =
// generalInformationService.listAttachmentsForExperiment(sessionToken,
// ExperimentIdentifier.createFromAugmentedCode("/CISD/NEMO/EXP1"), false);
//
// assertEquals(1, attachments2.size());
//
// final Attachment a2 = attachments2.get(0);
// assertEquals(a, a2);
// }
//
// @Test
// public void testListAttachmentsForSample()
// {
// SearchCriteria searchCriteria = new SearchCriteria();
// searchCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE,
// "3VCP6"));
//
// final List<Sample> samples =
// generalInformationService.searchForSamples(sessionToken, searchCriteria);
// assertEquals(1, samples.size());
//
// final List<Attachment> attachments =
// generalInformationService.listAttachmentsForSample(sessionToken,
// SampleIdentifier.createFromEntity(samples.get(0)),
// true);
// assertEquals(1, attachments.size());
//
// final Attachment a = attachments.get(0);
// assertEquals("sampleHistory.txt", a.getFileName());
// assertEquals("", a.getTitle());
// assertEquals("", a.getDescription());
// assertEquals(1, a.getVersion());
// assertTrue(a.getRegistrationDate().getTime() > 0);
// assertEquals("test", a.getUserId());
// assertEquals("franz-josef.elmer@systemsx.ch", a.getUserEmail());
// assertNotNull(a.getUserFirstName());
// assertNotNull(a.getUserLastName());
// assertEquals(
// "http://localhost/openbis/index.html?viewMode=SIMPLE#action=DOWNLOAD_ATTACHMENT&file=sampleHistory.txt&version=1&entity=SAMPLE&permId=200811050946559-980",
// a.getPermLink());
//
// final List<Attachment> attachments2 =
// generalInformationService.listAttachmentsForSample(sessionToken,
// SampleIdentifier.createFromPermId("200811050946559-980"), true);
//
// assertEquals(1, attachments2.size());
//
// final Attachment a2 = attachments2.get(0);
// assertEquals(a, a2);
//
// final List<Attachment> attachments3 =
// generalInformationService.listAttachmentsForSample(sessionToken,
// SampleIdentifier.createFromAugmentedCode("/CISD/3VCP6"), true);
//
// assertEquals(1, attachments3.size());
//
// final Attachment a3 = attachments3.get(0);
// assertEquals(a, a3);
// }
//
// @Test
// public void testListAttachmentsForProjectNoAttachment()
// {
// final List<Attachment> attachments =
// generalInformationService.listAttachmentsForProject(sessionToken,
// ProjectIdentifier.createFromAugmentedCode("/CISD/DEFAULT"), true);
//
// assertEquals(0, attachments.size());
// }
//
// @Test
// public void testListAttachmentsForProjectNonExisting()
// {
// final List<Attachment> attachments =
// generalInformationService.listAttachmentsForProject(sessionToken,
// ProjectIdentifier.createFromAugmentedCode("/NONE/EXISTENT"), true);
//
// assertEquals(0, attachments.size());
// }
//
// @Test
// public void testListAttachmentsForProjects() throws ParseException
// {
// final List<Attachment> attachments =
// generalInformationService.listAttachmentsForProject(sessionToken,
// ProjectIdentifier.createFromPermId("20120814110011738-103"), true);
//
// assertEquals(1, attachments.size());
//
// final Attachment a = attachments.get(0);
// assertEquals("projectDescription.txt", a.getFileName());
// assertEquals("The Project", a.getTitle());
// assertEquals("All about it.", a.getDescription());
// assertEquals(1, a.getVersion());
// final Date date =
// new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z")
// .parse("2012-01-03 08:27:57.123 +0100");
// assertEquals(date, a.getRegistrationDate());
// assertEquals("test", a.getUserId());
// assertEquals("franz-josef.elmer@systemsx.ch", a.getUserEmail());
// assertNotNull(a.getUserFirstName());
// assertNotNull(a.getUserLastName());
// assertEquals(
// "http://localhost/openbis/index.html?viewMode=SIMPLE#action=DOWNLOAD_ATTACHMENT&file=projectDescription.txt&version=1&entity=PROJECT&code=NEMO&space=CISD",
// a.getPermLink());
// }
@Test
public void testListAttachmentsForExperimentAllVersions()
{
final List<Experiment> experiments =
generalInformationService.listExperiments(sessionToken,
Collections.singletonList("/CISD/NEMO/EXP1"));
assertEquals(1, experiments.size());
final List<Attachment> attachments =
generalInformationService.listAttachmentsForExperiment(sessionToken,
new ExperimentTechIdId(experiments.get(0).getId()), true);
assertEquals(4, attachments.size());
int version = 4;
for (Attachment a : attachments)
{
assertEquals("exampleExperiments.txt", a.getFileName());
assertEquals(version, a.getVersion());
assertEquals("", a.getTitle());
assertEquals("", a.getDescription());
assertTrue(a.getRegistrationDetails().getRegistrationDate().getTime() > 0);
assertEquals("test", a.getRegistrationDetails().getUserId());
assertEquals("franz-josef.elmer@systemsx.ch", a.getRegistrationDetails().getUserEmail());
assertNotNull(a.getRegistrationDetails().getUserFirstName());
assertNotNull(a.getRegistrationDetails().getUserLastName());
assertEquals("/openbis/attachment-download?sessionID=" + sessionToken
+ "&attachmentHolder=EXPERIMENT&id=2&fileName=exampleExperiments.txt&version="
+ version, a.getDownloadLink());
--version;
}
}
@Test
public void testListAttachmentsForExperimentLatestVersion() throws ParseException
{
final List<Experiment> experiments =
generalInformationService.listExperiments(sessionToken,
Collections.singletonList("/CISD/NEMO/EXP1"));
assertEquals(1, experiments.size());
final List<Attachment> attachments =
generalInformationService.listAttachmentsForExperiment(sessionToken,
new ExperimentPermIdId(experiments.get(0).getPermId()), false);
assertEquals(1, attachments.size());
final Attachment a = attachments.get(0);
assertEquals("exampleExperiments.txt", a.getFileName());
assertEquals(4, a.getVersion());
assertEquals("", a.getTitle());
assertEquals("", a.getDescription());
final Date date =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z")
.parse("2008-12-10 13:49:27.901 +0100");
assertEquals(date, a.getRegistrationDetails().getRegistrationDate());
assertEquals("test", a.getRegistrationDetails().getUserId());
assertEquals("franz-josef.elmer@systemsx.ch", a.getRegistrationDetails().getUserEmail());
assertNotNull(a.getRegistrationDetails().getUserFirstName());
assertNotNull(a.getRegistrationDetails().getUserLastName());
assertEquals("/openbis/attachment-download?sessionID=" + sessionToken
+ "&attachmentHolder=EXPERIMENT&id=2&fileName=exampleExperiments.txt&version=4",
a.getDownloadLink());
final List<Attachment> attachments2 =
generalInformationService.listAttachmentsForExperiment(sessionToken,
new ExperimentIdentifierId("/CISD/NEMO/EXP1"), false);
assertEquals(1, attachments2.size());
final Attachment a2 = attachments2.get(0);
assertEquals(a, a2);
}
@Test
public void testListAttachmentsForSample()
{
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE,
"3VCP6"));
final List<Sample> samples =
generalInformationService.searchForSamples(sessionToken, searchCriteria);
assertEquals(1, samples.size());
final List<Attachment> attachments =
generalInformationService.listAttachmentsForSample(sessionToken,
new SampleTechIdId(samples.get(0).getId()), true);
assertEquals(1, attachments.size());
final Attachment a = attachments.get(0);
assertEquals("sampleHistory.txt", a.getFileName());
assertEquals("", a.getTitle());
assertEquals("", a.getDescription());
assertEquals(1, a.getVersion());
assertTrue(a.getRegistrationDetails().getRegistrationDate().getTime() > 0);
assertEquals("test", a.getRegistrationDetails().getUserId());
assertEquals("franz-josef.elmer@systemsx.ch", a.getRegistrationDetails().getUserEmail());
assertNotNull(a.getRegistrationDetails().getUserFirstName());
assertNotNull(a.getRegistrationDetails().getUserLastName());
assertEquals("/openbis/attachment-download?sessionID=" + sessionToken
+ "&attachmentHolder=SAMPLE&id=987&fileName=sampleHistory.txt&version=1",
a.getDownloadLink());
final List<Attachment> attachments2 =
generalInformationService.listAttachmentsForSample(sessionToken,
new SamplePermIdId("200811050946559-980"), true);
assertEquals(1, attachments2.size());
final Attachment a2 = attachments2.get(0);
assertEquals(a, a2);
final List<Attachment> attachments3 =
generalInformationService.listAttachmentsForSample(sessionToken,
new SampleIdentifierId("/CISD/3VCP6"), true);
assertEquals(1, attachments3.size());
final Attachment a3 = attachments3.get(0);
assertEquals(a, a3);
}
@Test
public void testListAttachmentsForProjectNoAttachment()
{
final List<Attachment> attachments =
generalInformationService.listAttachmentsForProject(sessionToken,
new ProjectIdentifierId("/CISD/DEFAULT"), true);
assertEquals(0, attachments.size());
}
@Test
public void testListAttachmentsForProjectNonExisting()
{
try
{
generalInformationService.listAttachmentsForProject(sessionToken,
new ProjectIdentifierId("/NONE/EXISTENT"), true);
} catch (UserFailureException ex)
{
assertEquals("No project found for id '/NONE/EXISTENT'.", ex.getMessage());
}
}
@Test
public void testListAttachmentsForProjects() throws ParseException
{
final List<Attachment> attachments =
generalInformationService.listAttachmentsForProject(sessionToken,
new ProjectPermIdId("20120814110011738-103"), true);
assertEquals(1, attachments.size());
final Attachment a = attachments.get(0);
assertEquals("projectDescription.txt", a.getFileName());
assertEquals("The Project", a.getTitle());
assertEquals("All about it.", a.getDescription());
assertEquals(1, a.getVersion());
final Date date =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z")
.parse("2012-01-03 08:27:57.123 +0100");
assertEquals(date, a.getRegistrationDetails().getRegistrationDate());
assertEquals("test", a.getRegistrationDetails().getUserId());
assertEquals("franz-josef.elmer@systemsx.ch", a.getRegistrationDetails().getUserEmail());
assertNotNull(a.getRegistrationDetails().getUserFirstName());
assertNotNull(a.getRegistrationDetails().getUserLastName());
assertEquals("/openbis/attachment-download?sessionID=" + sessionToken
+ "&attachmentHolder=PROJECT&id=3&fileName=projectDescription.txt&version=1",
a.getDownloadLink());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment