ItEr24S10CUAsignacionCalendarioLaboralRecursoItEr23S13: Modified BaseCalendarDAO to ignore ResourceCalendar instances.
This commit is contained in:
parent
307fc4de17
commit
92d42b5b85
4 changed files with 67 additions and 5 deletions
|
|
@ -1,11 +1,13 @@
|
|||
package org.navalplanner.business.calendars.daos;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.hibernate.Criteria;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.calendars.entities.ResourceCalendar;
|
||||
import org.navalplanner.business.common.daos.GenericDAOHibernate;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
|
|
@ -23,7 +25,19 @@ public class BaseCalendarDAO extends GenericDAOHibernate<BaseCalendar, Long>
|
|||
|
||||
@Override
|
||||
public List<BaseCalendar> getBaseCalendars() {
|
||||
return list(BaseCalendar.class);
|
||||
List<BaseCalendar> list = list(BaseCalendar.class);
|
||||
removeResourceCalendarInstances(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
private void removeResourceCalendarInstances(List<BaseCalendar> list) {
|
||||
for (Iterator<BaseCalendar> iterator = list.iterator(); iterator
|
||||
.hasNext();) {
|
||||
BaseCalendar baseCalendar = iterator.next();
|
||||
if (baseCalendar instanceof ResourceCalendar) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -36,7 +50,9 @@ public class BaseCalendarDAO extends GenericDAOHibernate<BaseCalendar, Long>
|
|||
.createCriteria("calendarDataVersions", "v");
|
||||
c.add(Restrictions.eq("v.parent", baseCalendar));
|
||||
|
||||
return (List<BaseCalendar>) c.list();
|
||||
List<BaseCalendar> list = (List<BaseCalendar>) c.list();
|
||||
removeResourceCalendarInstances(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -48,7 +64,9 @@ public class BaseCalendarDAO extends GenericDAOHibernate<BaseCalendar, Long>
|
|||
Criteria c = getSession().createCriteria(BaseCalendar.class);
|
||||
c.add(Restrictions.eq("name", baseCalendar.getName()));
|
||||
|
||||
return (List<BaseCalendar>) c.list();
|
||||
List<BaseCalendar> list = (List<BaseCalendar>) c.list();
|
||||
removeResourceCalendarInstances(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,9 +28,8 @@ public class BaseCalendar extends BaseEntity {
|
|||
private static final Integer DEFAULT_VALUE = 0;
|
||||
|
||||
public static BaseCalendar create() {
|
||||
BaseCalendar baseCalendar = new BaseCalendar();
|
||||
BaseCalendar baseCalendar = new BaseCalendar(CalendarData.create());
|
||||
baseCalendar.setNewObject(true);
|
||||
baseCalendar.calendarDataVersions.add(CalendarData.create());
|
||||
return baseCalendar;
|
||||
}
|
||||
|
||||
|
|
@ -51,6 +50,10 @@ public class BaseCalendar extends BaseEntity {
|
|||
public BaseCalendar() {
|
||||
}
|
||||
|
||||
protected BaseCalendar(CalendarData calendarData) {
|
||||
calendarDataVersions.add(calendarData);
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,4 +9,21 @@ import org.navalplanner.business.resources.entities.Resource;
|
|||
*/
|
||||
public class ResourceCalendar extends BaseCalendar {
|
||||
|
||||
public static ResourceCalendar create() {
|
||||
ResourceCalendar resourceCalendar = new ResourceCalendar(CalendarData
|
||||
.create());
|
||||
resourceCalendar.setNewObject(true);
|
||||
return resourceCalendar;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for hibernate. Do not use!
|
||||
*/
|
||||
public ResourceCalendar() {
|
||||
}
|
||||
|
||||
private ResourceCalendar(CalendarData calendarData) {
|
||||
super(calendarData);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
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;
|
||||
|
|
@ -18,6 +19,7 @@ import org.junit.runner.RunWith;
|
|||
import org.navalplanner.business.calendars.daos.BaseCalendarDAO;
|
||||
import org.navalplanner.business.calendars.daos.IBaseCalendarDAO;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.calendars.entities.ResourceCalendar;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.test.calendars.entities.BaseCalendarTest;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -275,4 +277,26 @@ public class BaseCalendarDAOTest {
|
|||
assertThat(list.get(0).getId(), equalTo(calendar.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBaseCalendarsAndNotResourceCalendars() {
|
||||
BaseCalendar calendar1 = BaseCalendarTest.createBasicCalendar();
|
||||
calendar1.setName("Test1");
|
||||
BaseCalendar calendar2 = BaseCalendarTest.createBasicCalendar();
|
||||
calendar1.setName("Test2");
|
||||
|
||||
ResourceCalendar resourceCalendar = ResourceCalendar.create();
|
||||
resourceCalendar.setName("testResourceCalendar");
|
||||
BaseCalendarTest.setHoursForAllDays(resourceCalendar, 8);
|
||||
|
||||
baseCalendarDAO.save(calendar1);
|
||||
baseCalendarDAO.save(calendar2);
|
||||
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()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue