public void shouldShowChartOfAccounts()

in component-test/src/main/java/org/apache/fineract/cn/accounting/TestChartOfAccounts.java [36:85]


  public void shouldShowChartOfAccounts() throws Exception {
    final Ledger parentRevenueLedger = LedgerGenerator.createLedger("10000", AccountType.REVENUE);
    this.testSubject.createLedger(parentRevenueLedger);
    this.eventRecorder.wait(EventConstants.POST_LEDGER, parentRevenueLedger.getIdentifier());

    final Ledger interestRevenueLedger = LedgerGenerator.createLedger("11000", AccountType.REVENUE);
    this.testSubject.addSubLedger(parentRevenueLedger.getIdentifier(), interestRevenueLedger);
    this.eventRecorder.wait(EventConstants.POST_LEDGER, interestRevenueLedger.getIdentifier());

    final Account consumerInterestRevenueAccount =
        AccountGenerator.createAccount(interestRevenueLedger.getIdentifier(), "11100", AccountType.REVENUE);
    this.testSubject.createAccount(consumerInterestRevenueAccount);
    this.eventRecorder.wait(EventConstants.POST_ACCOUNT, consumerInterestRevenueAccount.getIdentifier());

    final Ledger feeRevenueLedger = LedgerGenerator.createLedger("12000", AccountType.REVENUE);
    this.testSubject.addSubLedger(parentRevenueLedger.getIdentifier(), feeRevenueLedger);
    this.eventRecorder.wait(EventConstants.POST_LEDGER, feeRevenueLedger.getIdentifier());

    final Ledger specialFeeRevenueLedger = LedgerGenerator.createLedger("12100", AccountType.REVENUE);
    this.testSubject.addSubLedger(feeRevenueLedger.getIdentifier(), specialFeeRevenueLedger);
    this.eventRecorder.wait(EventConstants.POST_LEDGER, specialFeeRevenueLedger.getIdentifier());

    final Ledger parentAssetLedger = LedgerGenerator.createLedger("70000", AccountType.ASSET);
    this.testSubject.createLedger(parentAssetLedger);
    this.eventRecorder.wait(EventConstants.POST_LEDGER, parentAssetLedger.getIdentifier());

    final Ledger consumerLoanAssetLedger = LedgerGenerator.createLedger("73000", AccountType.ASSET);
    consumerLoanAssetLedger.setShowAccountsInChart(Boolean.FALSE);
    this.testSubject.addSubLedger(parentAssetLedger.getIdentifier(), consumerLoanAssetLedger);
    this.eventRecorder.wait(EventConstants.POST_LEDGER, consumerLoanAssetLedger.getIdentifier());

    for (int i = 1; i < 100; i++) {
      final String identifier = Integer.valueOf(73000 + i).toString();
      final Account consumerLoanAccount =
          AccountGenerator.createAccount(consumerLoanAssetLedger.getIdentifier(), identifier, AccountType.ASSET);
      this.testSubject.createAccount(consumerLoanAccount);
      this.eventRecorder.wait(EventConstants.POST_ACCOUNT, identifier);
    }

    final List<ChartOfAccountEntry> chartOfAccounts = this.testSubject.getChartOfAccounts();
    Assert.assertNotNull(chartOfAccounts);
    Assert.assertEquals(7, chartOfAccounts.size());
    Assert.assertEquals(Integer.valueOf(0), chartOfAccounts.get(0).getLevel());
    Assert.assertEquals(Integer.valueOf(1), chartOfAccounts.get(1).getLevel());
    Assert.assertEquals(Integer.valueOf(2), chartOfAccounts.get(2).getLevel());
    Assert.assertEquals(Integer.valueOf(1), chartOfAccounts.get(3).getLevel());
    Assert.assertEquals(Integer.valueOf(2), chartOfAccounts.get(4).getLevel());
    Assert.assertEquals(Integer.valueOf(0), chartOfAccounts.get(5).getLevel());
    Assert.assertEquals(Integer.valueOf(1), chartOfAccounts.get(6).getLevel());
  }