From 20aa9f0d993445576b9fe28566445ee198dd04bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 4 Aug 2009 13:48:04 +0200 Subject: [PATCH] ItEr20S07CUIntroducionAvanceUnidadeTraballoItEr19S12: Adding method to PredefinedAdvanceTypes to retrieve the associated AdvanceType. --- .../bootstrap/PredefinedAdvancedTypes.java | 5 ++ .../business/advance/daos/AdvanceTypeDAO.java | 6 ++ .../advance/daos/IAdvanceTypeDAO.java | 2 + ...aultAdvanceTypesBootstrapListenerTest.java | 58 +++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 navalplanner-business/src/test/java/org/navalplanner/business/test/advance/bootstrap/DefaultAdvanceTypesBootstrapListenerTest.java diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/bootstrap/PredefinedAdvancedTypes.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/bootstrap/PredefinedAdvancedTypes.java index eb9b1d7d6..134ae730a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/bootstrap/PredefinedAdvancedTypes.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/bootstrap/PredefinedAdvancedTypes.java @@ -2,6 +2,7 @@ package org.navalplanner.business.advance.bootstrap; import java.math.BigDecimal; +import org.navalplanner.business.advance.daos.AdvanceDAORegistry; import org.navalplanner.business.advance.entities.AdvanceType; public enum PredefinedAdvancedTypes { @@ -30,4 +31,8 @@ public enum PredefinedAdvancedTypes { return name; } + public AdvanceType getType() { + return AdvanceDAORegistry.getAdvanceTypeDao().findByName(name); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java index 40a73eb8d..9c305a19d 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java @@ -26,4 +26,10 @@ public class AdvanceTypeDAO extends GenericDAOHibernate throw convertHibernateAccessException(e); } } + + @Override + public AdvanceType findByName(String name) { + return (AdvanceType) getSession().createCriteria(AdvanceType.class) + .add(Restrictions.eq("unitName", name)).uniqueResult(); + } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java index 545bc1fce..898b6d0b8 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java @@ -10,4 +10,6 @@ import org.navalplanner.business.common.daos.IGenericDAO; public interface IAdvanceTypeDAO extends IGenericDAO{ public boolean existsNameAdvanceType(String unitName); + + public AdvanceType findByName(String name); } \ No newline at end of file diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/advance/bootstrap/DefaultAdvanceTypesBootstrapListenerTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/advance/bootstrap/DefaultAdvanceTypesBootstrapListenerTest.java new file mode 100644 index 000000000..ec0aced91 --- /dev/null +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/advance/bootstrap/DefaultAdvanceTypesBootstrapListenerTest.java @@ -0,0 +1,58 @@ +package org.navalplanner.business.test.advance.bootstrap; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.junit.Assert.assertThat; +import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE; +import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE; + +import java.util.Map; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.navalplanner.business.IDataBootstrap; +import org.navalplanner.business.advance.bootstrap.DefaultAdvanceTypesBootstrapListener; +import org.navalplanner.business.advance.bootstrap.PredefinedAdvancedTypes; +import org.navalplanner.business.advance.daos.IAdvanceTypeDAO; +import org.navalplanner.business.advance.entities.AdvanceType; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.transaction.annotation.Transactional; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE, + BUSINESS_SPRING_CONFIG_TEST_FILE }) +@Transactional +public class DefaultAdvanceTypesBootstrapListenerTest { + + @Autowired + private Map dataBootstraps; + + @Autowired + private IAdvanceTypeDAO advanceTypeDAO; + + private IDataBootstrap getAdvanceTypeBootstrap() { + String simpleName = DefaultAdvanceTypesBootstrapListener.class + .getSimpleName(); + return dataBootstraps.get(simpleName.substring(0, 1).toLowerCase() + + simpleName.substring(1)); + } + + @Test + public void theBootstrapensuresExistenceOfPredefinedAdvanceTypes() { + getAdvanceTypeBootstrap().loadRequiredData(); + for (PredefinedAdvancedTypes p : PredefinedAdvancedTypes.values()) { + advanceTypeDAO.existsNameAdvanceType(p.getTypeName()); + } + } + + @Test + public void getAdvanceTypeFromEnum() { + getAdvanceTypeBootstrap().loadRequiredData(); + for (PredefinedAdvancedTypes p : PredefinedAdvancedTypes.values()) { + AdvanceType advanceType = p.getType(); + assertThat(advanceType.getUnitName(), equalTo(p.getTypeName())); + } + } + +}