use of org.mifos.domain.builders.OfficeBuilder in project head by mifos.
the class HolidayDaoHibernateIntegrationTest method shouldfindCurrentAndFutureOfficeHolidaysEarliestFirst.
@Test
public void shouldfindCurrentAndFutureOfficeHolidaysEarliestFirst() throws Exception {
DateTime yesterday = new DateTime().minusDays(1);
Set<HolidayBO> holidays;
OfficeBO headOffice = IntegrationTestObjectMother.findOfficeById(Short.valueOf("1"));
holidays = new HashSet<HolidayBO>();
holidays.add((HolidayBO) new HolidayBuilder().withName("Fourth").from(yesterday.plusWeeks(4)).to(yesterday.plusWeeks(5)).build());
holidays.add((HolidayBO) new HolidayBuilder().withName("Second").from(yesterday.plusDays(1)).to(yesterday.plusWeeks(7)).build());
headOffice.setHolidays(holidays);
IntegrationTestObjectMother.createOffice(headOffice);
// builder not setting searchId correctly due to not going thru office.save (which uses HierarchyManager)
String headOfficeSearchId = headOffice.getSearchId();
OfficeBO areaOffice = new OfficeBuilder().withName("Area Office").withSearchId(headOfficeSearchId + "25.").withParentOffice(headOffice).withGlobalOfficeNum("area56").build();
holidays = new HashSet<HolidayBO>();
holidays.add((HolidayBO) new HolidayBuilder().withName("Fifth").from(yesterday.plusWeeks(8)).to(yesterday.plusWeeks(9)).build());
areaOffice.setHolidays(holidays);
IntegrationTestObjectMother.createOffice(areaOffice);
OfficeBO myOffice = new OfficeBuilder().withName("My Office").withSearchId(headOfficeSearchId + "25.1.").withParentOffice(areaOffice).withGlobalOfficeNum("my001").build();
holidays = new HashSet<HolidayBO>();
holidays.add((HolidayBO) new HolidayBuilder().withName("Third").from(yesterday.plusWeeks(3)).to(yesterday.plusWeeks(4)).build());
holidays.add((HolidayBO) new HolidayBuilder().withName("First").from(yesterday).to(yesterday.plusWeeks(2)).build());
myOffice.setHolidays(holidays);
IntegrationTestObjectMother.createOffice(myOffice);
OfficeBO anotherOffice = new OfficeBuilder().withName("Another Unconnected Office").withSearchId(headOfficeSearchId + "26.").withParentOffice(headOffice).withGlobalOfficeNum("n/a001").build();
holidays = new HashSet<HolidayBO>();
holidays.add((HolidayBO) new HolidayBuilder().withName("N/A").from(yesterday.minusWeeks(3)).to(yesterday.plusWeeks(4)).build());
anotherOffice.setHolidays(holidays);
IntegrationTestObjectMother.createOffice(anotherOffice);
List<Holiday> myHolidays = holidayDao.findCurrentAndFutureOfficeHolidaysEarliestFirst(myOffice.getOfficeId());
assertThat(myHolidays.size(), is(5));
assertThat(myHolidays.get(0).getName(), is("First"));
assertThat(myHolidays.get(1).getName(), is("Second"));
assertThat(myHolidays.get(2).getName(), is("Third"));
assertThat(myHolidays.get(3).getName(), is("Fourth"));
assertThat(myHolidays.get(4).getName(), is("Fifth"));
}
use of org.mifos.domain.builders.OfficeBuilder in project head by mifos.
the class GroupUpdateTest method validatesNameOfGroupIsNotTakenWhenNameIsUpdatedToDifferentValue.
@Test
public void validatesNameOfGroupIsNotTakenWhenNameIsUpdatedToDifferentValue() throws Exception {
// setup
UserContext userContext = TestUtils.makeUser();
GroupUpdate groupUpdate = new GroupUpdateBuilder().build();
// stubbing
when(customerDao.findGroupBySystemId(groupUpdate.getGlobalCustNum())).thenReturn(mockedGroup);
when(mockedGroup.isNameDifferent(groupUpdate.getDisplayName())).thenReturn(true);
when(mockedGroup.getOffice()).thenReturn(new OfficeBuilder().build());
// exercise test
customerService.updateGroup(userContext, groupUpdate);
// verification
verify(mockedGroup).setDisplayName(groupUpdate.getDisplayName());
verify(customerDao).validateGroupNameIsNotTakenForOffice(anyString(), anyShort());
}
use of org.mifos.domain.builders.OfficeBuilder in project head by mifos.
the class GroupValidationTest method givenGroupWithNullMeetingShouldThrowBusinessRuleException.
@Test(expected = BusinessRuleException.class)
public void givenGroupWithNullMeetingShouldThrowBusinessRuleException() {
OfficeBO office = new OfficeBuilder().build();
PersonnelBO loanOfficer = new PersonnelBuilder().asLoanOfficer().build();
group = new GroupBuilder().withName("group-On-branch").withOffice(office).withLoanOfficer(loanOfficer).withMeeting(null).buildAsTopOfHierarchy();
}
use of org.mifos.domain.builders.OfficeBuilder in project head by mifos.
the class GroupValidationTest method givenGroupWithNullParentShouldThrowIllegalArgumentException.
@Test(expected = IllegalArgumentException.class)
public void givenGroupWithNullParentShouldThrowIllegalArgumentException() {
OfficeBO office = new OfficeBuilder().build();
PersonnelBO loanOfficer = new PersonnelBuilder().asLoanOfficer().build();
MeetingBO meeting = new MeetingBuilder().customerMeeting().build();
group = new GroupBuilder().withName("group-On-center").withOffice(office).withLoanOfficer(loanOfficer).withMeeting(meeting).withParentCustomer(null).build();
}
use of org.mifos.domain.builders.OfficeBuilder in project head by mifos.
the class GroupValidationTest method loanOfficerMustBeAssigned.
@Test
public void loanOfficerMustBeAssigned() {
OfficeBO office = new OfficeBuilder().build();
group = new GroupBuilder().withName("group-On-branch").withOffice(office).withLoanOfficer(null).buildAsTopOfHierarchy();
try {
group.validate();
fail("should throw customer exception as loan officer must exist when creating group under a branch.");
} catch (CustomerException e) {
assertThat(e.getKey(), is(CustomerConstants.ERRORS_SELECT_LOAN_OFFICER));
}
}
Aggregations