diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/RelationshipService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/RelationshipService.java index b73fe2a4af9ee544cccd3dffbb5f89c5e79da757..ec45cbbc6f6e8a0ea690cbf9091e920e3eeb307b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/RelationshipService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/RelationshipService.java @@ -20,12 +20,16 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.server.business.bo.util.SampleUtils; import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.DAOFactory; import ch.systemsx.cisd.openbis.generic.shared.IRelationshipService; +import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant; import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.IAuthSession; +import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.RelationshipTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.SampleRelationshipPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.DatabaseInstanceIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; @@ -58,6 +62,9 @@ public class RelationshipService implements IRelationshipService private static final String ERR_DATASET_NOT_FOUND = "Sample '%s' not found"; + private static final String ERR_SAMPLE_PARENT_RELATIONSHIP_NOT_FOUND = + "Sample '%s' did not have parent '%s'"; + private DAOFactory daoFactory; @Override @@ -155,6 +162,40 @@ public class RelationshipService implements IRelationshipService data.setSample(sample); } + @Override + public void addParentToSample(IAuthSession session, SampleIdentifier sampleId, + SampleIdentifier parentId) + { + PersonPE actor = session.tryGetPerson(); + RelationshipTypePE relationshipType = + daoFactory.getRelationshipTypeDAO().tryFindRelationshipTypeByCode( + BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP); + + SamplePE sample = findSample(sampleId); + SamplePE parent = findSample(parentId); + + sample.addParentRelationship(new SampleRelationshipPE(parent, sample, relationshipType, + actor)); + } + + @Override + public void removeParentFromSample(IAuthSession session, SampleIdentifier sampleId, + SampleIdentifier parentId) + { + SamplePE sample = findSample(sampleId); + SamplePE parent = findSample(parentId); + for (SampleRelationshipPE relationship : sample.getParentRelationships()) + { + if (relationship.getParentSample().equals(parent)) + { + sample.removeParentRelationship(relationship); + return; + } + } + throw UserFailureException.fromTemplate(ERR_SAMPLE_PARENT_RELATIONSHIP_NOT_FOUND, sampleId, + parentId); + } + private DataPE findDataSet(String dataSetCode) { DataPE data = daoFactory.getDataDAO().tryToFindDataSetByCode(dataSetCode); @@ -248,5 +289,4 @@ public class RelationshipService implements IRelationshipService { this.daoFactory = daoFactory; } - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java index 6d04a0e508443d1682bac3ac8ae2145e3e666526..b874d3b41671ba44780897695391c2691b3487f5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java @@ -237,8 +237,6 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi private void replaceParents(SamplePE child, Set<SamplePE> newParents) { - PersonPE actor = findPerson(); - for (SamplePE parent : newParents) { checkParentDeletion(parent, child.getSampleIdentifier()); @@ -259,14 +257,28 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi newParents.remove(r.getParentSample()); } else { - child.removeParentRelationship(r); + relationshipService.removeParentFromSample(session, IdentifierHelper.sample(child), + IdentifierHelper.sample(r.getParentSample())); } } - RelationshipTypePE relationship = tryFindParentChildRelationshipType(); - for (SamplePE newParent : newParents) + + SampleIdentifier childId = IdentifierHelper.sample(child); + if (this.tryToGetSampleByIdentifier(childId) == null) // new sample + { + PersonPE actor = findPerson(); + RelationshipTypePE relationship = tryFindParentChildRelationshipType(); + for (SamplePE newParent : newParents) + { + child.addParentRelationship(new SampleRelationshipPE(newParent, child, + relationship, actor)); + } + } else { - child.addParentRelationship(new SampleRelationshipPE(newParent, child, relationship, - actor)); + for (SamplePE newParent : newParents) + { + relationshipService.addParentToSample(session, childId, + IdentifierHelper.sample(newParent)); + } } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IRelationshipService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IRelationshipService.java index a8527fa12b1d61e2d371cbc6aa1965031141cf65..c7cd598c4f56fcff6a1eface66b6702063575560 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IRelationshipService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IRelationshipService.java @@ -114,4 +114,22 @@ public interface IRelationshipService @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) SampleIdentifier sample); + @RolesAllowed(value = + { RoleWithHierarchy.SPACE_ETL_SERVER, RoleWithHierarchy.SPACE_POWER_USER }) + @Capability("ADD_PARENT_TO_SAMPLE") + public void addParentToSample(IAuthSession session, + @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) + SampleIdentifier sample, + @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) + SampleIdentifier parent); + + @RolesAllowed(value = + { RoleWithHierarchy.SPACE_ETL_SERVER, RoleWithHierarchy.SPACE_POWER_USER }) + @Capability("REMOVE_PARENT_FROM_SAMPLE") + public void removeParentFromSample(IAuthSession session, + @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) + SampleIdentifier sample, + @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) + SampleIdentifier parent); + } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java index 3f63944999354b42a9dedf936ea731771d965053..ca1d36610e80f23932ada31a5e051117412da5b4 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java @@ -297,6 +297,10 @@ public final class SampleBOTest extends AbstractBOTest EXAMPLE_GROUP); will(returnValue(container)); + allowing(sampleDAO).tryFindByCodeAndSpace(with(any(String.class)), + with(any(SpacePE.class))); + will(returnValue(null)); + one(sampleTypeDAO).tryFindSampleTypeByCode(DILUTION_PLATE); will(returnValue(sampleType)); @@ -403,6 +407,10 @@ public final class SampleBOTest extends AbstractBOTest allowing(sampleDAO).tryFindByCodeAndSpace(parent.getCode(), EXAMPLE_GROUP); will(returnValue(parent)); + allowing(sampleDAO).tryFindByCodeAndSpace(with(any(String.class)), + with(any(SpacePE.class))); + will(returnValue(null)); + allowing(dataDAO).hasDataSet(with(sample)); will(returnValue(false)); @@ -474,6 +482,10 @@ public final class SampleBOTest extends AbstractBOTest EXAMPLE_GROUP2); will(returnValue(parent3Group2)); + allowing(sampleDAO).tryFindByCodeAndSpace(with(any(String.class)), + with(any(SpacePE.class))); + will(returnValue(null)); + allowing(dataDAO).hasDataSet(with(sample)); will(returnValue(false)); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/EntityRelationshipChangeTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/EntityRelationshipChangeTest.java index 349bc5b7f2320d976740df4329222fca35da7f46..76d5324e19627e638ec42380f0c7244bfab8f2db 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/EntityRelationshipChangeTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/EntityRelationshipChangeTest.java @@ -20,6 +20,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import ch.systemsx.cisd.common.exceptions.UserFailureException; @@ -41,19 +42,35 @@ import ch.systemsx.cisd.openbis.systemtest.base.BaseTest; * * @author anttil */ -@Test(groups = "system test") +@Test(groups = + { "system-cleandb", "basic" }) public class EntityRelationshipChangeTest extends BaseTest { + private String session; + + private Space space; + + private Space sourceSpace; + + private Space destinationSpace; + + @BeforeClass + public void createFixture() + { + space = create(aSpace()); + sourceSpace = create(aSpace()); + destinationSpace = create(aSpace()); + session = create(aSession().withInstanceRole(RoleCode.ADMIN)); + } + @Test public void dataSetCanBeUpdatedToAnotherExperiment() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Experiment sourceExperiment = create(anExperiment().inProject(project)); Experiment destinationExperiment = create(anExperiment().inProject(project)); DataSet dataset = create(aDataSet().inExperiment(sourceExperiment)); - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); DataSetUpdatesDTO updates = create(anUpdateOf(dataset).withExperiment(destinationExperiment)); @@ -65,12 +82,9 @@ public class EntityRelationshipChangeTest extends BaseTest @Test public void registeringAnExperimentWithExistingSpaceLevelSampleAssociatesTheSampleWithTheExperiment() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Sample sample = create(aSample().inSpace(space)); - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); - Experiment experiment = create(anExperiment().asUser(session).withCode("the_experiment").inProject(project) .withSamples(sample)); @@ -82,18 +96,13 @@ public class EntityRelationshipChangeTest extends BaseTest @Test public void updatingSampleToAnotherExperimentUpdatesTheExperimentOfAllDatasetsInSample() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Experiment sourceExperiment = create(anExperiment().inProject(project).withCode("source_experiment")); Experiment destinationExperiment = create(anExperiment().inProject(project).withCode("destination_experiment")); - Sample sample = create(aSample().inExperiment(sourceExperiment)); ExternalData data = create(aDataSet().inSample(sample)); - - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); - SampleUpdatesDTO updates = create(anUpdateOf(serverSays(sample)).inExperiment(destinationExperiment)); @@ -106,15 +115,10 @@ public class EntityRelationshipChangeTest extends BaseTest @Test public void updatingSampleToHaveNoExperimentIsAllowedIfSampleDoesNotHaveDataSets() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Experiment experiment = create(anExperiment().inProject(project)); Sample sample = create(aSample().inExperiment(experiment)); - - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); - - SampleUpdatesDTO updates = - create(anUpdateOf(sample).withoutExperiment()); + SampleUpdatesDTO updates = create(anUpdateOf(sample).withoutExperiment()); commonServer.updateSample(session, updates); @@ -125,16 +129,11 @@ public class EntityRelationshipChangeTest extends BaseTest { UserFailureException.class }) public void updatingSampleToHaveNoExperimentIsNotAllowedIfSampleHasDataSets() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Experiment experiment = create(anExperiment().inProject(project)); Sample sample = create(aSample().inExperiment(experiment)); create(aDataSet().inSample(sample)); - - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); - - SampleUpdatesDTO updates = - create(anUpdateOf(serverSays(sample)).withoutExperiment()); + SampleUpdatesDTO updates = create(anUpdateOf(serverSays(sample)).withoutExperiment()); commonServer.updateSample(session, updates); } @@ -142,15 +141,10 @@ public class EntityRelationshipChangeTest extends BaseTest @Test public void experimentCanBeUpdatedToContainSpaceSamples() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Experiment experiment = create(anExperiment().inProject(project)); Sample sample = create(aSample().inSpace(space)); - - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); - - ExperimentUpdatesDTO updates = - create(anUpdateOf(experiment).withSamples(sample)); + ExperimentUpdatesDTO updates = create(anUpdateOf(experiment).withSamples(sample)); commonServer.updateExperiment(session, updates); @@ -160,64 +154,43 @@ public class EntityRelationshipChangeTest extends BaseTest @Test public void sampleBecomesSpaceSampleIfExperimentUpdateRemovesItFromExperiment() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Experiment experiment = create(anExperiment().inProject(project)); Sample sample = create(aSample().inExperiment(experiment)); Sample anotherSample = create(aSample().inExperiment(experiment)); - - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); - - ExperimentUpdatesDTO updates = - create(anUpdateOf(experiment).withSamples(sample)); + ExperimentUpdatesDTO updates = create(anUpdateOf(experiment).withSamples(sample)); commonServer.updateExperiment(session, updates); assertThat(serverSays(sample), is(inExperiment(experiment))); assertThat(serverSays(anotherSample).getExperiment(), is(nullValue())); - } @Test public void experimentsCanBeUpdatedToAnotherProject() { - Space space = create(aSpace()); - Project sourceProject = create(aProject().inSpace(space)); Project destinationProject = create(aProject().inSpace(space)); - Experiment experiment = create(anExperiment().inProject(sourceProject)); - ExperimentUpdatesDTO updates = create(anUpdateOf(experiment).withProject(destinationProject)); - String session = - create(aSession().withInstanceRole(RoleCode.ADMIN)); - commonServer.updateExperiment(session, updates); + + assertThat(serverSays(experiment), is(inProject(destinationProject))); } @Test public void updatingExperimentToProjectInAnotherSpaceChangesTheSpaceOfSamplesInThatExperiment() { - Space sourceSpace = create(aSpace()); - Space destinationSpace = create(aSpace()); - Project sourceProject = create(aProject().withCode("source").inSpace(sourceSpace)); Project destinationProject = create(aProject().withCode("destination").inSpace(destinationSpace)); - Experiment experiment = create(anExperiment().inProject(sourceProject)); - Sample sample = create(aSample().inExperiment(experiment)); - ExperimentUpdatesDTO updates = create(anUpdateOf(experiment).withProject(destinationProject)); - String session = - create(aSession().withSpaceRole(RoleCode.ADMIN, sourceSpace).withSpaceRole( - RoleCode.ADMIN, destinationSpace)); - commonServer.updateExperiment(session, updates); assertThat(serverSays(experiment), is(inProject(destinationProject))); @@ -227,44 +200,28 @@ public class EntityRelationshipChangeTest extends BaseTest @Test public void dataSetCanBeUpdatedToAnotherSample() { - Space space = create(aSpace()); Project project = create(aProject().inSpace(space)); Experiment experiment = create(anExperiment().inProject(project)); - Sample sourceSample = create(aSample().inExperiment(experiment)); Sample destinationSample = create(aSample().inExperiment(experiment)); - DataSet dataset = create(aDataSet().inSample(sourceSample)); - String session = create(aSession().withInstanceRole(RoleCode.ADMIN)); - - DataSetUpdatesDTO updates = - create(anUpdateOf(dataset).withSample(destinationSample)); + DataSetUpdatesDTO updates = create(anUpdateOf(dataset).withSample(destinationSample)); commonServer.updateDataSet(session, updates); assertThat(serverSays(dataset), is(inSample(destinationSample))); - } @Test public void updatingProjectToAnotherSpaceChangesSpaceOfAllSamplesOfAllExperimentsInThatProject() { - Space sourceSpace = create(aSpace()); - Space destinationSpace = create(aSpace()); Project project = create(aProject().inSpace(sourceSpace)); - Experiment experiment1 = create(anExperiment().inProject(project)); Experiment experiment2 = create(anExperiment().inProject(project)); - Sample sample1 = create(aSample().inExperiment(experiment1)); Sample sample2 = create(aSample().inExperiment(experiment2)); - ProjectUpdatesDTO updates = create(anUpdateOf(project).withSpace(destinationSpace)); - String session = - create(aSession().withSpaceRole(RoleCode.ADMIN, sourceSpace).withSpaceRole( - RoleCode.ADMIN, destinationSpace)); - commonServer.updateProject(session, updates); assertThat(serverSays(project), is(inSpace(destinationSpace))); @@ -275,33 +232,21 @@ public class EntityRelationshipChangeTest extends BaseTest @Test public void spaceLevelSampleCanBeUpdatedToAnotherSpace() { - Space sourceSpace = create(aSpace()); - Space destinationSpace = create(aSpace()); Sample sample = create(aSample().inSpace(sourceSpace)); - SampleUpdatesDTO updates = create(anUpdateOf(sample).inSpace(destinationSpace)); - String session = - create(aSession().withInstanceRole(RoleCode.ADMIN)); - commonServer.updateSample(session, updates); assertThat(serverSays(sample), is(inSpace(destinationSpace))); - } @Test public void spaceLevelSampleCanBeUpdatedToSharedSample() { - Space space = create(aSpace()); Sample sample = create(aSample().inSpace(space)); - SampleUpdatesDTO updates = create(anUpdateOf(sample).withoutSpace()); - String session = - create(aSession().withInstanceRole(RoleCode.ADMIN)); - commonServer.updateSample(session, updates); assertThat(serverSays(sample).getSpace(), is(nullValue())); @@ -311,14 +256,63 @@ public class EntityRelationshipChangeTest extends BaseTest public void sharedSampleCanBeUpdatedToSpaceLevelSample() { Sample sample = create(aSample()); - Space space = create(aSpace()); SampleUpdatesDTO updates = create(anUpdateOf(sample).inSpace(space)); - String session = - create(aSession().withInstanceRole(RoleCode.ADMIN)); - commonServer.updateSample(session, updates); assertThat(serverSays(sample), is(inSpace(space))); } + + @Test + public void addParent() + { + Sample parentToBe = create(aSample().inSpace(space)); + Sample childToBe = create(aSample().inSpace(space)); + SampleUpdatesDTO updates = create(anUpdateOf(childToBe).withParent(parentToBe)); + + commonServer.updateSample(session, updates); + + assertThat(serverSays(childToBe).getParents(), containsExactly(parentToBe)); + } + + @Test + public void changeParentOfSample() + { + Sample currentParent = create(aSample().inSpace(space)); + Sample child = create(aSample().inSpace(space).withParent(currentParent)); + Sample newParent = create(aSample().inSpace(space)); + SampleUpdatesDTO updates = create(anUpdateOf(child).withParent(newParent)); + + commonServer.updateSample(session, updates); + + assertThat(serverSays(child).getParents(), containsExactly(newParent)); + } + + @Test + public void removeParentOfSample() + { + Sample parent1 = create(aSample().inSpace(space)); + Sample parent2 = create(aSample().inSpace(space)); + + Sample child = create(aSample().inSpace(space).withParents(parent1, parent2)); + SampleUpdatesDTO updates = create(anUpdateOf(child).withParent(parent1)); + + commonServer.updateSample(session, updates); + + assertThat(serverSays(child).getParents(), containsExactly(parent1)); + } + + @Test + public void duplicateParents() + { + Sample parent1 = create(aSample().inSpace(space)); + Sample parent2 = create(aSample().inSpace(space)); + Sample child = create(aSample().inSpace(space)); + SampleUpdatesDTO updates = create(anUpdateOf(child).withParents(parent1, parent2, parent1)); + + commonServer.updateSample(session, updates); + + assertThat(serverSays(child).getParents(), containsExactly(parent1, parent2)); + } + } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/RelationshipServiceAuthorizationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/RelationshipServiceAuthorizationTest.java index 23706b8de28d0fcc42f7703f7622cb6c39524019..d2bb61f639d9798fb4221cd90cea613acf56d328 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/RelationshipServiceAuthorizationTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/RelationshipServiceAuthorizationTest.java @@ -21,37 +21,68 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; -import ch.systemsx.cisd.authentication.ISessionManager; import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException; -import ch.systemsx.cisd.openbis.generic.shared.IRelationshipService; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; -import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.systemtest.base.BaseTest; /** * @author anttil */ -@Test(enabled = false, groups = "system test") +@Test(groups = + { "system-cleandb", "stub-relationship-service" }) +@ContextConfiguration(locations = + { "classpath:stub_relationship_service.xml" }, inheritLocations = true) public class RelationshipServiceAuthorizationTest extends BaseTest { - @DataProvider(name = "rolesAllowedToAssignExperimentToProject") - public static RoleWithHierarchy[][] rolesAllowedToAssignExperimentToProject() + private Space sourceSpace; + + private Space destinationSpace; + + private Project sourceProject; + + private Project destinationProject; + + private Experiment sourceExperiment; + + private Experiment destinationExperiment; + + private Sample sourceSample; + + private Sample destinationSample; + + private Sample sharedSample; + + private DataSet dataSet; + + @BeforeClass + public void createFixture() { - return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); + sourceSpace = create(aSpace()); + sourceProject = create(aProject().inSpace(sourceSpace)); + sourceExperiment = create(anExperiment().inProject(sourceProject)); + sourceSample = create(aSample().inExperiment(sourceExperiment)); + dataSet = create(aDataSet().inSample(sourceSample)); + + destinationSpace = create(aSpace()); + destinationProject = create(aProject().inSpace(destinationSpace)); + destinationExperiment = create(anExperiment().inProject(destinationProject)); + destinationSample = create(aSample().inExperiment(destinationExperiment)); + + sharedSample = create(aSample()); } - @Test(enabled = false, dataProvider = "rolesAllowedToAssignExperimentToProject") + @Test(dataProvider = "rolesAllowedToAssignExperimentToProject") public void assigningExperimentToProjectIsAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) @@ -59,14 +90,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignExperimentToProject(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToAssignExperimentToProject") - public static RoleWithHierarchy[][] rolesNotAllowedToAssignExperimentToProject() - { - return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToAssignExperimentToProject", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToAssignExperimentToProject", expectedExceptions = { AuthorizationFailureException.class }) public void assigningExperimentToProjectIsNotAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, @@ -75,14 +99,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignExperimentToProject(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToAssignProjectToSpace") - public static RoleWithHierarchy[][] rolesAllowedToAssignProjectToSpace() - { - return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToAssignProjectToSpace") + @Test(dataProvider = "rolesAllowedToAssignProjectToSpace") public void assigningProjectToSpaceIsAuthorizedFor( RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) @@ -90,14 +107,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignProjectToSpace(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToAssignProjectToSpace") - public static RoleWithHierarchy[][] rolesNotAllowedToAssignProjectToSpace() - { - return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToAssignProjectToSpace", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToAssignProjectToSpace", expectedExceptions = { AuthorizationFailureException.class }) public void assignProjectToSpaceIsNotAuthorizedFor( RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, @@ -106,14 +116,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignProjectToSpace(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToAssignSampleToExperiment") - public static RoleWithHierarchy[][] rolesAllowedToAssignSampleToExperiment() - { - return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToAssignSampleToExperiment") + @Test(dataProvider = "rolesAllowedToAssignSampleToExperiment") public void assigningSampleToExperimentIsAuthorizedFor( RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) @@ -121,14 +124,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignSampleToExperiment(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToAssignSampleToExperiment") - public static RoleWithHierarchy[][] rolesNotAllowedToAssignSampleToExperiment() - { - return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToAssignSampleToExperiment", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToAssignSampleToExperiment", expectedExceptions = { AuthorizationFailureException.class }) public void assignSampleToExperimentIsNotAuthorizedFor( RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, @@ -137,14 +133,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignSampleToExperiment(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToUnassignSampleFromExperiment") - public static RoleWithHierarchy[][] rolesAllowedToUnassignSampleFromExperiment() - { - return toNestedArray(acceptedRoles(1, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToUnassignSampleFromExperiment") + @Test(dataProvider = "rolesAllowedToUnassignSampleFromExperiment") public void unassigningSampleFromExperimentIsAuthorizedFor( RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) @@ -152,14 +141,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest unassignSampleFromExperiment(spaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToUnassignSampleFromExperiment") - public static RoleWithHierarchy[][] rolesNotAllowedToUnassignSampleFromExperiment() - { - return toNestedArray(rejectedRoles(1, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToUnassignSampleFromExperiment", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToUnassignSampleFromExperiment", expectedExceptions = { AuthorizationFailureException.class }) public void unassigningSampleFromExperimentIsNotAuthorizedFor( RoleWithHierarchy spaceRole, @@ -168,28 +150,14 @@ public class RelationshipServiceAuthorizationTest extends BaseTest unassignSampleFromExperiment(spaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToUnshareSample") - public static RoleWithHierarchy[][] rolesAllowedToUnshareSample() - { - return toNestedArray(acceptedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, - RoleWithHierarchy.INSTANCE_ADMIN)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToUnshareSample") + @Test(dataProvider = "rolesAllowedToUnshareSample") public void unsharingSampleIsAuthorizedFor(RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) { unshareSample(spaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToUnshareSample") - public static RoleWithHierarchy[][] rolesNotAllowedToUnshareSample() - { - return toNestedArray(rejectedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, - RoleWithHierarchy.INSTANCE_ADMIN)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToUnshareSample", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToUnshareSample", expectedExceptions = { AuthorizationFailureException.class }) public void unsharingSampleIsNotAuthorizedFor(RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) @@ -197,14 +165,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest unshareSample(spaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToAssignSampleToSpace") - public static RoleWithHierarchy[][] rolesAllowedToAssignSampleToSpace() - { - return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToAssignSampleToSpace") + @Test(dataProvider = "rolesAllowedToAssignSampleToSpace") public void assigningSampleToSpaceIsAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) @@ -212,14 +173,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignSampleToSpace(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToAssignSampleToSpace") - public static RoleWithHierarchy[][] rolesNotAllowedToAssignSampleToSpace() - { - return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToAssignSampleToSpace", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToAssignSampleToSpace", expectedExceptions = { AuthorizationFailureException.class }) public void assigningSampleToSpaceIsNotAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, @@ -228,28 +182,14 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignSampleToSpace(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToShareSample") - public static RoleWithHierarchy[][] rolesAllowedToShareSample() - { - return toNestedArray(acceptedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, - RoleWithHierarchy.INSTANCE_ADMIN)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToshareSample") + @Test(dataProvider = "rolesAllowedToShareSample") public void sharingSampleIsAuthorizedFor(RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) { shareSample(spaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToShareSample") - public static RoleWithHierarchy[][] rolesNotAllowedToShareSample() - { - return toNestedArray(rejectedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, - RoleWithHierarchy.INSTANCE_ADMIN)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToShareSample", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToShareSample", expectedExceptions = { AuthorizationFailureException.class }) public void sharingSampleIsNotAuthorizedFor(RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) @@ -257,14 +197,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest shareSample(spaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToAssignDataSetToExperiment") - public static RoleWithHierarchy[][] rolesAllowedToAssignDataSetToExperiment() - { - return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToAssignDataSetToExperiment") + @Test(dataProvider = "rolesAllowedToAssignDataSetToExperiment") public void assigningDataSetToExperimentIsAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) @@ -272,14 +205,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignDataSetToExperiment(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToAssignDataSetToExperiment") - public static RoleWithHierarchy[][] rolesNotAllowedToAssignDataSetToExperiment() - { - return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToAssignDataSetToExperiment", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToAssignDataSetToExperiment", expectedExceptions = { AuthorizationFailureException.class }) public void assigningDataSetToExperimentIsNotAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, @@ -288,14 +214,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignDataSetToExperiment(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesAllowedToAssignDataSetToSample") - public static RoleWithHierarchy[][] rolesAllowedToAssignDataSetToSample() - { - return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesAllowedToAssignDataSetToSample") + @Test(dataProvider = "rolesAllowedToAssignDataSetToSample") public void assigningDataSetToSampleIsAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) @@ -303,14 +222,7 @@ public class RelationshipServiceAuthorizationTest extends BaseTest assignDataSetToSample(sourceSpaceRole, destinationSpaceRole, instanceRole); } - @DataProvider(name = "rolesNotAllowedToAssignDataSetToSample") - public static RoleWithHierarchy[][] rolesNotAllowedToAssignDataSetToSample() - { - return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, - RoleWithHierarchy.SPACE_POWER_USER)); - } - - @Test(enabled = false, dataProvider = "rolesNotAllowedToAssignDataSetToExperiment", expectedExceptions = + @Test(dataProvider = "rolesNotAllowedToAssignDataSetToExperiment", expectedExceptions = { AuthorizationFailureException.class }) public void assigningDataSetToSampleIsNotAuthorizedFor(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, @@ -323,32 +235,24 @@ public class RelationshipServiceAuthorizationTest extends BaseTest RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) { - Space sourceSpace = create(aSpace()); - Space destinationSpace = create(aSpace()); - Project sourceProject = create(aProject().inSpace(sourceSpace)); - Project destinationProject = create(aProject().inSpace(destinationSpace)); - Experiment experiment = create(anExperiment().inProject(sourceProject)); - String session = create(aSession().withSpaceRole(sourceSpaceRole, sourceSpace).withSpaceRole( destinationSpaceRole, destinationSpace).withInstanceRole(instanceRole)); relationshipService.assignExperimentToProject(sessionManager.getSession(session), - id(experiment), id(destinationProject)); + id(sourceExperiment), id(destinationProject)); } private void assignProjectToSpace(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) { - Space sourceSpace = create(aSpace()); - Space destinationSpace = create(aSpace()); - Project project = create(aProject().inSpace(sourceSpace)); String session = create(aSession().withSpaceRole(sourceSpaceRole, sourceSpace).withSpaceRole( destinationSpaceRole, destinationSpace).withInstanceRole(instanceRole)); - relationshipService.assignProjectToSpace(sessionManager.getSession(session), id(project), + relationshipService.assignProjectToSpace(sessionManager.getSession(session), + id(sourceProject), id(destinationSpace)); } @@ -356,88 +260,62 @@ public class RelationshipServiceAuthorizationTest extends BaseTest RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) { - Space sourceSpace = create(aSpace()); - Space destinationSpace = create(aSpace()); - Project sourceProject = create(aProject().inSpace(sourceSpace)); - Project destinationProject = create(aProject().inSpace(destinationSpace)); - Experiment sourceExperiment = create(anExperiment().inProject(sourceProject)); - Experiment destinationExperiment = create(anExperiment().inProject(destinationProject)); - Sample sample = create(aSample().inExperiment(sourceExperiment)); - String session = create(aSession().withSpaceRole(sourceSpaceRole, sourceSpace).withSpaceRole( destinationSpaceRole, destinationSpace).withInstanceRole(instanceRole)); relationshipService.assignSampleToExperiment(sessionManager.getSession(session), - id(sample), + id(sourceSample), id(destinationExperiment)); } private void unassignSampleFromExperiment(RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) { - Space space = create(aSpace()); - Project project = create(aProject().inSpace(space)); - Experiment experiment = create(anExperiment().inProject(project)); - Sample sample = create(aSample().inExperiment(experiment)); - String session = - create(aSession().withSpaceRole(spaceRole, space).withInstanceRole(instanceRole)); + create(aSession().withSpaceRole(spaceRole, sourceSpace).withInstanceRole( + instanceRole)); relationshipService.unassignSampleFromExperiment(sessionManager.getSession(session), - id(sample)); + id(sourceSample)); } private void unshareSample(RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) { - Sample sample = create(aSample()); - Space space = create(aSpace()); String session = - create(aSession().withSpaceRole(spaceRole, space).withInstanceRole(instanceRole)); + create(aSession().withSpaceRole(spaceRole, destinationSpace).withInstanceRole( + instanceRole)); relationshipService - .unshareSample(sessionManager.getSession(session), id(sample), id(space)); + .unshareSample(sessionManager.getSession(session), id(sharedSample), + id(destinationSpace)); } private void assignSampleToSpace(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) { - Space sourceSpace = create(aSpace()); - Space destinationSpace = create(aSpace()); - Sample sample = create(aSample().inSpace(sourceSpace)); String session = create(aSession().withSpaceRole(sourceSpaceRole, sourceSpace).withSpaceRole( destinationSpaceRole, destinationSpace).withInstanceRole(instanceRole)); relationshipService.assignSampleToSpace(sessionManager.getSession(session), - id(sample), + id(sourceSample), id(destinationSpace)); } private void shareSample(RoleWithHierarchy spaceRole, RoleWithHierarchy instanceRole) { - Space space = create(aSpace()); - Sample sample = create(aSample().inSpace(space)); String session = - create(aSession().withSpaceRole(spaceRole, space).withInstanceRole(instanceRole)); - relationshipService.shareSample(sessionManager.getSession(session), id(sample)); + create(aSession().withSpaceRole(spaceRole, sourceSpace).withInstanceRole( + instanceRole)); + relationshipService.shareSample(sessionManager.getSession(session), id(sourceSample)); } private void assignDataSetToExperiment(RoleWithHierarchy sourceSpaceRole, RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) { - Space sourceSpace = create(aSpace()); - Project sourceProject = create(aProject().inSpace(sourceSpace)); - Experiment sourceExperiment = create(anExperiment().inProject(sourceProject)); - - Space destinationSpace = create(aSpace()); - Project destinationProject = create(aProject().inSpace(destinationSpace)); - Experiment destinationExperiment = create(anExperiment().inProject(destinationProject)); - - DataSet dataSet = create(aDataSet().inExperiment(sourceExperiment)); - String session = create(aSession().withSpaceRole(sourceSpaceRole, sourceSpace).withSpaceRole( destinationSpaceRole, destinationSpace).withInstanceRole(instanceRole)); @@ -451,17 +329,6 @@ public class RelationshipServiceAuthorizationTest extends BaseTest RoleWithHierarchy destinationSpaceRole, RoleWithHierarchy instanceRole) { - Space sourceSpace = create(aSpace()); - Project sourceProject = create(aProject().inSpace(sourceSpace)); - Experiment sourceExperiment = create(anExperiment().inProject(sourceProject)); - Sample sourceSample = create(aSample().inExperiment(sourceExperiment)); - - Space destinationSpace = create(aSpace()); - Project destinationProject = create(aProject().inSpace(destinationSpace)); - Experiment destinationExperiment = create(anExperiment().inProject(destinationProject)); - Sample destinationSample = create(aSample().inExperiment(destinationExperiment)); - - DataSet dataSet = create(aDataSet().inSample(sourceSample)); String session = create(aSession().withSpaceRole(sourceSpaceRole, sourceSpace).withSpaceRole( @@ -472,22 +339,130 @@ public class RelationshipServiceAuthorizationTest extends BaseTest id(destinationSample)); } - private IRelationshipService relationshipService; + @DataProvider(name = "rolesAllowedToAssignExperimentToProject") + public static RoleWithHierarchy[][] rolesAllowedToAssignExperimentToProject() + { + return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesNotAllowedToAssignExperimentToProject") + public static RoleWithHierarchy[][] rolesNotAllowedToAssignExperimentToProject() + { + return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesAllowedToAssignProjectToSpace") + public static RoleWithHierarchy[][] rolesAllowedToAssignProjectToSpace() + { + return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesNotAllowedToAssignProjectToSpace") + public static RoleWithHierarchy[][] rolesNotAllowedToAssignProjectToSpace() + { + return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesAllowedToAssignSampleToExperiment") + public static RoleWithHierarchy[][] rolesAllowedToAssignSampleToExperiment() + { + return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesNotAllowedToAssignSampleToExperiment") + public static RoleWithHierarchy[][] rolesNotAllowedToAssignSampleToExperiment() + { + return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesAllowedToUnassignSampleFromExperiment") + public static RoleWithHierarchy[][] rolesAllowedToUnassignSampleFromExperiment() + { + return toNestedArray(acceptedRoles(1, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesNotAllowedToUnassignSampleFromExperiment") + public static RoleWithHierarchy[][] rolesNotAllowedToUnassignSampleFromExperiment() + { + return toNestedArray(rejectedRoles(1, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesAllowedToUnshareSample") + public static RoleWithHierarchy[][] rolesAllowedToUnshareSample() + { + return toNestedArray(acceptedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, + RoleWithHierarchy.INSTANCE_ADMIN)); + } - @Autowired - @Test(enabled = false) - public void setRelationshipService(final IRelationshipService relationshipService) + @DataProvider(name = "rolesNotAllowedToUnshareSample") + public static RoleWithHierarchy[][] rolesNotAllowedToUnshareSample() { - this.relationshipService = relationshipService; + return toNestedArray(rejectedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, + RoleWithHierarchy.INSTANCE_ADMIN)); } - ISessionManager<Session> sessionManager; + @DataProvider(name = "rolesAllowedToAssignSampleToSpace") + public static RoleWithHierarchy[][] rolesAllowedToAssignSampleToSpace() + { + return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesNotAllowedToAssignSampleToSpace") + public static RoleWithHierarchy[][] rolesNotAllowedToAssignSampleToSpace() + { + return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } - @Autowired - @Test(enabled = false) - public void setSessionManager(final ISessionManager<Session> sessionManager) + @DataProvider(name = "rolesAllowedToShareSample") + public static RoleWithHierarchy[][] rolesAllowedToShareSample() { - this.sessionManager = sessionManager; + return toNestedArray(acceptedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, + RoleWithHierarchy.INSTANCE_ADMIN)); + } + + @DataProvider(name = "rolesNotAllowedToShareSample") + public static RoleWithHierarchy[][] rolesNotAllowedToShareSample() + { + return toNestedArray(rejectedRoles(1, RoleWithHierarchy.INSTANCE_ETL_SERVER, + RoleWithHierarchy.INSTANCE_ADMIN)); + } + + @DataProvider(name = "rolesAllowedToAssignDataSetToExperiment") + public static RoleWithHierarchy[][] rolesAllowedToAssignDataSetToExperiment() + { + return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesNotAllowedToAssignDataSetToExperiment") + public static RoleWithHierarchy[][] rolesNotAllowedToAssignDataSetToExperiment() + { + return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesAllowedToAssignDataSetToSample") + public static RoleWithHierarchy[][] rolesAllowedToAssignDataSetToSample() + { + return toNestedArray(acceptedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); + } + + @DataProvider(name = "rolesNotAllowedToAssignDataSetToSample") + public static RoleWithHierarchy[][] rolesNotAllowedToAssignDataSetToSample() + { + return toNestedArray(rejectedRoles(2, RoleWithHierarchy.SPACE_ETL_SERVER, + RoleWithHierarchy.SPACE_POWER_USER)); } public static Collection<RoleWithHierarchy> allInstanceRoles = new HashSet<RoleWithHierarchy>(); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/BaseTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/BaseTest.java index dd067a78bc1e5f4605f88c4734730efae99eefb3..f69d534ecd7dad57d835dbfc4d2cc5730c38730a 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/BaseTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/BaseTest.java @@ -16,8 +16,28 @@ package ch.systemsx.cisd.openbis.systemtest.base; +import java.util.Collection; + import org.hamcrest.Matcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.support.GenericApplicationContext; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests; +import org.springframework.test.context.transaction.TransactionConfiguration; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeTest; +import ch.systemsx.cisd.authentication.ISessionManager; +import ch.systemsx.cisd.common.logging.LogInitializer; +import ch.systemsx.cisd.common.servlet.SpringRequestContextProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientService; +import ch.systemsx.cisd.openbis.generic.server.ICommonServerForInternalUse; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.search.IndexMode; +import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService; +import ch.systemsx.cisd.openbis.generic.shared.IRelationshipService; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; @@ -27,19 +47,158 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.DatabaseInstanceIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; -import ch.systemsx.cisd.openbis.systemtest.SystemTestCase; +import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientService; +import ch.systemsx.cisd.openbis.plugin.generic.shared.IGenericServer; /** * @author anttil */ -public abstract class BaseTest extends SystemTestCase +@ContextConfiguration(locations = "classpath:applicationContext.xml") +@TransactionConfiguration(transactionManager = "transaction-manager") +public abstract class BaseTest extends AbstractTransactionalTestNGSpringContextTests { + protected ICommonServerForInternalUse commonServer; + + protected IGenericServer genericServer; + + protected ICommonClientService commonClientService; + + protected IGenericClientService genericClientService; + + protected IETLLIMSService etlService; + + protected MockHttpServletRequest request; + + protected IDAOFactory daoFactory; + + protected IRelationshipService relationshipService; + + protected ISessionManager<Session> sessionManager; + + protected String systemSessionToken; + + @BeforeTest(groups = + { "system-cleandb" }) + public void initializeLog() + { + LogInitializer.init(); + } + + @BeforeTest(groups = + { "system-cleandb" }, dependsOnMethods = + { "initializeLog" }) + public void initializeProperties() + { + System.setProperty("database.create-from-scratch", "true"); + System.setProperty("database.kind", "test"); + System.setProperty("script-folder", "../openbis/source"); + System.setProperty("hibernate.search.index-mode", IndexMode.INDEX_FROM_SCRATCH.name()); + System.setProperty("hibernate.search.index-base", "../openbis/targets/lucene/cleandb"); + System.setProperty("hibernate.search.worker.execution", "sync"); + } + + @BeforeTest(groups = + { "system-cleandb" }, dependsOnMethods = + { "initializeProperties" }) + public void setContext() throws Exception + { + super.springTestContextPrepareTestInstance(); + } + + @BeforeTest(groups = + { "system-cleandb" }, dependsOnMethods = + { "setContext" }) + public void createDataStore() + { + DataStorePE dataStore = new DataStorePE(); + dataStore.setCode("STANDARD"); + dataStore.setDatabaseInstance(this.daoFactory.getDatabaseInstanceDAO() + .getDatabaseInstanceById(1)); + dataStore.setDownloadUrl("http://localhost"); + dataStore.setRemoteUrl("http://remotehost"); + dataStore.setSessionToken(""); + + this.daoFactory.getDataStoreDAO().createOrUpdateDataStore(dataStore); + } + + @AfterTest(groups = + { "system-cleandb" }) + public void testingThis() + { + System.out.println("!!!!!!!! AFTER TEST RUN - DESTROYING!!!"); + ((GenericApplicationContext) applicationContext).destroy(); + } + + @BeforeClass(alwaysRun = true) + public void loginAsSystem() + { + systemSessionToken = commonServer.tryToAuthenticateAsSystem().getSessionToken(); + } + + @Autowired + public final void setRequestContextProvider(final SpringRequestContextProvider contextProvider) + { + request = new MockHttpServletRequest(); + contextProvider.setRequest(request); + } + + @Autowired + public void setDaoFactory(IDAOFactory daoFactory) + { + this.daoFactory = daoFactory; + } + + @Autowired + public final void setCommonServer(final ICommonServerForInternalUse commonServer) + { + this.commonServer = commonServer; + } + + @Autowired + public final void setGenericServer(final IGenericServer genericServer) + { + this.genericServer = genericServer; + } + + @Autowired + public final void setCommonClientService(final ICommonClientService commonClientService) + { + this.commonClientService = commonClientService; + } + + @Autowired + public final void setGenericClientService(final IGenericClientService genericClientService) + { + this.genericClientService = genericClientService; + } + + @Autowired + public void setETLService(IETLLIMSService etlService) + { + this.etlService = etlService; + + } + + @Autowired + public void setRelationshipService(final IRelationshipService relationshipService) + { + this.relationshipService = relationshipService; + } + + @Autowired + public void setSessionManager(final ISessionManager<Session> sessionManager) + { + this.sessionManager = sessionManager; + } + protected static <T> T create(Builder<T> builder) { return builder.create(); @@ -115,6 +274,11 @@ public abstract class BaseTest extends SystemTestCase return new InSampleMatcher(sample); } + protected <T> Matcher<Collection<T>> containsExactly(T... elements) + { + return new CollectionContainsExactlyMatcher<T>(elements); + } + protected Experiment serverSays(Experiment experiment) { return commonServer.getExperimentInfo(systemSessionToken, new TechId(experiment.getId())); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/CollectionContainsExactlyMatcher.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/CollectionContainsExactlyMatcher.java new file mode 100644 index 0000000000000000000000000000000000000000..f7162d01ed1be98d5bb8c4d52c15ef180aef2c00 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/CollectionContainsExactlyMatcher.java @@ -0,0 +1,55 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * 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.systemsx.cisd.openbis.systemtest.base; + +import java.util.Collection; +import java.util.HashSet; + +import org.hamcrest.Description; +import org.hamcrest.TypeSafeMatcher; + +public class CollectionContainsExactlyMatcher<T> extends TypeSafeMatcher<Collection<T>> +{ + + private Collection<T> expected; + + public CollectionContainsExactlyMatcher(T... elements) + { + expected = new HashSet<T>(); + for (T t : elements) + { + expected.add(t); + } + } + + @Override + public void describeTo(Description description) + { + description.appendText("A collection containing exactly these elements: " + expected); + } + + @Override + public boolean matchesSafely(Collection<T> actual) + { + if (actual == null) + { + return false; + } + return actual.size() == expected.size() && actual.containsAll(expected); + } + +} \ No newline at end of file diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/DataSetBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/DataSetBuilder.java index c8ba9bf0d4fb3443f9389d4e3f296d2ffdf79165..41ddf365212be7b544d47ad4a6b7b494f0f166c4 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/DataSetBuilder.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/DataSetBuilder.java @@ -83,7 +83,7 @@ public class DataSetBuilder extends Builder<DataSet> data.setFileFormatType(new FileFormatType(FileFormatType.DEFAULT_FILE_FORMAT_TYPE_CODE)); data.setSampleIdentifierOrNull(this.sampleIdentifier); data.setLocatorType(new LocatorType(LocatorType.DEFAULT_LOCATOR_TYPE_CODE)); - data.setLocation("location"); + data.setLocation(UUID.randomUUID().toString()); data.setStorageFormat(StorageFormat.PROPRIETARY); data.setDataStoreCode("STANDARD"); data.setExperimentIdentifierOrNull(this.experimentIdentifier); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/RelationshipServiceStub.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/RelationshipServiceStub.java new file mode 100644 index 0000000000000000000000000000000000000000..fbe3f369e9d3196e5c48cabbcf77decaf8db45ec --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/RelationshipServiceStub.java @@ -0,0 +1,99 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * 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.systemsx.cisd.openbis.systemtest.base; + +import ch.systemsx.cisd.openbis.generic.shared.IRelationshipService; +import ch.systemsx.cisd.openbis.generic.shared.dto.IAuthSession; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; + +/** + * @author anttil + */ +public class RelationshipServiceStub implements IRelationshipService +{ + + @Override + public void assignExperimentToProject(IAuthSession session, ExperimentIdentifier experiment, + ProjectIdentifier project) + { + } + + @Override + public void assignProjectToSpace(IAuthSession session, ProjectIdentifier project, + SpaceIdentifier space) + { + } + + @Override + public void assignSampleToExperiment(IAuthSession session, SampleIdentifier sample, + ExperimentIdentifier experiment) + { + } + + @Override + public void unassignSampleFromExperiment(IAuthSession session, SampleIdentifier sample) + { + } + + @Override + public void unshareSample(IAuthSession session, SampleIdentifier sample, SpaceIdentifier space) + { + } + + @Override + public void assignSampleToSpace(IAuthSession session, SampleIdentifier sample, + SpaceIdentifier space) + { + } + + @Override + public void shareSample(IAuthSession session, SampleIdentifier sample) + { + } + + @Override + public void assignDataSetToExperiment(IAuthSession session, String dataSetCode, + ExperimentIdentifier experiment) + { + } + + @Override + public void assignDataSetToSample(IAuthSession session, String dataSetCode, + SampleIdentifier sample) + { + } + + @Override + public void addParentToSample(IAuthSession session, SampleIdentifier sample, + SampleIdentifier parent) + { + // TODO Auto-generated method stub + + } + + @Override + public void removeParentFromSample(IAuthSession session, SampleIdentifier sample, + SampleIdentifier parent) + { + // TODO Auto-generated method stub + + } + +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleBuilder.java index bdfb31a806bb72cf92fe4c4d6b1c822e6d6938bc..321f7cf96234c205760c39087c506b7be77f3feb 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleBuilder.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleBuilder.java @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.systemtest.base; import java.util.ArrayList; +import java.util.List; import java.util.UUID; import ch.systemsx.cisd.openbis.generic.server.ICommonServerForInternalUse; @@ -36,16 +37,18 @@ import ch.systemsx.cisd.openbis.plugin.generic.shared.IGenericServer; public class SampleBuilder extends Builder<Sample> { + private Experiment experiment; + + private Space space; + + private List<Sample> parents; public SampleBuilder(ICommonServerForInternalUse commonServer, IGenericServer genericServer) { super(commonServer, genericServer); + this.parents = new ArrayList<Sample>(); } - private Experiment experiment; - - private Space space; - @SuppressWarnings("hiding") public SampleBuilder inExperiment(Experiment experiment) { @@ -60,6 +63,20 @@ public class SampleBuilder extends Builder<Sample> return this; } + public SampleBuilder withParent(Sample parent) + { + return this.withParents(parent); + } + + public SampleBuilder withParents(Sample... samples) + { + for (Sample parent : samples) + { + this.parents.add(parent); + } + return this; + } + @Override public Sample create() { @@ -106,7 +123,15 @@ public class SampleBuilder extends Builder<Sample> data.setExperimentIdentifier(this.experiment.getIdentifier()); } - data.setParentsOrNull(null); + String[] parentIds = new String[this.parents.size()]; + int i = 0; + for (Sample s : this.parents) + { + parentIds[i] = s.getIdentifier(); + i++; + } + + data.setParentsOrNull(parentIds); data.setProperties(new IEntityProperty[0]); data.setSampleType(sampleType); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleUpdateBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleUpdateBuilder.java index 05a702306440036c883efb0181f30c459c638826..2b50827456ab0bed0c13ed3b17081a784e28bfee 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleUpdateBuilder.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/SampleUpdateBuilder.java @@ -20,6 +20,7 @@ import static ch.systemsx.cisd.openbis.systemtest.base.BaseTest.id; import java.util.ArrayList; import java.util.Date; +import java.util.List; import ch.systemsx.cisd.openbis.generic.server.ICommonServerForInternalUse; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; @@ -47,6 +48,8 @@ public class SampleUpdateBuilder extends Builder<SampleUpdatesDTO> private SampleIdentifier sampleIdentifier; + private List<Sample> parents; + public SampleUpdateBuilder(ICommonServerForInternalUse commonServer, IGenericServer genericServer, Sample sample) { @@ -59,6 +62,7 @@ public class SampleUpdateBuilder extends Builder<SampleUpdatesDTO> } this.version = sample.getModificationDate(); this.sampleIdentifier = id(sample); + this.parents = new ArrayList<Sample>(); } public SampleUpdateBuilder inExperiment(Experiment experiment) @@ -91,6 +95,20 @@ public class SampleUpdateBuilder extends Builder<SampleUpdatesDTO> return this; } + public SampleUpdateBuilder withParent(Sample sample) + { + return this.withParents(sample); + } + + public SampleUpdateBuilder withParents(Sample... samples) + { + for (Sample parent : samples) + { + this.parents.add(parent); + } + return this; + } + /* * public SampleUpdatesDTO(TechId sampleId, List<IEntityProperty> properties, ExperimentIdentifier experimentIdentifierOrNull, Collection<NewAttachment> attachments, @@ -101,8 +119,13 @@ public class SampleUpdateBuilder extends Builder<SampleUpdatesDTO> @Override public SampleUpdatesDTO create() { + String[] parentCodes = new String[this.parents.size()]; + for (int i = 0; i < this.parents.size(); i++) + { + parentCodes[i] = this.parents.get(i).getCode(); + } return new SampleUpdatesDTO(this.sampleId, new ArrayList<IEntityProperty>(), this.experimentId, new ArrayList<NewAttachment>(), this.version, - this.sampleIdentifier, null, null); + this.sampleIdentifier, null, parentCodes); } } \ No newline at end of file diff --git a/openbis/sourceTest/java/stub_relationship_service.xml b/openbis/sourceTest/java/stub_relationship_service.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc9fe497966207d0e382a8d8cbf03e5e8741d9aa --- /dev/null +++ b/openbis/sourceTest/java/stub_relationship_service.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:tx="http://www.springframework.org/schema/tx" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-2.5.xsd + http://www.springframework.org/schema/tx + http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> + + <bean id="relationship-service" + class="ch.systemsx.cisd.openbis.systemtest.base.RelationshipServiceStub" primary="true"> + </bean> +</beans> \ No newline at end of file diff --git a/openbis/sourceTest/java/tests.xml b/openbis/sourceTest/java/tests.xml index a6203350eff9f8ff14300aca7950a08781575ad9..2f6640cb209a293a0775078b9800d4e983a30e61 100644 --- a/openbis/sourceTest/java/tests.xml +++ b/openbis/sourceTest/java/tests.xml @@ -5,6 +5,7 @@ <exclude name="abstract" /> <exclude name="broken" /> <exclude name="scalability"/> + <exclude name="system-cleandb"/> </run> </groups> <packages> diff --git a/openbis/sourceTest/java/tests_system_cleandb.xml b/openbis/sourceTest/java/tests_system_cleandb.xml new file mode 100644 index 0000000000000000000000000000000000000000..7735eff03e74beaa350a4674540d028689c1e10c --- /dev/null +++ b/openbis/sourceTest/java/tests_system_cleandb.xml @@ -0,0 +1,34 @@ +<suite name="All" verbose="2" parallel = "false" threadCount = "1"> + <groups> + <run> + <include name="system-cleandb"/> + </run> + </groups> + + <test name="system-cleandb-basic" annotations="JDK"> + <classes> + <class name="ch.systemsx.cisd.openbis.systemtest.EntityRelationshipChangeTest" /> + </classes> + </test> + + <!-- test name="system-cleandb-basic" annotations="JDK"> + <method-selectors> + <method-selector> + <script language="beanshell"><![CDATA[ + groups.containsKey("system-cleandb") && groups.containsKey("basic") + ]]></script> + </method-selector> + </method-selectors> + + <packages> + <package name="ch.systemsx.cisd.openbis.*" /> + </packages> + </test --> + + <test name="system-cleandb-stub-relationship-service" annotations="JDK"> + <classes> + <class name="ch.systemsx.cisd.openbis.systemtest.RelationshipServiceAuthorizationTest" /> + </classes> + </test> + +</suite>