This is an automated email from the ASF dual-hosted git repository. juhan pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract-cn-cheques.git
commit af64ef2559252f3f32b80529ab4e520070950879 Author: mgeiss <[email protected]> AuthorDate: Mon Sep 11 13:43:43 2017 +0200 fixed issue with processing open cheques --- .../src/main/java/io/mifos/cheque/TestCheques.java | 48 +++++++++++++++++++++- .../internal/command/handler/ChequeAggregate.java | 2 +- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/component-test/src/main/java/io/mifos/cheque/TestCheques.java b/component-test/src/main/java/io/mifos/cheque/TestCheques.java index 22cd88e..0acbd3b 100644 --- a/component-test/src/main/java/io/mifos/cheque/TestCheques.java +++ b/component-test/src/main/java/io/mifos/cheque/TestCheques.java @@ -35,7 +35,14 @@ import org.junit.Assert; import org.junit.Test; import org.mockito.Matchers; import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.validation.AbstractErrors; +import org.springframework.validation.BeanPropertyBindingResult; +import org.springframework.validation.BindingResult; +import org.springframework.validation.Errors; +import org.springframework.validation.Validator; +import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import java.util.Collections; import java.util.UUID; @@ -51,6 +58,9 @@ public class TestCheques extends AbstractChequeTest { @MockBean private AccountingService accountingServiceSpy; + @Autowired + private Validator validator; + public TestCheques() { super(); } @@ -158,7 +168,6 @@ public class TestCheques extends AbstractChequeTest { .doAnswer(invocation -> false) .when(this.accountingServiceSpy).accountExists(randomCheque.getMicr().getAccountNumber()); - final ChequeTransaction chequeTransaction = new ChequeTransaction(); chequeTransaction.setChequesReceivableAccount(RandomStringUtils.randomAlphabetic(34)); chequeTransaction.setCheque(randomCheque); @@ -209,4 +218,41 @@ public class TestCheques extends AbstractChequeTest { .verify(this.accountingServiceSpy, Mockito.times(2)) .processJournalEntry(Matchers.any(JournalEntry.class)); } + + @Test + public void shouldProcessOpenCheque() throws Exception { + final Cheque randomCheque = Fixture.createRandomCheque(); + randomCheque.setOpenCheque(Boolean.TRUE); + + Mockito + .doAnswer(invocation -> false) + .when(this.organizationServiceSpy).officeExistsByBranchSortCode(randomCheque.getMicr().getBranchSortCode()); + + Mockito + .doAnswer(invocation -> false) + .when(this.accountingServiceSpy).accountExists(randomCheque.getMicr().getAccountNumber()); + + Mockito.doAnswer(invocation -> { + final JournalEntry journalEntry = invocation.getArgumentAt(0, JournalEntry.class); + final BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(journalEntry, "journalEntry"); + this.validator.validate(journalEntry, bindingResult); + if (bindingResult.getErrorCount() != 0) { + bindingResult.getAllErrors().forEach(objectError -> { + System.out.println(objectError.toString()); + }); + } + return invocation.getMethod().getReturnType(); + }).when(this.accountingServiceSpy).processJournalEntry(Matchers.any(JournalEntry.class)); + + final ChequeTransaction chequeTransaction = new ChequeTransaction(); + chequeTransaction.setChequesReceivableAccount(RandomStringUtils.randomAlphabetic(34)); + chequeTransaction.setCheque(randomCheque); + chequeTransaction.setCreditorAccountNumber(RandomStringUtils.randomAlphanumeric(34)); + super.chequeManager.process(chequeTransaction); + + Assert.assertTrue( + super.eventRecorder.wait(EventConstants.CHEQUE_TRANSACTION, MICRParser.toIdentifier(randomCheque.getMicr())) + ); + + } } diff --git a/service/src/main/java/io/mifos/cheque/service/internal/command/handler/ChequeAggregate.java b/service/src/main/java/io/mifos/cheque/service/internal/command/handler/ChequeAggregate.java index a3b1762..3bb746a 100644 --- a/service/src/main/java/io/mifos/cheque/service/internal/command/handler/ChequeAggregate.java +++ b/service/src/main/java/io/mifos/cheque/service/internal/command/handler/ChequeAggregate.java @@ -138,7 +138,7 @@ public class ChequeAggregate { final JournalEntry journalEntry = new JournalEntry(); journalEntry.setTransactionIdentifier("chq-tx-" + UUID.randomUUID().toString()); final String transactionType = - chequeEntity.getOpenCheque() != null && chequeEntity.getOpenCheque() ? "OPCQ " : "ORCQ"; + chequeEntity.getOpenCheque() != null && chequeEntity.getOpenCheque() ? "OPCQ" : "ORCQ"; journalEntry.setTransactionType(transactionType); journalEntry.setTransactionDate(DateConverter.toIsoString(chequeEntity.getCreatedOn())); journalEntry.setMessage(transactionType);
