Fix tests broken in commit b940c78826

The problem was that now when a user or resource is saved, it's checked the
limit in the configuration fields. For that reason, we need to load the
configuration data before saving any user or resource.
This commit is contained in:
Manuel Rego Casasnovas 2012-10-03 10:25:54 +02:00
parent 032a7c0eaf
commit b8ae09471d
9 changed files with 102 additions and 25 deletions

View file

@ -1187,7 +1187,7 @@ public abstract class Resource extends IntegrationEntity implements
}
@AssertTrue(message = "You have exceeded the maximum limit of resources")
public boolean checkMaxUsers() {
public boolean checkMaxResources() {
Integer maxResources = Registry.getConfigurationDAO()
.getConfiguration().getMaxResources();
if (maxResources != null && maxResources > 0) {

View file

@ -33,8 +33,12 @@ import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import javax.annotation.Resource;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.IDataBootstrap;
import org.libreplan.business.common.IAdHocTransactionService;
import org.libreplan.business.common.IOnTransaction;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
@ -71,6 +75,14 @@ public class ExternalCompanyDAOTest {
@Autowired
private IAdHocTransactionService transactionService;
@Resource
private IDataBootstrap configurationBootstrap;
@Before
public void loadRequiredaData() {
configurationBootstrap.loadRequiredData();
}
@Test
public void testInSpringContainer() {
assertNotNull(externalCompanyDAO);

View file

@ -25,19 +25,24 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.libreplan.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.libreplan.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
import java.math.BigDecimal;
import java.util.List;
import javax.annotation.Resource;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.IDataBootstrap;
import org.libreplan.business.common.IAdHocTransactionService;
import org.libreplan.business.common.IOnTransaction;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.resources.daos.ICriterionDAO;
import org.libreplan.business.resources.daos.ICriterionTypeDAO;
import org.libreplan.business.resources.daos.IMachineDAO;
import org.libreplan.business.resources.daos.IWorkerDAO;
import org.libreplan.business.resources.entities.Criterion;
@ -70,6 +75,20 @@ public class MachineDAOTest {
@Autowired
IWorkerDAO workerDAO;
@Autowired
private ICriterionTypeDAO criterionTypeDAO;
@Autowired
private ICriterionDAO criterionDAO;
@Resource
private IDataBootstrap configurationBootstrap;
@Before
public void loadRequiredaData() {
configurationBootstrap.loadRequiredData();
}
private Machine createValidMachine() {
Machine machine = Machine.create();
machine.setCode("code");
@ -108,40 +127,47 @@ public class MachineDAOTest {
}
@Test
@NotTransactional
public void testSaveConfigurationUnits() throws InstanceNotFoundException {
Machine machine = createValidMachine();
final Machine machine = createValidMachine();
MachineWorkersConfigurationUnit configurationUnit = MachineWorkersConfigurationUnit
.create(machine, "Operation", new BigDecimal(1));
Criterion criterion = CriterionDAOTest.createValidCriterion();
final Criterion criterion = CriterionDAOTest.createValidCriterion();
configurationUnit.addRequiredCriterion(criterion);
machine.addMachineWorkersConfigurationUnit(configurationUnit);
machineDAO.save(machine);
transactionService.runOnTransaction(new IOnTransaction<Void>() {
@Override
public Void execute() {
criterionTypeDAO.save(criterion.getType());
criterionDAO.save(criterion);
machineDAO.save(machine);
return null;
}
});
assertTrue(machine.getId() != null);
assertTrue(machine.getConfigurationUnits().size() != 0);
assertTrue(machine.getConfigurationUnits().iterator().next()
.getRequiredCriterions().size() != 0);
}
@Test
@Test(expected = ValidationException.class)
@NotTransactional
public void testSaveTwoMachinesWithSameCodeForbidden() {
final Machine machine = createValidMachine();
saveMachineInTransaction(machine);
try {
saveMachineInTransaction(machine);
fail("Expected ValidationException");
} catch (ValidationException e) {}
}
private void saveMachineInTransaction(final Machine machine) {
IOnTransaction<Void> createMachineTransaction =
new IOnTransaction<Void>() {
@Override public Void execute() {
machineDAO.save(machine);
transactionService.runOnTransaction(new IOnTransaction<Void>() {
@Override
public Void execute() {
machineDAO.save(createValidMachine());
return null;
}
};
transactionService.runOnTransaction(createMachineTransaction);
});
transactionService.runOnTransaction(new IOnTransaction<Void>() {
@Override
public Void execute() {
machineDAO.save(createValidMachine());
return null;
}
});
}
}

View file

@ -78,6 +78,8 @@ public abstract class AbstractWorkReportTest {
}
public WorkReportLine createValidWorkReportLine() {
Resource resource = createValidWorker();
WorkReport workReport = createValidWorkReport();
workReportDAO.save(workReport);
@ -85,7 +87,7 @@ public abstract class AbstractWorkReportTest {
workReport.addWorkReportLine(workReportLine);
workReportLine.setDate(new Date());
workReportLine.setEffort(EffortDuration.hours(100));
workReportLine.setResource(createValidWorker());
workReportLine.setResource(resource);
workReportLine.setOrderElement(createValidOrderElement());
workReportLine.setTypeOfWorkHours(createValidTypeOfWorkHours());
return workReportLine;

View file

@ -29,8 +29,12 @@ import static org.libreplan.business.test.BusinessGlobalNames.BUSINESS_SPRING_CO
import java.util.List;
import javax.annotation.Resource;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.IDataBootstrap;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.workreports.daos.IWorkReportLineDAO;
import org.libreplan.business.workreports.entities.WorkReportLine;
@ -51,6 +55,14 @@ public class WorkReportLineDAOTest extends AbstractWorkReportTest {
@Autowired
private IWorkReportLineDAO workReportLineDAO;
@Resource
private IDataBootstrap configurationBootstrap;
@Before
public void loadRequiredaData() {
configurationBootstrap.loadRequiredData();
}
@Test
public void testSaveWorkReportLine() {
WorkReportLine workReportLine = createValidWorkReportLine();

View file

@ -30,6 +30,7 @@ import static org.libreplan.web.test.WebappGlobalNames.WEBAPP_SPRING_SECURITY_CO
import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.common.entities.IConfigurationBootstrap;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.users.bootstrap.IProfileBootstrap;
import org.libreplan.business.users.daos.IUserDAO;
@ -60,11 +61,15 @@ public class UsersBootstrapInDBTest {
@Autowired
private IProfileBootstrap profileBootstrap;
@Autowired
private IConfigurationBootstrap configurationBootstrap;
@Autowired
private IUserDAO userDAO;
@Test
public void testMandatoryUsersCreated() throws InstanceNotFoundException {
configurationBootstrap.loadRequiredData();
profileBootstrap.loadRequiredData();
usersBootstrap.loadRequiredData();

View file

@ -30,7 +30,9 @@ import static org.libreplan.web.test.WebappGlobalNames.WEBAPP_SPRING_SECURITY_CO
import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.common.entities.IConfigurationBootstrap;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.users.bootstrap.IProfileBootstrap;
import org.libreplan.business.users.daos.IUserDAO;
import org.libreplan.business.users.entities.User;
import org.libreplan.web.users.bootstrap.IUsersBootstrapInDB;
@ -60,12 +62,20 @@ public class DBPasswordEncoderServiceTest {
@Autowired
private IUsersBootstrapInDB usersBootstrap;
@Autowired
private IProfileBootstrap profileBootstrap;
@Autowired
private IConfigurationBootstrap configurationBootstrap;
@Autowired
private IUserDAO userDAO;
@Test
public void testEncodePassword() throws InstanceNotFoundException {
configurationBootstrap.loadRequiredData();
profileBootstrap.loadRequiredData();
usersBootstrap.loadRequiredData();
for (PredefinedUsers u : PredefinedUsers.values()) {

View file

@ -36,6 +36,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.common.IAdHocTransactionService;
import org.libreplan.business.common.IOnTransaction;
import org.libreplan.business.common.entities.IConfigurationBootstrap;
import org.libreplan.business.scenarios.bootstrap.IScenariosBootstrap;
import org.libreplan.business.users.bootstrap.IProfileBootstrap;
import org.libreplan.business.users.bootstrap.PredefinedProfiles;
@ -74,11 +75,14 @@ public class DBUserDetailsServiceTest {
@Autowired
private IProfileBootstrap profileBootstrap;
@Autowired
private IConfigurationBootstrap configurationBootstrap;
@Autowired
private IAdHocTransactionService transactionService;
@Before
public void loadScenariosBootsrap() {
public void loadRequiredData() {
/*
* the required data is loaded in another transaction because if it's
* loaded on the same transaction the added scenario could not be
@ -89,6 +93,7 @@ public class DBUserDetailsServiceTest {
transactionService.runOnAnotherTransaction(new IOnTransaction<Void>() {
@Override
public Void execute() {
configurationBootstrap.loadRequiredData();
scenariosBootstrap.loadRequiredData();
profileBootstrap.loadRequiredData();
return null;

View file

@ -34,6 +34,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.common.IAdHocTransactionService;
import org.libreplan.business.common.IOnTransaction;
import org.libreplan.business.common.entities.IConfigurationBootstrap;
import org.libreplan.business.scenarios.bootstrap.IScenariosBootstrap;
import org.libreplan.business.users.bootstrap.IProfileBootstrap;
import org.libreplan.business.users.bootstrap.PredefinedProfiles;
@ -77,11 +78,14 @@ public class LDAPUserDetailsServiceTest {
@Autowired
private IProfileBootstrap profileBootstrap;
@Autowired
private IConfigurationBootstrap configurationBootstrap;
@Autowired
private IAdHocTransactionService transactionService;
@Before
public void loadScenariosBootsrap() {
public void loadRequiredData() {
/*
* the required data is loaded in another transaction because if it's
* loaded on the same transaction the added scenario could not be
@ -92,6 +96,7 @@ public class LDAPUserDetailsServiceTest {
transactionService.runOnAnotherTransaction(new IOnTransaction<Void>() {
@Override
public Void execute() {
configurationBootstrap.loadRequiredData();
scenariosBootstrap.loadRequiredData();
profileBootstrap.loadRequiredData();
return null;