Search in sources :

Example 11 with Person

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);
}
Also used : PartyRole(org.estatio.module.party.dom.role.PartyRole) DisabledException(org.apache.isis.applib.services.wrapper.DisabledException) PartyRoleType(org.estatio.module.party.dom.role.PartyRoleType) Person(org.estatio.module.party.dom.Person) DisabledException(org.apache.isis.applib.services.wrapper.DisabledException) Test(org.junit.Test)

Example 12 with Person

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);
}
Also used : DocumentTypesAndTemplatesForCapexFixture(org.estatio.module.capex.seed.DocumentTypesAndTemplatesForCapexFixture) FixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript) Person(org.estatio.module.party.dom.Person) CapexChargeHierarchyXlsxFixture(org.estatio.module.charge.fixtures.incoming.builders.CapexChargeHierarchyXlsxFixture) Before(org.junit.Before)

Example 13 with Person

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);
}
Also used : PartyRole(org.estatio.module.party.dom.role.PartyRole) Task(org.estatio.module.capex.dom.task.Task) PartyRoleType(org.estatio.module.party.dom.role.PartyRoleType) BankAccount(org.estatio.module.financial.dom.BankAccount) Person(org.estatio.module.party.dom.Person) BankAccountVerificationStateTransition(org.estatio.module.capex.dom.bankaccount.verification.BankAccountVerificationStateTransition) Before(org.junit.Before)

Example 14 with Person

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;
}
Also used : Person(org.estatio.module.party.dom.Person) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Example 15 with Person

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);
}
Also used : PartyRoleType(org.estatio.module.party.dom.role.PartyRoleType) Person(org.estatio.module.party.dom.Person) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Aggregations

Person (org.estatio.module.party.dom.Person)28 PartyRoleType (org.estatio.module.party.dom.role.PartyRoleType)9 Test (org.junit.Test)9 Programmatic (org.apache.isis.applib.annotation.Programmatic)7 Task (org.estatio.module.capex.dom.task.Task)4 PartyRole (org.estatio.module.party.dom.role.PartyRole)4 Organisation (org.estatio.module.party.dom.Organisation)3 IPartyRoleType (org.estatio.module.party.dom.role.IPartyRoleType)3 Before (org.junit.Before)3 List (java.util.List)2 DisabledException (org.apache.isis.applib.services.wrapper.DisabledException)2 ApplicationTenancy (org.isisaddons.module.security.dom.tenancy.ApplicationTenancy)2 Expectations (org.jmock.Expectations)2 Lists (com.google.common.collect.Lists)1 Collectors (java.util.stream.Collectors)1 Data (lombok.Data)1 EqualsAndHashCode (lombok.EqualsAndHashCode)1 Getter (lombok.Getter)1 Setter (lombok.Setter)1 ToString (lombok.ToString)1