From 5f98ec5aeff7337e49a5cae6d4d1090d95125c88 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Sun, 27 Sep 2009 20:10:11 +0000 Subject: [PATCH] fixed & extended VocabularyBO test SVN: 12715 --- .../server/business/bo/AbstractBOTest.java | 6 +++ .../server/business/bo/VocabularyBOTest.java | 45 ++++++++++++++++--- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java index 7f035be7296..0de3f4cec19 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java @@ -43,6 +43,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPropertyTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IVocabularyDAO; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IVocabularyTermDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.IPermIdDAO; /** @@ -82,6 +83,8 @@ public abstract class AbstractBOTest extends AssertJUnit IVocabularyDAO vocabularyDAO; + IVocabularyTermDAO vocabularyTermDAO; + IEntityPropertiesConverter propertiesConverter; IDataSetTypeDAO dataSetTypeDAO; @@ -118,6 +121,7 @@ public abstract class AbstractBOTest extends AssertJUnit propertyTypeDAO = context.mock(IPropertyTypeDAO.class); entityPropertyTypeDAO = context.mock(IEntityPropertyTypeDAO.class); vocabularyDAO = context.mock(IVocabularyDAO.class); + vocabularyTermDAO = context.mock(IVocabularyTermDAO.class); materialDAO = context.mock(IMaterialDAO.class); dataSetTypeDAO = context.mock(IDataSetTypeDAO.class); fileFormatTypeDAO = context.mock(IFileFormatTypeDAO.class); @@ -152,6 +156,8 @@ public abstract class AbstractBOTest extends AssertJUnit will(returnValue(dataStoreDAO)); allowing(daoFactory).getVocabularyDAO(); will(returnValue(vocabularyDAO)); + allowing(daoFactory).getVocabularyTermDAO(); + will(returnValue(vocabularyTermDAO)); allowing(daoFactory).getEventDAO(); will(returnValue(eventDAO)); allowing(daoFactory).getAuthorizationGroupDAO(); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBOTest.java index d6bc74d28b0..cd70b27f041 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/VocabularyBOTest.java @@ -148,16 +148,19 @@ public final class VocabularyBOTest extends AbstractBOTest public final void testSave() { final VocabularyBO vocabularyBO = createVocabularyBO(); + final NewVocabulary vocabulary = createVocabulary(); context.checking(new Expectations() { { one(daoFactory).getHomeDatabaseInstance(); will(returnValue(ManagerTestTool.EXAMPLE_DATABASE_INSTANCE)); + exactly(vocabulary.getTerms().size()).of(vocabularyTermDAO).validate( + with(aNonNull(VocabularyTermPE.class))); + one(vocabularyDAO).createOrUpdateVocabulary(with(aNonNull(VocabularyPE.class))); } }); - final NewVocabulary vocabulary = createVocabulary(); vocabularyBO.define(vocabulary); vocabularyBO.save(); context.assertIsSatisfied(); @@ -167,17 +170,47 @@ public final class VocabularyBOTest extends AbstractBOTest public final void testSaveWithException() { final VocabularyBO vocabularyBO = createVocabularyBO(); + final NewVocabulary vocabulary = createVocabulary(); context.checking(new Expectations() { { one(daoFactory).getHomeDatabaseInstance(); will(returnValue(ManagerTestTool.EXAMPLE_DATABASE_INSTANCE)); + exactly(vocabulary.getTerms().size()).of(vocabularyTermDAO).validate( + with(aNonNull(VocabularyTermPE.class))); + one(vocabularyDAO).createOrUpdateVocabulary(with(aNonNull(VocabularyPE.class))); will(throwException(new DataIntegrityViolationException(null))); } }); + vocabularyBO.define(vocabulary); + try + { + vocabularyBO.save(); + fail(String.format("'%s' expected.", UserFailureException.class.getSimpleName())); + } catch (final UserFailureException ex) + { + // Nothing to do here. + } + context.assertIsSatisfied(); + } + + @Test + public final void testSaveWithTermValidationException() + { + final VocabularyBO vocabularyBO = createVocabularyBO(); final NewVocabulary vocabulary = createVocabulary(); + context.checking(new Expectations() + { + { + one(daoFactory).getHomeDatabaseInstance(); + will(returnValue(ManagerTestTool.EXAMPLE_DATABASE_INSTANCE)); + + one(vocabularyTermDAO).validate(with(aNonNull(VocabularyTermPE.class))); + will(throwException(new DataIntegrityViolationException(null))); + } + }); vocabularyBO.define(vocabulary); try { @@ -344,9 +377,8 @@ public final class VocabularyBOTest extends AbstractBOTest fail("IllegalArgumentException expected."); } catch (IllegalArgumentException e) { - assertEquals( - "Invalid vocabulary replacement because of unknown replacement: 2 -> [1]", e - .getMessage()); + assertEquals("Invalid vocabulary replacement because of unknown replacement: 2 -> [1]", + e.getMessage()); } context.assertIsSatisfied(); } @@ -377,9 +409,8 @@ public final class VocabularyBOTest extends AbstractBOTest fail("IllegalArgumentException expected."); } catch (IllegalArgumentException e) { - assertEquals( - "Invalid vocabulary replacement because of unknown replacement: 1 -> [3]", e - .getMessage()); + assertEquals("Invalid vocabulary replacement because of unknown replacement: 1 -> [3]", + e.getMessage()); } context.assertIsSatisfied(); } -- GitLab