ItEr20S07CUIntroducionAvanceUnidadeTraballoItEr19S12: Adding method to PredefinedAdvanceTypes to retrieve the associated AdvanceType.

This commit is contained in:
Óscar González Fernández 2009-08-04 13:48:04 +02:00
parent 76fede6142
commit 20aa9f0d99
4 changed files with 71 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -26,4 +26,10 @@ public class AdvanceTypeDAO extends GenericDAOHibernate<AdvanceType, Long>
throw convertHibernateAccessException(e);
}
}
@Override
public AdvanceType findByName(String name) {
return (AdvanceType) getSession().createCriteria(AdvanceType.class)
.add(Restrictions.eq("unitName", name)).uniqueResult();
}
}

View file

@ -10,4 +10,6 @@ import org.navalplanner.business.common.daos.IGenericDAO;
public interface IAdvanceTypeDAO extends IGenericDAO<AdvanceType, Long>{
public boolean existsNameAdvanceType(String unitName);
public AdvanceType findByName(String name);
}

View file

@ -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<String, IDataBootstrap> 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()));
}
}
}