diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AssignDataSetToExperimentAndSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AssignDataSetToExperimentAndSampleTest.java new file mode 100644 index 0000000000000000000000000000000000000000..10325ed57483b4a351e9d1bed6ba1026841af692 --- /dev/null +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AssignDataSetToExperimentAndSampleTest.java @@ -0,0 +1,72 @@ +/* + * Copyright 2015 ETH Zuerich, SIS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.ethz.sis.openbis.systemtest.api.v3; + +import java.util.Arrays; + +import org.springframework.beans.factory.annotation.Autowired; +import org.testng.annotations.Test; + +import ch.ethz.sis.openbis.generic.shared.api.v3.IApplicationServerApi; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.DataSetUpdate; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentIdentifier; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.sample.SamplePermId; +import ch.systemsx.cisd.openbis.systemtest.AbstractDataSetAssignmentTestCase; + +/** + * Data set assignment tests for API V3. + * + * @author Franz-Josef Elmer + */ +@Test(groups = { "system-cleandb", "broken" }) +public class AssignDataSetToExperimentAndSampleTest extends AbstractDataSetAssignmentTestCase +{ + + @Autowired + protected IApplicationServerApi v3api; + + @Override + protected void reassignToExperiment(String dataSetCode, String experimentIdentifierOrNull, String userSessionToken) + { + reassignDataSet(dataSetCode, experimentIdentifierOrNull, null, userSessionToken); + } + + @Override + protected void reassignToSample(String dataSetCode, String samplePermIdOrNull, String userSessionToken) + { + reassignDataSet(dataSetCode, null, samplePermIdOrNull, userSessionToken); + } + + private void reassignDataSet(String dataSetCode, String experimentIdentifierOrNull, String samplePermIdOrNull, + String userSessionToken) + { + DataSetUpdate dataSetUpdate = new DataSetUpdate(); + dataSetUpdate.setDataSetId(new DataSetPermId(dataSetCode)); + if (experimentIdentifierOrNull != null) + { + dataSetUpdate.setExperimentId(new ExperimentIdentifier(experimentIdentifierOrNull)); + } + if (samplePermIdOrNull != null) + { + dataSetUpdate.setSampleId(new SamplePermId(samplePermIdOrNull)); + } + v3api.updateDataSets(userSessionToken, Arrays.asList(dataSetUpdate)); + + } + +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractDataSetAssignmentTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractDataSetAssignmentTestCase.java index ac4a14ad484e631f3be8401badf32461e68ff0c9..9391f2ddeca02041b311c9e89880c5c9dc4432d5 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractDataSetAssignmentTestCase.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractDataSetAssignmentTestCase.java @@ -80,10 +80,10 @@ public abstract class AbstractDataSetAssignmentTestCase extends BaseTest AuthorizationRule assignDataSetToSampleRule; - private AuthorizationRule assignDataSetToExperimentRule; + AuthorizationRule assignDataSetToExperimentRule; @BeforeClass(dependsOnMethods = "loginAsSystem") - void createFixture() throws Exception + public void createFixture() throws Exception { sourceSpace = create(aSpace()); Project sourceProject = create(aProject().inSpace(sourceSpace)); @@ -113,41 +113,41 @@ public abstract class AbstractDataSetAssignmentTestCase extends BaseTest } /** - * Reassign specified data set to specified experiment for the specified user. + * Reassign specified data set to specified experiment for the specified user session token. * If experiment is not specified unassignment is meant. * Sub class for testing API V3 should override this method. */ - protected abstract void reassignToExperiment(String dataSetCode, String experimentIdentifierOrNull, String user); + protected abstract void reassignToExperiment(String dataSetCode, String experimentIdentifierOrNull, String userSessionToken); /** - * Reassign specified data set to specified sample for the specified user. + * Reassign specified data set to specified sample for the specified user session token. * If sample is not specified unassignment is meant. * Sub class for testing API V3 should override this method. */ - protected abstract void reassignToSample(String dataSetCode, String samplePermIdOrNull, String user); + protected abstract void reassignToSample(String dataSetCode, String samplePermIdOrNull, String userSessionToken); @DataProvider - Object[][] rolesAllowedToAssignDataSetToExperiment() + public Object[][] rolesAllowedToAssignDataSetToExperiment() { return RolePermutator.getAcceptedPermutations(assignDataSetToExperimentRule, source, destination, instance); } @DataProvider - Object[][] rolesNotAllowedToAssignDataSetToExperiment() + public Object[][] rolesNotAllowedToAssignDataSetToExperiment() { return RolePermutator.getAcceptedPermutations(not(assignDataSetToExperimentRule), source, destination, instance); } @DataProvider - Object[][] rolesAllowedToAssignDataSetToSample() + public Object[][] rolesAllowedToAssignDataSetToSample() { return RolePermutator.getAcceptedPermutations(assignDataSetToSampleRule, source, destination, instance); } @DataProvider - Object[][] rolesNotAllowedToAssignDataSetToSample() + public Object[][] rolesNotAllowedToAssignDataSetToSample() { return RolePermutator.getAcceptedPermutations(not(assignDataSetToSampleRule), source, destination, instance); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AssignDataSetToExperimentAndSampleTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AssignDataSetToExperimentAndSampleTest.java index 6fc2d18418f2ccb62ea9d04917b7cb79cf2e66e0..f744a378d262cfa80890824c764bf817d38709d0 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AssignDataSetToExperimentAndSampleTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AssignDataSetToExperimentAndSampleTest.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.systemtest; +import org.testng.annotations.Test; + 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.Sample; @@ -27,35 +29,36 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; * * @author Franz-Josef Elmer */ +@Test(groups = { "system-cleandb" }) public class AssignDataSetToExperimentAndSampleTest extends AbstractDataSetAssignmentTestCase { @Override - protected void reassignToExperiment(String dataSetCode, String experimentIdentifierOrNull, String user) + protected void reassignToExperiment(String dataSetCode, String experimentIdentifierOrNull, String userSessionToken) { AbstractExternalData dataSet = etlService.tryGetDataSet(systemSessionToken, dataSetCode); if (experimentIdentifierOrNull != null) { Experiment experiment = etlService.tryGetExperiment(systemSessionToken, ExperimentIdentifierFactory.parse(experimentIdentifierOrNull)); - perform(anUpdateOf(dataSet).toExperiment(experiment).as(user)); + perform(anUpdateOf(dataSet).toExperiment(experiment).as(userSessionToken)); } else { - perform(anUpdateOf(dataSet).removingExperiment().as(user)); + perform(anUpdateOf(dataSet).removingExperiment().as(userSessionToken)); } } @Override - protected void reassignToSample(String dataSetCode, String samplePermIdOrNull, String user) + protected void reassignToSample(String dataSetCode, String samplePermIdOrNull, String userSessionToken) { AbstractExternalData dataSet = etlService.tryGetDataSet(systemSessionToken, dataSetCode); if (samplePermIdOrNull != null) { SampleIdentifier sampleIdentifier = etlService.tryGetSampleIdentifier(systemSessionToken, samplePermIdOrNull); Sample sample = etlService.tryGetSampleWithExperiment(systemSessionToken, sampleIdentifier); - perform(anUpdateOf(dataSet).toSample(sample).as(user)); + perform(anUpdateOf(dataSet).toSample(sample).as(userSessionToken)); } else { - perform(anUpdateOf(dataSet).removingSample().as(user)); + perform(anUpdateOf(dataSet).removingSample().as(userSessionToken)); } } }