in component-test/src/main/java/org/apache/fineract/cn/deposit/DepositApiDocumentation.java [297:345]
public void documentUpdateProductDefinition ( ) throws Exception {
final ProductDefinition productDefinition = Fixture.productDefinition();
super.depositAccountManager.create(productDefinition);
super.eventRecorder.wait(EventConstants.POST_PRODUCT_DEFINITION, productDefinition.getIdentifier());
final ProductDefinition newProductDefinition = super.depositAccountManager.findProductDefinition(productDefinition.getIdentifier());
newProductDefinition.setFlexible(Boolean.TRUE);
newProductDefinition.setActive(Boolean.TRUE);
Gson serializer = new Gson();
this.mockMvc.perform(put("/definitions/" + productDefinition.getIdentifier())
.contentType(MediaType.APPLICATION_JSON_VALUE)
.content(serializer.toJson(newProductDefinition))
.accept(MediaType.ALL_VALUE))
.andExpect(status().isAccepted())
.andDo(document("document-update-product-definition", preprocessRequest(prettyPrint()),
requestFields(
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[].actionIdentifier").description("Charge first action"),
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[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].amount").type("Double").description("Amount of second charge"),
fieldWithPath("flexible").description("Is product definition flexible ?"),
fieldWithPath("active").description("Is product definition active ?")
)));
}