diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/ToolBox.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/ToolBox.java index 2ac92f5a1c602ea45facb8b93d67c374dada3079..d63c613253c056fb280a5dbe99ff3c688a164323 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/ToolBox.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/ToolBox.java @@ -20,6 +20,7 @@ import static org.testng.AssertJUnit.assertEquals; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.List; @@ -29,6 +30,7 @@ import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService; import ch.systemsx.cisd.openbis.generic.shared.basic.ICodeHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifierHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CodeWithRegistrationAndModificationDate; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType; @@ -74,7 +76,7 @@ public class ToolBox public static final String EXPERIMENT_TYPE_CODE = "SIRNA_HCS"; - public static final String SAMPLE_TYPE_CODE = "NORMAL"; + public static final String SAMPLE_TYPE_CODE = "CELL_PLATE"; public static final String DATA_STORE_CODE = "STANDARD"; @@ -267,7 +269,7 @@ public class ToolBox return experiment; } - public List<String> extractCodes(List<? extends ICodeHolder> codeHolders) + public List<String> extractCodes(Collection<? extends ICodeHolder> codeHolders) { List<String> result = new ArrayList<String>(); for (ICodeHolder codeHolder : codeHolders) @@ -296,21 +298,50 @@ public class ToolBox ExperimentIdentifierFactory.parse(experiment.getIdentifier())); } - public NewSample sample(int number, IIdentifierHolder experiment) + public NewSample sample(int number, IIdentifierHolder experimentOrNull, + IEntityProperty... properties) { - NewSample sample = sample(number); - sample.setExperimentIdentifier(experiment.getIdentifier()); + NewSample sample = sample(number, properties); + if (experimentOrNull != null) + { + sample.setExperimentIdentifier(experimentOrNull.getIdentifier()); + } + return sample; + } + + public NewSample sampleWithParent(int number, ICodeHolder sampleOrNull, + IEntityProperty... properties) + { + NewSample sample = sample(number, properties); + if (sampleOrNull != null) + { + sample.setParents(sampleOrNull.getCode()); + } return sample; } - public NewSample sample(int number) + public NewSample sample(int number, IEntityProperty... properties) { NewSample sample = new NewSample(); sample.setIdentifier("/" + ToolBox.SPACE_1 + "/OLT-S" + number); sample.setSampleType(new SampleTypeBuilder().code(SAMPLE_TYPE_CODE).getSampleType()); + sample.setProperties(properties); return sample; } + public Sample createAndLoadSample(int number, IIdentifierHolder experimentOrNull, + IEntityProperty... properties) + { + NewSample sample = sample(number, experimentOrNull, properties); + return createAndLoadSample(sample); + } + + public Sample createAndLoadSample(NewSample sample) + { + genericServer.registerSample(systemSessionToken, sample, ToolBox.NO_ATTACHMENTS); + return loadSample(sample); + } + public Sample loadSample(IIdentifierHolder sample) { return etlService.tryGetSampleWithExperiment(systemSessionToken, @@ -325,6 +356,13 @@ public class ToolBox return dataSet; } + public NewDataSet dataSet(String code, Sample sample) + { + NewDataSet dataSet = dataSet(code); + dataSet.setSampleIdentifierOrNull(SampleIdentifierFactory.parse(sample.getIdentifier())); + return dataSet; + } + private NewDataSet dataSet(String code) { NewDataSet dataSet = new NewDataSet(); @@ -339,6 +377,13 @@ public class ToolBox return dataSet; } + public void checkModifierAndModificationDateOfBean(TimeIntervalChecker timeIntervalChecker, + CodeWithRegistrationAndModificationDate<?> bean, String userId) + { + assertEquals(userId, bean.getModifier().getUserId()); + timeIntervalChecker.assertDateInInterval(bean.getModificationDate()); + } + public void checkModifierAndModificationDateOfProject1(TimeIntervalChecker timeIntervalChecker) { checkModifierAndModificationDateOfProject1(timeIntervalChecker, "test"); @@ -355,4 +400,14 @@ public class ToolBox timeIntervalChecker.assertDateInInterval(p.getModificationDate()); } + public void sleep(int milliseconds) + { + try + { + Thread.sleep(milliseconds); + } catch (InterruptedException ex) + { + // ignored + } + } }