public void documentFetchLedgers()

in component-test/src/main/java/org/apache/fineract/cn/accounting/LedgerApiDocumentation.java [115:220]


  public void documentFetchLedgers ( ) throws Exception {

    final Ledger ledgerOne = LedgerGenerator.createRandomLedger();
    ledgerOne.setIdentifier("1021");
    ledgerOne.setName("Name of " + ledgerOne.getIdentifier());
    ledgerOne.setDescription("Description of " + ledgerOne.getIdentifier());
    ledgerOne.setShowAccountsInChart(Boolean.TRUE);

    final Ledger ledgerTwo = LedgerGenerator.createRandomLedger();
    ledgerTwo.setIdentifier("1022");
    ledgerTwo.setName("Name of " + ledgerTwo.getIdentifier());
    ledgerTwo.setDescription("Description of " + ledgerTwo.getIdentifier());
    ledgerTwo.setShowAccountsInChart(Boolean.FALSE);

    final Ledger ledgerThree = LedgerGenerator.createRandomLedger();
    ledgerThree.setIdentifier("1023");
    ledgerThree.setName("Name of " + ledgerThree.getIdentifier());
    ledgerThree.setDescription("Description of " + ledgerThree.getIdentifier());
    ledgerThree.setShowAccountsInChart(Boolean.TRUE);

    List <Ledger> ledgerList = new ArrayList <>();
    Stream.of(ledgerOne, ledgerTwo, ledgerThree).forEach(ledger -> {
      ledgerList.add(ledger);
    });

    ledgerList.stream()
            .forEach(ledger -> {
              this.testSubject.createLedger(ledger);
              try {
                this.eventRecorder.wait(EventConstants.POST_LEDGER, ledger.getIdentifier());
              } catch (InterruptedException e) {
                e.printStackTrace();
              }
            });

    this.mockMvc.perform(get("/ledgers")
            .contentType(MediaType.APPLICATION_JSON_VALUE)
            .accept(MediaType.ALL_VALUE))
            .andExpect(status().isOk())
            .andDo(document("document-fetch-ledgers", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
                    responseFields(
                            fieldWithPath("ledgers").type("List<Ledger>").description("List of Ledgers"),
                            fieldWithPath("ledgers[].type").description("AccountType").description("Type of first ledger " +
                                    " + \n" +
                                    " + \n" +
                                    " *enum* _AccountType_ { + \n" +
                                    "  ASSET, + \n" +
                                    "  LIABILITY, + \n" +
                                    "  EQUITY, + \n" +
                                    "  REVENUE, + \n" +
                                    "  EXPENSE + \n" +
                                    "}"),
                            fieldWithPath("ledgers[].identifier").type("String").description("first ledger identifier"),
                            fieldWithPath("ledgers[].name").type("String").description("first ledger name"),
                            fieldWithPath("ledgers[].description").type("String").description("description of first ledger"),
                            fieldWithPath("ledgers[].parentLedgerIdentifier").description("first ledger's parent "),
                            fieldWithPath("ledgers[].totalValue").type("String").description("Total Value of first ledger"),
                            fieldWithPath("ledgers[].createdOn").type("String").description("date first ledger was created"),
                            fieldWithPath("ledgers[].createdBy").type("String").description("employee who created first ledger"),
                            fieldWithPath("ledgers[].lastModifiedOn").type("String").description("date first ledger was modified"),
                            fieldWithPath("ledgers[].lastModifiedBy").type("String").description("employee who last modified first ledger"),
                            fieldWithPath("ledgers[].showAccountsInChart").type("Boolean").description("Should ledger be shown in charts ?"),
                            fieldWithPath("ledgers[1].type").description("AccountType").description("Type of second ledger " +
                                    " + \n" +
                                    " + \n" +
                                    " *enum* _AccountType_ { + \n" +
                                    "  ASSET, + \n" +
                                    "  LIABILITY, + \n" +
                                    "  EQUITY, + \n" +
                                    "  REVENUE, + \n" +
                                    "  EXPENSE + \n" +
                                    "}"),
                            fieldWithPath("ledgers[1].identifier").type("String").description("second ledger identifier"),
                            fieldWithPath("ledgers[1].name").type("String").description("second ledger name"),
                            fieldWithPath("ledgers[1].description").type("String").description("description of second ledger"),
                            fieldWithPath("ledgers[1].parentLedgerIdentifier").description("second ledger's parent "),
                            fieldWithPath("ledgers[1].totalValue").type("String").description("Total Value of second ledger"),
                            fieldWithPath("ledgers[1].createdOn").type("String").description("date second ledger was created"),
                            fieldWithPath("ledgers[1].createdBy").type("String").description("employee who created second ledger"),
                            fieldWithPath("ledgers[1].lastModifiedOn").type("String").description("date second ledger was modified"),
                            fieldWithPath("ledgers[1].lastModifiedBy").type("String").description("employee who last modified second ledger"),
                            fieldWithPath("ledgers[1].showAccountsInChart").type("Boolean").description("Should ledger be shown in charts ?"),
                            fieldWithPath("ledgers[2].type").description("AccountType").description("Type of third ledger " +
                                    " + \n" +
                                    " + \n" +
                                    " *enum* _AccountType_ { + \n" +
                                    "  ASSET, + \n" +
                                    "  LIABILITY, + \n" +
                                    "  EQUITY, + \n" +
                                    "  REVENUE, + \n" +
                                    "  EXPENSE + \n" +
                                    "}"),
                            fieldWithPath("ledgers[2].identifier").type("String").description("third ledger identifier"),
                            fieldWithPath("ledgers[2].name").type("String").description("third ledger name"),
                            fieldWithPath("ledgers[2].description").type("String").description("description of third ledger"),
                            fieldWithPath("ledgers[2].parentLedgerIdentifier").description("third ledger's parent "),
                            fieldWithPath("ledgers[2].totalValue").type("String").description("Total Value of third ledger"),
                            fieldWithPath("ledgers[2].createdOn").type("String").description("date third ledger was created"),
                            fieldWithPath("ledgers[2].createdBy").type("String").description("employee who created third ledger"),
                            fieldWithPath("ledgers[2].lastModifiedOn").type("String").description("date second ledger was modified"),
                            fieldWithPath("ledgers[2].lastModifiedBy").type("String").description("employee who last modified third ledger"),
                            fieldWithPath("ledgers[2].showAccountsInChart").type("Boolean").description("Should ledger be shown in charts ?"),
                            fieldWithPath("totalPages").type("Integer").description("Total number of pages"),
                            fieldWithPath("totalElements").type("String").description("Total number of elements")
                    )));
  }