From 02d2f0aedeb8ac109eb37858a5d1d6c9328e62f4 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Mon, 7 Feb 2011 09:59:20 +0000 Subject: [PATCH] [LMS-2029] few tests in DAO layer SVN: 19773 --- .../DynamicPropertyEvaluationScheduler.java | 12 +++-- .../db/AbstractDAOWithoutContextTest.java | 15 ------ .../dataaccess/db/ExperimentDAOTest.java | 47 +++++++++++++++++-- 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java index bdfda607f5b..2dec81fc012 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java @@ -53,6 +53,12 @@ public final class DynamicPropertyEvaluationScheduler implements } }; + /* private - exposed for tests */ + public static List<DynamicPropertyEvaluationOperation> getThreadOperations() + { + return threadQueue.get(); + } + private final IExtendedBlockingQueue<DynamicPropertyEvaluationOperation> evaluatorQueue; public DynamicPropertyEvaluationScheduler() @@ -102,13 +108,13 @@ public final class DynamicPropertyEvaluationScheduler implements public void scheduleUpdate(DynamicPropertyEvaluationOperation operation) { threadDebugLog("Scheduling update: " + operation); - List<DynamicPropertyEvaluationOperation> threadOperations = threadQueue.get(); + List<DynamicPropertyEvaluationOperation> threadOperations = getThreadOperations(); threadOperations.add(operation); } public void synchronizeThreadQueue() { - List<DynamicPropertyEvaluationOperation> threadOperations = threadQueue.get(); + List<DynamicPropertyEvaluationOperation> threadOperations = getThreadOperations(); if (threadOperations.size() > 0) { threadDebugLog("Synchronizing scheduled operations"); @@ -126,7 +132,7 @@ public final class DynamicPropertyEvaluationScheduler implements public void clearThreadQueue() { threadDebugLog("Clearing scheduled operations"); - List<DynamicPropertyEvaluationOperation> threadOperations = threadQueue.get(); + List<DynamicPropertyEvaluationOperation> threadOperations = getThreadOperations(); threadOperations.clear(); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java index a7873c18b93..74929839784 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java @@ -40,7 +40,6 @@ import org.testng.annotations.BeforeMethod; import ch.rinn.restrictions.Friend; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExternalDataDAO; -import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.search.HibernateSearchContext; import ch.systemsx.cisd.openbis.generic.server.util.TestInitializer; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityPropertiesHolder; @@ -91,8 +90,6 @@ public abstract class AbstractDAOWithoutContextTest extends protected SessionFactory sessionFactory; - HibernateSearchContext hibernateSearchContext; - private Long origDatabaseInstanceId; private Object currentDAO; @@ -136,18 +133,6 @@ public abstract class AbstractDAOWithoutContextTest extends this.sessionFactory = sessionFactory; } - /** - * Sets <code>hibernate search context</code>. - * <p> - * Will be automatically dependency injected by type. - * </p> - */ - @Autowired - public final void setHibernateSearchContext(final HibernateSearchContext hibernateSearchContext) - { - this.hibernateSearchContext = hibernateSearchContext; - } - /** * Changes the database instance id of given {@link AbstractDAO} to a new value. */ diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java index 7c26ae3de71..5c3e935316e 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java @@ -34,6 +34,8 @@ import org.testng.AssertJUnit; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.DynamicPropertyEvaluationOperation; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.DynamicPropertyEvaluationScheduler; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO; import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; @@ -89,17 +91,20 @@ public class ExperimentDAOTest extends AbstractDAOTest @Test public void testListExperimentsWithPropertiesForEmptySet() throws Exception { - List<ExperimentPE> list = daoFactory.getExperimentDAO().listExperimentsWithProperties(Collections.<Long>emptySet()); + List<ExperimentPE> list = + daoFactory.getExperimentDAO().listExperimentsWithProperties( + Collections.<Long> emptySet()); assertEquals(0, list.size()); } - + @Test public void testListByPermIDForEmptySet() throws Exception { - List<ExperimentPE> list = daoFactory.getExperimentDAO().listByPermID(Collections.<String>emptySet()); + List<ExperimentPE> list = + daoFactory.getExperimentDAO().listByPermID(Collections.<String> emptySet()); assertEquals(0, list.size()); } - + @Test public void testListExperimentsFromProject() throws Exception { @@ -314,9 +319,16 @@ public class ExperimentDAOTest extends AbstractDAOTest int sizeBefore = experimentsBefore.size(); assertEqualsOrGreater(8, sizeBefore); + List<DynamicPropertyEvaluationOperation> threadOperations = + DynamicPropertyEvaluationScheduler.getThreadOperations(); + assertEquals(0, threadOperations.size()); + ExperimentPE experiment = createExperiment("CISD", "CISD", "NEMO", "EXP12", "SIRNA_HCS"); daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment); + assertEquals(1, threadOperations.size()); + assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0)); + List<ExperimentPE> experimentsAfter = daoFactory.getExperimentDAO().listExperiments(); assertEquals(sizeBefore + 1, experimentsAfter.size()); Collections.sort(experimentsAfter); @@ -337,8 +349,16 @@ public class ExperimentDAOTest extends AbstractDAOTest experiment.setCode(codeModified); experiment.setPermId(daoFactory.getPermIdDAO().createPermId()); final Date modificationTimestamp = experiment.getModificationDate(); + + List<DynamicPropertyEvaluationOperation> threadOperations = + DynamicPropertyEvaluationScheduler.getThreadOperations(); + assertEquals(0, threadOperations.size()); + daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment); + assertEquals(1, threadOperations.size()); + assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0)); + List<ExperimentPE> experimentsAfter = daoFactory.getExperimentDAO().listExperiments(); assertEquals(sizeBefore, experimentsAfter.size()); Collections.sort(experimentsAfter); @@ -354,13 +374,24 @@ public class ExperimentDAOTest extends AbstractDAOTest int sizeBefore = experimentsBefore.size(); assertEqualsOrGreater(8, sizeBefore); + List<DynamicPropertyEvaluationOperation> threadOperations = + DynamicPropertyEvaluationScheduler.getThreadOperations(); + assertEquals(0, threadOperations.size()); + ExperimentPE experiment = createExperiment("CISD", "CISD", "NEMO", "EXP13", "SIRNA_HCS"); daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment); + assertEquals(1, threadOperations.size()); + assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0)); + ExperimentPE experiment2 = createExperiment("CISD", "CISD", "NEMO", "EXP12", "COMPOUND_HCS"); daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment2); + assertEquals(2, threadOperations.size()); + assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0)); + assertEquals(asDynamicPropertyEvaluationOperation(experiment2), threadOperations.get(1)); + List<ExperimentPE> experimentsAfter = daoFactory.getExperimentDAO().listExperiments(); Collections.sort(experimentsAfter); assertEquals(sizeBefore + 2, experimentsAfter.size()); @@ -412,6 +443,7 @@ public class ExperimentDAOTest extends AbstractDAOTest { final ExperimentPE experiment = createExperiment("CISD", "CISD", "NEMO", code, "SIRNA_HCS"); boolean exceptionThrown = false; + try { daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment); @@ -491,4 +523,11 @@ public class ExperimentDAOTest extends AbstractDAOTest AssertJUnit.assertTrue(result.isEmpty()); } + private DynamicPropertyEvaluationOperation asDynamicPropertyEvaluationOperation( + ExperimentPE experiment) + { + return DynamicPropertyEvaluationOperation.evaluate(ExperimentPE.class, + Collections.singletonList(experiment.getId())); + } + } -- GitLab