ItEr36S08CUAsignacionCalendarioLaboralRecursoItEr35S08: Fixed tests adding default calendars to new orders.
This commit is contained in:
parent
5d5a71b990
commit
50d579b5f7
8 changed files with 215 additions and 40 deletions
|
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* This file is part of ###PROJECT_NAME###
|
||||
*
|
||||
* Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.business.common.entities;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.calendars.daos.IBaseCalendarDAO;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData.Days;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* Creates a default {@link Configuration} with a default {@link BaseCalendar}.
|
||||
*
|
||||
* @author Manuel Rego Casasnovas <mrego@igalia.com>
|
||||
*/
|
||||
@Component
|
||||
@Scope("singleton")
|
||||
public class ConfigurationBootstrap implements IConfigurationBootstrap {
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
@Autowired
|
||||
private IBaseCalendarDAO baseCalendarDAO;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void loadRequiredData() {
|
||||
List<Configuration> list = configurationDAO.list(Configuration.class);
|
||||
if (list.isEmpty()) {
|
||||
Configuration configuration = Configuration.create();
|
||||
configuration.setDefaultCalendar(getDefaultCalendar());
|
||||
configurationDAO.save(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
private BaseCalendar getDefaultCalendar() {
|
||||
BaseCalendar calendar = BaseCalendar.create();
|
||||
|
||||
calendar.setName("Default");
|
||||
|
||||
calendar.setHours(Days.MONDAY, 8);
|
||||
calendar.setHours(Days.TUESDAY, 8);
|
||||
calendar.setHours(Days.WEDNESDAY, 8);
|
||||
calendar.setHours(Days.THURSDAY, 8);
|
||||
calendar.setHours(Days.FRIDAY, 8);
|
||||
calendar.setHours(Days.SATURDAY, 0);
|
||||
calendar.setHours(Days.SUNDAY, 0);
|
||||
|
||||
baseCalendarDAO.save(calendar);
|
||||
|
||||
return calendar;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* This file is part of ###PROJECT_NAME###
|
||||
*
|
||||
* Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.business.common.entities;
|
||||
|
||||
import org.navalplanner.business.IDataBootstrap;
|
||||
|
||||
/**
|
||||
* Contract for {@link ConfigurationBootstrap}.
|
||||
*
|
||||
* @author Manuel Rego Casasnovas <mrego@igalia.com>
|
||||
*/
|
||||
public interface IConfigurationBootstrap extends IDataBootstrap {
|
||||
|
||||
void loadRequiredData();
|
||||
|
||||
}
|
||||
|
|
@ -21,7 +21,6 @@
|
|||
package org.navalplanner.business.test.calendars.daos;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.CoreMatchers.not;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
|
@ -259,6 +258,9 @@ public class BaseCalendarDAOTest {
|
|||
|
||||
@Test
|
||||
public void getBaseCalendarsAndNotResourceCalendars() {
|
||||
List<BaseCalendar> baseCalendars = baseCalendarDAO.getBaseCalendars();
|
||||
int previous = baseCalendars.size();
|
||||
|
||||
BaseCalendar calendar1 = BaseCalendarTest.createBasicCalendar();
|
||||
calendar1.setName("Test1");
|
||||
BaseCalendar calendar2 = BaseCalendarTest.createBasicCalendar();
|
||||
|
|
@ -273,10 +275,8 @@ public class BaseCalendarDAOTest {
|
|||
baseCalendarDAO.save(resourceCalendar);
|
||||
baseCalendarDAO.flush();
|
||||
|
||||
List<BaseCalendar> baseCalendars = baseCalendarDAO.getBaseCalendars();
|
||||
assertThat(baseCalendars.size(), equalTo(2));
|
||||
assertThat(baseCalendars.get(0).getId(), not(resourceCalendar.getId()));
|
||||
assertThat(baseCalendars.get(1).getId(), not(resourceCalendar.getId()));
|
||||
baseCalendars = baseCalendarDAO.getBaseCalendars();
|
||||
assertThat(baseCalendars.size(), equalTo(previous + 2));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ import org.navalplanner.business.advance.entities.AdvanceType;
|
|||
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
|
||||
import org.navalplanner.business.advance.exceptions.DuplicateAdvanceAssignmentForOrderElementException;
|
||||
import org.navalplanner.business.advance.exceptions.DuplicateValueTrueReportGlobalAdvanceException;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
import org.navalplanner.business.orders.daos.IOrderElementDAO;
|
||||
|
|
@ -74,9 +75,13 @@ public class AddAdvanceAssignmentsToOrderElementTest {
|
|||
@Resource
|
||||
private IDataBootstrap defaultAdvanceTypesBootstrapListener;
|
||||
|
||||
@Resource
|
||||
private IDataBootstrap configurationBootstrap;
|
||||
|
||||
@Before
|
||||
public void loadRequiredaData() {
|
||||
defaultAdvanceTypesBootstrapListener.loadRequiredData();
|
||||
configurationBootstrap.loadRequiredData();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
|
|
@ -94,11 +99,14 @@ public class AddAdvanceAssignmentsToOrderElementTest {
|
|||
@Autowired
|
||||
private IAdvanceTypeDAO advanceTypeDao;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
private Session getSession() {
|
||||
return sessionFactory.getCurrentSession();
|
||||
}
|
||||
|
||||
private static Order createValidOrder() {
|
||||
private Order createValidOrder() {
|
||||
Order order = Order.create();
|
||||
order.setDescription("description");
|
||||
order.setCustomer("blabla");
|
||||
|
|
@ -106,6 +114,8 @@ public class AddAdvanceAssignmentsToOrderElementTest {
|
|||
order.setName("name");
|
||||
order.setResponsible("responsible");
|
||||
order.setCode("code");
|
||||
order.setCalendar(configurationDAO.getConfiguration()
|
||||
.getDefaultCalendar());
|
||||
return order;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ import org.junit.runner.RunWith;
|
|||
import org.navalplanner.business.IDataBootstrap;
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
|
|
@ -81,9 +82,13 @@ public class TaskElementDAOTest {
|
|||
@Resource
|
||||
private IDataBootstrap defaultAdvanceTypesBootstrapListener;
|
||||
|
||||
@Resource
|
||||
private IDataBootstrap configurationBootstrap;
|
||||
|
||||
@Before
|
||||
public void loadRequiredaData() {
|
||||
defaultAdvanceTypesBootstrapListener.loadRequiredData();
|
||||
configurationBootstrap.loadRequiredData();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
|
|
@ -101,6 +106,9 @@ public class TaskElementDAOTest {
|
|||
@Autowired
|
||||
private IAdHocTransactionService transactionService;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
private HoursGroup associatedHoursGroup;
|
||||
|
||||
private Task createValidTask() {
|
||||
|
|
@ -126,6 +134,8 @@ public class TaskElementDAOTest {
|
|||
order.setInitDate(new Date());
|
||||
order.setCode("code");
|
||||
order.add(orderLine);
|
||||
order.setCalendar(configurationDAO.getConfiguration()
|
||||
.getDefaultCalendar());
|
||||
try {
|
||||
orderDAO.save(order);
|
||||
sessionFactory.getCurrentSession().flush();
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public class BaseCalendarModelTest {
|
|||
|
||||
@Test
|
||||
public void testCreateAndSave() {
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(0));
|
||||
int previous = baseCalendarModel.getBaseCalendars().size();
|
||||
baseCalendarModel.initCreate();
|
||||
BaseCalendar baseCalendar = baseCalendarModel.getBaseCalendar();
|
||||
baseCalendar.setName("Test");
|
||||
|
|
@ -67,10 +67,13 @@ public class BaseCalendarModelTest {
|
|||
try {
|
||||
baseCalendarModel.confirmSave();
|
||||
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(1));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(0).getId(),
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(),
|
||||
equalTo(previous + 1));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(previous)
|
||||
.getId(),
|
||||
equalTo(baseCalendar.getId()));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(0).getHours(
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(previous)
|
||||
.getHours(
|
||||
new Date(), Days.MONDAY), equalTo(8));
|
||||
} catch (ValidationException e) {
|
||||
fail("It should not throw an exception");
|
||||
|
|
@ -89,28 +92,31 @@ public class BaseCalendarModelTest {
|
|||
|
||||
@Test
|
||||
public void testEditAndSave() throws ValidationException {
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(0));
|
||||
int previous = baseCalendarModel.getBaseCalendars().size();
|
||||
saveOneCalendar();
|
||||
|
||||
BaseCalendar baseCalendar = baseCalendarModel.getBaseCalendars().get(0);
|
||||
BaseCalendar baseCalendar = baseCalendarModel.getBaseCalendars().get(
|
||||
previous);
|
||||
baseCalendarModel.initEdit(baseCalendar);
|
||||
setHours(baseCalendarModel.getBaseCalendar(), 4);
|
||||
|
||||
baseCalendarModel.confirmSave();
|
||||
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(1));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(0).getId(),
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(),
|
||||
equalTo(previous + 1));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(previous).getId(),
|
||||
equalTo(baseCalendar.getId()));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(0).getHours(
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(previous).getHours(
|
||||
new Date(), Days.MONDAY), equalTo(4));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEditAndNewVersion() {
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(0));
|
||||
int previous = baseCalendarModel.getBaseCalendars().size();
|
||||
saveOneCalendar();
|
||||
|
||||
BaseCalendar baseCalendar = baseCalendarModel.getBaseCalendars().get(0);
|
||||
BaseCalendar baseCalendar = baseCalendarModel.getBaseCalendars().get(
|
||||
previous);
|
||||
baseCalendarModel.initEdit(baseCalendar);
|
||||
Date date = (new LocalDate()).plusWeeks(1)
|
||||
.toDateTimeAtStartOfDay().toDate();
|
||||
|
|
@ -119,10 +125,12 @@ public class BaseCalendarModelTest {
|
|||
try {
|
||||
baseCalendarModel.confirmSave();
|
||||
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(1));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(0).getHours(
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(),
|
||||
equalTo(previous + 1));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(previous)
|
||||
.getHours(
|
||||
date, Days.MONDAY), equalTo(4));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(0)
|
||||
assertThat(baseCalendarModel.getBaseCalendars().get(previous)
|
||||
.getCalendarDataVersions().size(), equalTo(2));
|
||||
} catch (ValidationException e) {
|
||||
fail("It should not throw an exception");
|
||||
|
|
@ -142,17 +150,21 @@ public class BaseCalendarModelTest {
|
|||
|
||||
@Test
|
||||
public void testRemove() {
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(0));
|
||||
int previous = baseCalendarModel.getBaseCalendars().size();
|
||||
saveOneCalendar();
|
||||
|
||||
BaseCalendar baseCalendar = baseCalendarModel.getBaseCalendars().get(0);
|
||||
BaseCalendar baseCalendar = baseCalendarModel.getBaseCalendars().get(
|
||||
previous);
|
||||
baseCalendarModel.initRemove(baseCalendar);
|
||||
baseCalendarModel.confirmRemove();
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(0));
|
||||
assertThat(baseCalendarModel.getBaseCalendars().size(),
|
||||
equalTo(previous));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPossibleParentCalendars() throws ValidationException {
|
||||
int previous = baseCalendarModel.getPossibleParentCalendars().size();
|
||||
|
||||
baseCalendarModel.initCreate();
|
||||
baseCalendarModel.getBaseCalendar().setName("Test");
|
||||
setHours(baseCalendarModel.getBaseCalendar(), 8);
|
||||
|
|
@ -171,11 +183,12 @@ public class BaseCalendarModelTest {
|
|||
List<BaseCalendar> possibleParentCalendars = baseCalendarModel
|
||||
.getPossibleParentCalendars();
|
||||
|
||||
assertThat(possibleParentCalendars.size(), equalTo(1));
|
||||
assertThat(possibleParentCalendars.get(0).getId(),
|
||||
assertThat(possibleParentCalendars.size(), equalTo(previous + 1));
|
||||
assertThat(possibleParentCalendars.get(previous).getId(),
|
||||
equalTo(parentNewVersion.getId()));
|
||||
assertThat(
|
||||
possibleParentCalendars.get(0).getCalendarDataVersions()
|
||||
possibleParentCalendars.get(previous)
|
||||
.getCalendarDataVersions()
|
||||
.size(), equalTo(2));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ import org.junit.runner.RunWith;
|
|||
import org.navalplanner.business.IDataBootstrap;
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
|
|
@ -80,9 +81,13 @@ public class OrderModelTest {
|
|||
@Resource
|
||||
private IDataBootstrap defaultAdvanceTypesBootstrapListener;
|
||||
|
||||
@Resource
|
||||
private IDataBootstrap configurationBootstrap;
|
||||
|
||||
@Before
|
||||
public void loadRequiredaData() {
|
||||
defaultAdvanceTypesBootstrapListener.loadRequiredData();
|
||||
configurationBootstrap.loadRequiredData();
|
||||
}
|
||||
|
||||
public static Date year(int year) {
|
||||
|
|
@ -92,17 +97,6 @@ public class OrderModelTest {
|
|||
return calendar.getTime();
|
||||
}
|
||||
|
||||
private static Order createValidOrder() {
|
||||
Order order = Order.create();
|
||||
order.setDescription("description");
|
||||
order.setCustomer("blabla");
|
||||
order.setInitDate(year(2000));
|
||||
order.setName("name");
|
||||
order.setResponsible("responsible");
|
||||
order.setCode("code");
|
||||
return order;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private IOrderModel orderModel;
|
||||
|
||||
|
|
@ -121,12 +115,28 @@ public class OrderModelTest {
|
|||
@Autowired
|
||||
private ICriterionsModel criterionModel;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
private Criterion criterion;
|
||||
|
||||
private Session getSession() {
|
||||
return sessionFactory.getCurrentSession();
|
||||
}
|
||||
|
||||
private Order createValidOrder() {
|
||||
Order order = Order.create();
|
||||
order.setDescription("description");
|
||||
order.setCustomer("blabla");
|
||||
order.setInitDate(year(2000));
|
||||
order.setName("name");
|
||||
order.setResponsible("responsible");
|
||||
order.setCode("code");
|
||||
order.setCalendar(configurationDAO.getConfiguration()
|
||||
.getDefaultCalendar());
|
||||
return order;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreation() throws ValidationException {
|
||||
Order order = createValidOrder();
|
||||
|
|
@ -187,7 +197,12 @@ public class OrderModelTest {
|
|||
@NotTransactional
|
||||
public void testOrderPreserved() throws ValidationException,
|
||||
InstanceNotFoundException {
|
||||
final Order order = createValidOrder();
|
||||
final Order order = adHocTransaction.runOnReadOnlyTransaction(new IOnTransaction<Order>() {
|
||||
@Override
|
||||
public Order execute() {
|
||||
return createValidOrder();
|
||||
}
|
||||
});
|
||||
final OrderElement[] containers = new OrderLineGroup[10];
|
||||
for (int i = 0; i < containers.length; i++) {
|
||||
containers[i] = adHocTransaction
|
||||
|
|
@ -272,7 +287,13 @@ public class OrderModelTest {
|
|||
@Test
|
||||
@NotTransactional
|
||||
public void testAddingOrderElement() throws Exception {
|
||||
final Order order = createValidOrder();
|
||||
final Order order = adHocTransaction
|
||||
.runOnReadOnlyTransaction(new IOnTransaction<Order>() {
|
||||
@Override
|
||||
public Order execute() {
|
||||
return createValidOrder();
|
||||
}
|
||||
});
|
||||
OrderLineGroup container = adHocTransaction
|
||||
.runOnTransaction(new IOnTransaction<OrderLineGroup>() {
|
||||
@Override
|
||||
|
|
@ -321,7 +342,13 @@ public class OrderModelTest {
|
|||
@NotTransactional
|
||||
public void testManyToManyHoursGroupCriterionMapping() throws Exception {
|
||||
givenCriterion();
|
||||
final Order order = createValidOrder();
|
||||
final Order order = adHocTransaction
|
||||
.runOnReadOnlyTransaction(new IOnTransaction<Order>() {
|
||||
@Override
|
||||
public Order execute() {
|
||||
return createValidOrder();
|
||||
}
|
||||
});
|
||||
|
||||
OrderLine orderLine = OrderLine.create();
|
||||
orderLine.setName("Order element");
|
||||
|
|
|
|||
|
|
@ -57,6 +57,9 @@
|
|||
<value>
|
||||
org/navalplanner/business/requirements/entities/Requirements.hbm.xml
|
||||
</value>
|
||||
<value>
|
||||
org/navalplanner/business/common/entities/Configuration.hbm.xml
|
||||
</value>
|
||||
</list>
|
||||
</property>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue