Search in sources :

Example 26 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class Order_2_IntegTest method can_amend_when_approved.

@Test
public void can_amend_when_approved() throws Exception {
    // given
    assertNotNull(order);
    approve(Person_enum.JonathanPropertyManagerGb.getSecurityUserName(), order);
    assertThat(order.getApprovalState()).isEqualTo(OrderApprovalState.APPROVED);
    // when
    final Order_amend mixin = mixin(Order_amend.class, order);
    final String role = mixin.default0Act();
    final Person person = mixin.default1Act();
    final String comment = "some reason";
    // workaround: clear MeService#me cache
    queryResultsCache.resetForNextTransaction();
    sudoService.sudo(Person_enum.JonathanPropertyManagerGb.getSecurityUserName(), () -> {
        wrap(mixin).act(role, person, comment);
    });
    // then
    assertThat(order.getApprovalState()).isEqualTo(OrderApprovalState.NEW);
}
Also used : Order_amend(org.estatio.module.capex.dom.order.approval.triggers.Order_amend) Person(org.estatio.module.party.dom.Person) Test(org.junit.Test)

Example 27 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class Order_2_IntegTest method approve.

private void approve(final String username, final Order order) {
    final Order_completeWithApproval mixin = mixin(Order_completeWithApproval.class, order);
    final Person approvedBy = personRepository.autoComplete("***").get(0);
    final LocalDate approvedOn = clockService.now();
    final String comment = "some comment";
    // workaround: clear MeService#me cache
    queryResultsCache.resetForNextTransaction();
    sudoService.sudo(username, () -> {
        wrap(mixin).act(approvedBy, approvedOn, comment);
    });
}
Also used : Order_completeWithApproval(org.estatio.module.capex.dom.order.approval.triggers.Order_completeWithApproval) Person(org.estatio.module.party.dom.Person) LocalDate(org.joda.time.LocalDate)

Example 28 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class BankAccountVerificationState_IntegTest method reject_then_discard_then_update_proof_works_test.

@Test
public void reject_then_discard_then_update_proof_works_test() {
    // given
    Person personEmmaTreasurer = Person_enum.EmmaTreasurerGb.findUsing(serviceRegistry);
    PartyRoleType typeForTreasurer = partyRoleTypeRepository.findByKey(PartyRoleTypeEnum.TREASURER.getKey());
    PartyRoleType typeForPropertyManager = partyRoleTypeRepository.findByKey(FixedAssetRoleTypeEnum.PROPERTY_MANAGER.getKey());
    assertThat(taskRepository.findIncompleteByRole(typeForPropertyManager).size()).isEqualTo(2);
    // when
    // workaround: clear MeService#me cache
    queryResultsCache.resetForNextTransaction();
    sudoService.sudo(personEmmaTreasurer.getUsername(), (Runnable) () -> wrap(mixin(BankAccount_rejectProof.class, bankAccount)).act("PROPERTY_MANAGER", null, "NO GOOD"));
    // then
    assertState(bankAccount, BankAccountVerificationState.AWAITING_PROOF);
    assertThat(taskRepository.findIncompleteByRole(typeForTreasurer).size()).isEqualTo(0);
    assertThat(taskRepository.findIncompleteByRole(typeForPropertyManager).size()).isEqualTo(3);
    // and given
    Person jonathanPropManager = Person_enum.JonathanPropertyManagerGb.findUsing(serviceRegistry);
    // and when
    // workaround: clear MeService#me cache
    queryResultsCache.resetForNextTransaction();
    sudoService.sudo(jonathanPropManager.getUsername(), (Runnable) () -> wrap(mixin(BankAccount_discard.class, bankAccount)).act("DISCARDING"));
    // then
    assertState(bankAccount, BankAccountVerificationState.DISCARDED);
    assertThat(taskRepository.findIncompleteByRole(typeForTreasurer).size()).isEqualTo(0);
    assertThat(taskRepository.findIncompleteByRole(typeForPropertyManager).size()).isEqualTo(2);
    // and when 'resurrecting'
    // workaround: clear MeService#me cache
    queryResultsCache.resetForNextTransaction();
    sudoService.sudo(jonathanPropManager.getUsername(), (Runnable) () -> wrap(mixin(BankAccount_proofUpdated.class, bankAccount)).act("TREASURER", null, null));
    // then
    assertState(bankAccount, BankAccountVerificationState.NOT_VERIFIED);
    assertThat(taskRepository.findIncompleteByRole(typeForTreasurer).size()).isEqualTo(1);
    assertThat(taskRepository.findIncompleteByRole(typeForPropertyManager).size()).isEqualTo(2);
    // and when discarding again by treasurer
    // workaround: clear MeService#me cache
    queryResultsCache.resetForNextTransaction();
    sudoService.sudo(personEmmaTreasurer.getUsername(), (Runnable) () -> wrap(mixin(BankAccount_discard.class, bankAccount)).act("DISCARDING"));
    assertState(bankAccount, BankAccountVerificationState.DISCARDED);
    assertThat(taskRepository.findIncompleteByRole(typeForTreasurer).size()).isEqualTo(0);
}
Also used : PartyRoleType(org.estatio.module.party.dom.role.PartyRoleType) Person(org.estatio.module.party.dom.Person) Test(org.junit.Test)

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