diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java index 70ad331c272d511fe2520c42d93c37eeb3f76f88..1d1c633b5b04dee27cae1fa43f072dc11ae36189 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java @@ -23,6 +23,7 @@ import org.jmock.Expectations; import org.testng.annotations.Test; import ch.rinn.restrictions.Friend; +import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.server.business.ManagerTestTool; import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils; import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE; @@ -57,6 +58,9 @@ public final class ExperimentTableTest extends AbstractBOTest context.checking(new Expectations() { { + allowing(daoFactory).getHomeDatabaseInstance(); + will(returnValue(CommonTestUtils.createHomeDatabaseInstance())); + allowing(daoFactory).getEntityTypeDAO(EntityKind.EXPERIMENT); will(returnValue(entityTypeDAO)); @@ -81,6 +85,42 @@ public final class ExperimentTableTest extends AbstractBOTest context.assertIsSatisfied(); } + @Test + public void testLoadByProjectNonexistent() throws Exception + { + final ProjectIdentifier projectIdentifier = CommonTestUtils.createProjectIdentifier(); + final ExperimentTypePE experimentType = CommonTestUtils.createExperimentType(); + context.checking(new Expectations() + { + { + allowing(daoFactory).getHomeDatabaseInstance(); + will(returnValue(CommonTestUtils.createHomeDatabaseInstance())); + + allowing(daoFactory).getEntityTypeDAO(EntityKind.EXPERIMENT); + will(returnValue(entityTypeDAO)); + + allowing(daoFactory).getProjectDAO(); + will(returnValue(projectDAO)); + + allowing(daoFactory).getExperimentDAO(); + will(returnValue(experimentDAO)); + + one(projectDAO).tryFindProjects(Collections.singletonList(projectIdentifier)); + will(returnValue(Collections.emptyList())); + } + }); + + try + { + createExperimentTable().load(experimentType.getCode(), projectIdentifier); + fail(); + } catch (UserFailureException e) + { + context.assertIsSatisfied(); + assertEquals("Projects '[HOME_DATABASE:/HOME_GROUP/PROJECT_EVOLUTION]' unknown.", e.getMessage()); + } + } + @Test public void testLoadBySpace() throws Exception { diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java index 0469e9e2cd0107e7c992bce259714d6c4e3e1661..3273358581c9417e9d23a22ed9df25afac3ef323 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java @@ -22,6 +22,7 @@ import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertTrue; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -34,6 +35,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; 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.SpacePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.IdentifierHelper; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; /** @@ -42,7 +45,7 @@ import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; * @author Izabela Adamczyk */ @Test(groups = - { "db", "project" }) +{ "db", "project" }) public class ProjectDAOTest extends AbstractDAOTest { @@ -61,7 +64,7 @@ public class ProjectDAOTest extends AbstractDAOTest public static final String DEFAULT = "DEFAULT"; static final String[] PRELOADED_PROJECTS = - { DEFAULT, NEMO, NOE, TEST_PROJECT, TESTPROJ }; + { DEFAULT, NEMO, NOE, TEST_PROJECT, TESTPROJ }; @Test public void testListProjects() @@ -144,6 +147,45 @@ public class ProjectDAOTest extends AbstractDAOTest templateProject.getSpace().getCode(), templateProject.getCode())); } + @Test + public void testTryFindProjects() throws Exception + { + final List<ProjectPE> allProjects = daoFactory.getProjectDAO().listProjects(); + Collections.sort(allProjects); + + final ProjectPE noe = allProjects.get(2); + final ProjectPE testproj = allProjects.get(4); + + assertEquals(noe.getCode(), NOE); + assertEquals(testproj.getCode(), TESTPROJ); + + List<ProjectPE> found = daoFactory.getProjectDAO().tryFindProjects( + Arrays.asList(IdentifierHelper.createProjectIdentifier(noe), IdentifierHelper.createFullProjectIdentifier(testproj))); + + Collections.sort(found); + + assertEquals(2, found.size()); + assertEquals(noe.getCode(), found.get(0).getCode()); + assertEquals(testproj.getCode(), found.get(1).getCode()); + } + + @Test + public void testTryFindProjectsNonexistent() throws Exception + { + final List<ProjectPE> allProjects = daoFactory.getProjectDAO().listProjects(); + Collections.sort(allProjects); + + final ProjectPE noe = allProjects.get(2); + + assertEquals(noe.getCode(), NOE); + + List<ProjectPE> found = daoFactory.getProjectDAO().tryFindProjects( + Arrays.asList(IdentifierHelper.createProjectIdentifier(noe), new ProjectIdentifier(NONEXISTENT, NONEXISTENT, NONEXISTENT))); + + assertEquals(1, found.size()); + assertEquals(noe.getCode(), found.get(0).getCode()); + } + @Test public void testTryGetByPermID() throws Exception {