use of org.estatio.module.party.dom.Person in project estatio by estatio.
the class IncomingInvoiceApprovalState_IntegTest method complete_works_when_having_appropriate_role_type_test.
@Test
public void complete_works_when_having_appropriate_role_type_test() {
Exception error = new Exception();
// given
Person personEmma = (Person) partyRepository.findPartyByReference(Person_enum.EmmaTreasurerGb.getRef());
PartyRoleType roleAsPropertyManager = partyRoleTypeRepository.findByKey("PROPERTY_MANAGER");
personEmma.addRole(roleAsPropertyManager);
transactionService.nextTransaction();
SortedSet<PartyRole> rolesforEmma = personEmma.getRoles();
assertThat(rolesforEmma.size()).isEqualTo(2);
assertThat(rolesforEmma.first().getRoleType()).isEqualTo(partyRoleTypeRepository.findByKey("PROPERTY_MANAGER"));
// when
try {
// workaround: clear MeService#me cache
queryResultsCache.resetForNextTransaction();
sudoService.sudo(Person_enum.EmmaTreasurerGb.getRef().toLowerCase(), (Runnable) () -> wrap(mixin(IncomingInvoice_complete.class, incomingInvoice)).act("PROPERTY_MANAGER", null, null));
} catch (DisabledException e) {
error = e;
}
assertThat(error.getMessage()).isNull();
assertThat(incomingInvoice.getApprovalState()).isEqualTo(IncomingInvoiceApprovalState.COMPLETED);
}
use of org.estatio.module.party.dom.Person in project estatio by estatio.
the class IncomingInvoiceApprovalState_IntegTest method setupData.
@Before
public void setupData() {
runFixtureScript(new FixtureScript() {
@Override
protected void execute(final FixtureScript.ExecutionContext ec) {
ec.executeChild(this, new DocumentTypesAndTemplatesForCapexFixture());
ec.executeChild(this, new CapexChargeHierarchyXlsxFixture());
ec.executeChildren(this, IncomingInvoice_enum.fakeInvoice2Pdf, BankAccount_enum.TopModelGb, Person_enum.EmmaTreasurerGb, Person_enum.JonathanPropertyManagerGb, Person_enum.PeterPanProjectManagerGb, Person_enum.OscarCountryDirectorGb);
}
});
Person Peter = Person_enum.PeterPanProjectManagerGb.findUsing(serviceRegistry);
Peter.addRole(ProjectRoleTypeEnum.PROJECT_MANAGER);
}
use of org.estatio.module.party.dom.Person in project estatio by estatio.
the class EnforceTaskAssignmentPolicySubscriber_applyPolicy_Test method setUp.
@Before
public void setUp() throws Exception {
subscriber = new EnforceTaskAssignmentPolicySubscriber();
subscriber.stateTransitionService = mockStateTransitionService;
subscriber.personRepository = mockPersonRepository;
subscriber.metaModelService3 = mockMetaModelService3;
domainObject = new BankAccount();
stateTransitionClass = BankAccountVerificationStateTransition.class;
pendingTransition = new BankAccountVerificationStateTransition();
personTaskAssignedTo = new Person();
personTaskAssignedTo.setReference("JBLOGGS");
roleTaskAssignedTo = new PartyRoleType();
roleTaskAssignedTo.setKey("Treasurer");
pendingTask = new Task(roleTaskAssignedTo, personTaskAssignedTo, "some description", LocalDateTime.now(), // objectType of transition class
"bankAccount.BankAccountVerificationStateTransition");
pendingTransition.setTask(pendingTask);
personForMe = new Person();
personForMe.getRoles().add(new PartyRole(personForMe, roleTaskAssignedTo));
assertThat(pendingTransition.getTask()).isNotNull();
assertThat(personForMe.getRoles()).isNotEmpty();
assertThat(Lists.newArrayList(personForMe.getRoles()).stream().map(PartyRole::getRoleType)).contains(roleTaskAssignedTo);
}
use of org.estatio.module.party.dom.Person in project estatio by estatio.
the class TaskRepository method findIncompleteForMe.
/**
* Incomplete, assigned explicitly to me, AND ALSO any tasks not assigned to anyone but for which
* I have the (party) roles to perform them (so should be part of "my tasks")
*/
@Programmatic
public List<Task> findIncompleteForMe() {
final Person meAsPerson = meAsPerson();
if (meAsPerson == null) {
return Lists.newArrayList();
}
final List<Task> tasks = findIncompleteForMeOnly();
final List<Task> myRolesTasksUnassigned = findIncompleteForMyRolesAndUnassigned();
tasks.addAll(myRolesTasksUnassigned);
return tasks;
}
use of org.estatio.module.party.dom.Person in project estatio by estatio.
the class TaskRepository method findIncompleteForMyRolesAndUnassignedAndCreatedOnBefore.
/**
* Those tasks which are assigned to no-one, but for which I have the (party) roles to perform before {@param createdOn}
* @param createdOn
* @return
*/
@Programmatic
public List<Task> findIncompleteForMyRolesAndUnassignedAndCreatedOnBefore(final LocalDateTime createdOn) {
final Person meAsPerson = meAsPerson();
if (meAsPerson == null) {
return Lists.newArrayList();
}
final List<PartyRoleType> myRoleTypes = partyRoleTypesFor(meAsPerson);
return findIncompleteByUnassignedForRolesAndCreatedOnBefore(myRoleTypes, createdOn);
}
Aggregations