in component-test/src/main/java/org/apache/fineract/cn/deposit/DepositApiDocumentation.java [215:294]
public void documentFetchProductDefinitions ( ) throws Exception {
final ProductDefinition productDefinitionOne = Fixture.productDefinition();
super.depositAccountManager.create(productDefinitionOne);
super.eventRecorder.wait(EventConstants.POST_PRODUCT_DEFINITION, productDefinitionOne.getIdentifier());
final ProductDefinition productDefinitionTwo = Fixture.productDefinition();
super.depositAccountManager.create(productDefinitionTwo);
super.eventRecorder.wait(EventConstants.POST_PRODUCT_DEFINITION, productDefinitionTwo.getIdentifier());
this.mockMvc.perform(get("/definitions")
.contentType(MediaType.APPLICATION_JSON_VALUE)
.accept(MediaType.ALL_VALUE))
.andExpect(status().isOk())
.andDo(document("document-fetch-product-definitions", preprocessResponse(prettyPrint()),
responseFields(
fieldWithPath("[].type").description("Type of transaction"),
fieldWithPath("[].identifier").description("Action identifier"),
fieldWithPath("[].name").description("Name of action"),
fieldWithPath("[].description").description("Description of action"),
fieldWithPath("[].currency.code").description("Currency's code"),
fieldWithPath("[].currency.name").description("Currency's name"),
fieldWithPath("[].currency.sign").description("Currency's sign"),
fieldWithPath("[].currency.scale").type("Integer").description("Currency's scale"),
fieldWithPath("[].minimumBalance").type("Double").description("Minimum Balance"),
fieldWithPath("[].equityLedgerIdentifier").description("Equity Ledger Identifier"),
fieldWithPath("[].cashAccountIdentifier").description("Cash Account"),
fieldWithPath("[].expenseAccountIdentifier").description("Expense Account"),
fieldWithPath("[].accrueAccountIdentifier").description("Accrue Account"),
fieldWithPath("[].interest").type("Double").description("Interest"),
fieldWithPath("[].term.period").type("Integer").description("Term period"),
fieldWithPath("[].term.timeUnit").type("TimeUnit").description("Term time unit"),
fieldWithPath("[].term.interestPayable").description("Term interest payable"),
fieldWithPath("[].charges[].incomeAccountIdentifier").description("first Charge income account"),
fieldWithPath("[].charges[].name").description("Name of first charge"),
fieldWithPath("[].charges[].proportional").description("Is charge proportional ?"),
fieldWithPath("[].charges[].amount").type("Double").description("Amount of first charge"),
fieldWithPath("[].charges[].description").type("String").description("Description of first charge"),
fieldWithPath("[].charges[1].actionIdentifier").description("Charge second action"),
fieldWithPath("[].charges[1].incomeAccountIdentifier").description("Charge income account"),
fieldWithPath("[].charges[1].name").description("Name of second charge"),
fieldWithPath("[].charges[1].proportional").description("Is charge proportional ?"),
fieldWithPath("[].charges[1].description").type("String").description("Description of second charge"),
fieldWithPath("[].charges[1].amount").type("Double").description("Amount of second charge"),
fieldWithPath("[].flexible").description("Is product definition flexible ?"),
fieldWithPath("[1].active").description("Is product definition active ?"),
fieldWithPath("[1].type").description("Type of transaction"),
fieldWithPath("[1].identifier").description("Action identifier"),
fieldWithPath("[1].name").description("Name of action"),
fieldWithPath("[1].description").description("Description of action"),
fieldWithPath("[1].currency.code").description("Currency's code"),
fieldWithPath("[1].currency.name").description("Currency's name"),
fieldWithPath("[1].currency.sign").description("Currency's sign"),
fieldWithPath("[1].currency.scale").type("Integer").description("Currency's scale"),
fieldWithPath("[1].minimumBalance").type("Double").description("Minimum Balance"),
fieldWithPath("[1].equityLedgerIdentifier").description("Equity Ledger Identifier"),
fieldWithPath("[1].cashAccountIdentifier").description("Cash Account"),
fieldWithPath("[1].expenseAccountIdentifier").description("Expense Account"),
fieldWithPath("[1].accrueAccountIdentifier").description("Accrue Account"),
fieldWithPath("[1].interest").type("Double").description("Interest"),
fieldWithPath("[1].term.period").type("Integer").description("Term period"),
fieldWithPath("[1].term.timeUnit").type("TimeUnit").description("Term time unit"),
fieldWithPath("[1].term.interestPayable").description("Term interest payable"),
fieldWithPath("[1].charges[].actionIdentifier").description("Charge first action"),
fieldWithPath("[1].charges[].incomeAccountIdentifier").description("first Charge income account"),
fieldWithPath("[1].charges[].name").description("Name of first charge"),
fieldWithPath("[1].charges[].proportional").description("Is charge proportional ?"),
fieldWithPath("[1].charges[].amount").type("Double").description("Amount of first charge"),
fieldWithPath("[1].charges[].description").type("String").description("Description of first charge"),
fieldWithPath("[1].charges[1].actionIdentifier").description("Charge second action"),
fieldWithPath("[1].charges[1].incomeAccountIdentifier").description("Charge income account"),
fieldWithPath("[1].charges[1].name").description("Name of second charge"),
fieldWithPath("[1].charges[1].proportional").description("Is charge proportional ?"),
fieldWithPath("[1].charges[1].description").type("String").description("Description of second charge"),
fieldWithPath("[1].charges[1].amount").type("Double").description("Amount of second charge"),
fieldWithPath("[1].flexible").description("Is product definition flexible ?"),
fieldWithPath("[1].active").description("Is product definition active ?")
)));
}