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")
)));
}