Izakey closed pull request #11: Fixed undocumented parts of the payload and 
license API docs code
URL: https://github.com/apache/fineract-cn-portfolio/pull/11
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java
index 86eee87..892e1d4 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -32,166 +50,166 @@
 
 public class BalanceSegmentSetApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-balancesegmentsets");
-
-    @Autowired
-    private WebApplicationContext context;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp ( ) {
-
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
-
-    @Test
-    public void documentCreateBalanceSegmentSet ( ) throws Exception {
-
-        final Product product = createProduct();
-
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(5, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(5, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 5)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", 
"ghi"));
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/products/" +product.getIdentifier()+ 
"/balancesegmentsets/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(balanceSegmentSet)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-balance-segment-set", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Balance segment set's identifier"),
-                                fieldWithPath("segments").description("Balance 
segment set's given name"),
-                                
fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment 
identfiers"))));
-
-    }
-
-    @Test
-    public void documentGetAllBalanceSegmentSets () throws Exception {
-        final Product product = createProduct();
-
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how","are", 
"you"));
-
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
-
-        this.mockMvc.perform(get("/products/" +product.getIdentifier()+ 
"/balancesegmentsets/")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-all-balance-segment-sets", 
preprocessRequest(prettyPrint()),
-                        responseFields(
-                                fieldWithPath("[]").description("An array of 
balance segment sets"),
-                                
fieldWithPath("[].identifier").description("Balance segment set's identifier "),
-                                
fieldWithPath("[].segments").description("Balance segment set's segments "),
-                                
fieldWithPath("[].segmentIdentifiers").description("Balance segment set's 
segment identifier"))));
-
-    }
-
-    @Test
-    public void documentGetBalanceSegmentSet () throws Exception {
-        final Product product = createProduct();
-
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how","are", 
"you"));
-
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
-        this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new 
BalanceSegmentSetEvent(product.getIdentifier(), 
balanceSegmentSet.getIdentifier()));
-
-
-        this.mockMvc.perform(get("/products/" +product.getIdentifier()+ 
"/balancesegmentsets/" +balanceSegmentSet.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-balance-segment-set", 
preprocessRequest(prettyPrint()),
-                        responseFields(
-                                
fieldWithPath("identifier").description("Balance segment set's identifier"),
-                                fieldWithPath("segments").description("Balance 
segment set's given name"),
-                                
fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment 
identfiers"))));
-
-    }
-
-    @Test
-    public void documentChangeBalanceSegmentSet () throws Exception {
-        final Product product = createProduct();
-
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how","are", 
"you"));
-
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
-        this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new 
BalanceSegmentSetEvent(product.getIdentifier(), 
balanceSegmentSet.getIdentifier()));
-
-
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(6, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(100_0000, 6),
-                BigDecimal.valueOf(10_000_0000, 6)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", 
"ghi"));
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier()+ 
"/balancesegmentsets/" +balanceSegmentSet.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(balanceSegmentSet)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-balance-segment-set", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Balance segment set's identifier"),
-                                fieldWithPath("segments").description("Balance 
segment set's given name"),
-                                
fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment 
identfiers"))));
-
-    }
-
-    @Test
-    public void documentDeleteBalanceSegmentSet() throws Exception {
-        final Product product = createProduct();
-
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("am","fine", 
"thanks"));
-
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
-        this.mockMvc.perform(delete("/products/" + product.getIdentifier()+ 
"/balancesegmentsets/" +balanceSegmentSet.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-balance-segment-set", 
preprocessResponse(prettyPrint())));
-
-    }
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-balancesegmentsets");
+
+  @Autowired
+  private WebApplicationContext context;
+
+  private MockMvc mockMvc;
+
+  @Before
+  public void setUp() {
+
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentCreateBalanceSegmentSet() throws Exception {
+
+    final Product product = createProduct();
+
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(5, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(5, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 5)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", 
"ghi"));
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + 
"/balancesegmentsets/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(balanceSegmentSet)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-balance-segment-set", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Balance 
segment set's identifier"),
+                            fieldWithPath("segments").description("Balance 
segment set's given name"),
+                            
fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment 
identfiers"))));
+
+  }
+
+  @Test
+  public void documentGetAllBalanceSegmentSets() throws Exception {
+    final Product product = createProduct();
+
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how", "are", 
"you"));
+
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
+
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/balancesegmentsets/")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-all-balance-segment-sets", 
preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("[]").description("An array of 
balance segment sets"),
+                            
fieldWithPath("[].identifier").description("Balance segment set's identifier "),
+                            fieldWithPath("[].segments").description("Balance 
segment set's segments "),
+                            
fieldWithPath("[].segmentIdentifiers").description("Balance segment set's 
segment identifier"))));
+
+  }
+
+  @Test
+  public void documentGetBalanceSegmentSet() throws Exception {
+    final Product product = createProduct();
+
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how", "are", 
"you"));
+
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
+    this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new 
BalanceSegmentSetEvent(product.getIdentifier(), 
balanceSegmentSet.getIdentifier()));
+
+
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/balancesegmentsets/" + balanceSegmentSet.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-balance-segment-set", 
preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("identifier").description("Balance 
segment set's identifier"),
+                            fieldWithPath("segments").description("Balance 
segment set's given name"),
+                            
fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment 
identfiers"))));
+
+  }
+
+  @Test
+  public void documentChangeBalanceSegmentSet() throws Exception {
+    final Product product = createProduct();
+
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how", "are", 
"you"));
+
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
+    this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new 
BalanceSegmentSetEvent(product.getIdentifier(), 
balanceSegmentSet.getIdentifier()));
+
+
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(6, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(100_0000, 6),
+            BigDecimal.valueOf(10_000_0000, 6)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", 
"ghi"));
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + 
"/balancesegmentsets/" + balanceSegmentSet.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(balanceSegmentSet)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-balance-segment-set", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Balance 
segment set's identifier"),
+                            fieldWithPath("segments").description("Balance 
segment set's given name"),
+                            
fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment 
identfiers"))));
+
+  }
+
+  @Test
+  public void documentDeleteBalanceSegmentSet() throws Exception {
+    final Product product = createProduct();
+
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    
balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("am", "fine", 
"thanks"));
+
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), 
balanceSegmentSet);
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier() + 
"/balancesegmentsets/" + balanceSegmentSet.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-balance-segment-set", 
preprocessResponse(prettyPrint())));
+
+  }
 
 
 }
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java
index 2f01abc..856998a 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -30,98 +48,98 @@
 
 public class CaseDocumentsApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-casedocuments");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-casedocuments");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp() {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentGetCaseDocuments() throws Exception {
+  @Test
+  public void documentGetCaseDocuments() throws Exception {
 
-        final Product product = createAndEnableProduct();
+    final Product product = createAndEnableProduct();
 
-        final Case customerCase = createCase(product.getIdentifier());
+    final Case customerCase = createCase(product.getIdentifier());
 
 
-       final CaseCustomerDocuments caseDocuments = 
caseDocumentsManager.getCaseDocuments(
-                product.getIdentifier(), customerCase.getIdentifier());
+    final CaseCustomerDocuments caseDocuments = 
caseDocumentsManager.getCaseDocuments(
+            product.getIdentifier(), customerCase.getIdentifier());
 
-       final CaseCustomerDocuments.Document studentLoanDocument
-                = new 
CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"student_loan_documents");
-        final CaseCustomerDocuments.Document houseTitle
-                = new 
CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_title");
-        final CaseCustomerDocuments.Document workContract
-                = new 
CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "work_contract");
+    final CaseCustomerDocuments.Document studentLoanDocument
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"student_loan_documents");
+    final CaseCustomerDocuments.Document houseTitle
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"house_title");
+    final CaseCustomerDocuments.Document workContract
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"work_contract");
 
-      caseDocuments.setDocuments(Arrays.asList(studentLoanDocument, 
houseTitle, workContract));
+    caseDocuments.setDocuments(Arrays.asList(studentLoanDocument, houseTitle, 
workContract));
 
-        this.mockMvc.perform(get("/individuallending/products/" + 
product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + 
"/documents")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isOk())
-                .andDo(document("document-get-case-documents", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        responseFields(
-                                
fieldWithPath("documents").type("List<Document>").description("The case 
document +\n" +
-                                        " +\n" +
-                                        "_Document_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     customerId, +\n" +
-                                        "     documentId, +\n" +
-                                        "  } +"))));
+    this.mockMvc.perform(get("/individuallending/products/" + 
product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + 
"/documents")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isOk())
+            .andDo(document("document-get-case-documents", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    responseFields(
+                            
fieldWithPath("documents").type("List<Document>").description("The case 
document +\n" +
+                                    " +\n" +
+                                    "_Document_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     customerId, +\n" +
+                                    "     documentId, +\n" +
+                                    "  } +"))));
 
-    }
+  }
 
 
-    @Test
-    public void documentChangeCaseDocuments() throws Exception {
+  @Test
+  public void documentChangeCaseDocuments() throws Exception {
 
-        final Product product = createAndEnableProduct();
+    final Product product = createAndEnableProduct();
 
-        final Case customerCase = createCase(product.getIdentifier());
+    final Case customerCase = createCase(product.getIdentifier());
 
-        final CaseCustomerDocuments caseDocuments = 
caseDocumentsManager.getCaseDocuments(
-                product.getIdentifier(), customerCase.getIdentifier());
+    final CaseCustomerDocuments caseDocuments = 
caseDocumentsManager.getCaseDocuments(
+            product.getIdentifier(), customerCase.getIdentifier());
 
-        final CaseCustomerDocuments.Document houseLoanDocument
-                = new 
CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"house_loan_documents");
-        final CaseCustomerDocuments.Document houseTitle
-                = new 
CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_title");
-        final CaseCustomerDocuments.Document workContract
-                = new 
CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "work_contract");
+    final CaseCustomerDocuments.Document houseLoanDocument
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"house_loan_documents");
+    final CaseCustomerDocuments.Document houseTitle
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"house_title");
+    final CaseCustomerDocuments.Document workContract
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, 
"work_contract");
 
-        caseDocuments.setDocuments(Arrays.asList(houseLoanDocument, 
houseTitle, workContract));
+    caseDocuments.setDocuments(Arrays.asList(houseLoanDocument, houseTitle, 
workContract));
 
-        caseDocumentsManager.changeCaseDocuments(product.getIdentifier(), 
customerCase.getIdentifier(), caseDocuments);
+    caseDocumentsManager.changeCaseDocuments(product.getIdentifier(), 
customerCase.getIdentifier(), caseDocuments);
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/individuallending/products/" + 
product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + 
"/documents")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(caseDocuments)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-case-documents", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("documents").type("List<Document>").description("The case 
document +\n" +
-                                        " +\n" +
-                                        "_Document_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     customerId, +\n" +
-                                        "     documentId, +\n" +
-                                        "  } +"))));
-    }
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/individuallending/products/" + 
product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + 
"/documents")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(caseDocuments)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-case-documents", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            
fieldWithPath("documents").type("List<Document>").description("The case 
document +\n" +
+                                    " +\n" +
+                                    "_Document_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     customerId, +\n" +
+                                    "     documentId, +\n" +
+                                    "  } +"))));
+  }
 
 }
\ No newline at end of file
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java
index 00b1d6b..2470942 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -15,8 +33,10 @@
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
+
 import java.util.HashSet;
 import java.util.Set;
+
 import static 
org.apache.fineract.cn.lang.config.TenantHeaderFilter.TENANT_HEADER;
 import static 
org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
 import static 
org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration;
@@ -31,78 +51,79 @@
 
 public class CasesApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-cases");
-
-    @Autowired
-    private WebApplicationContext context;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp() {
-
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
-
-    @Test
-    public void documentCreateCase () throws Exception {
-
-        final Product product = createAndEnableProduct();
-
-       final Case caseInstance = createCase(product.getIdentifier());
-       caseInstance.setIdentifier("case-v1");
-
-        Gson gson = new Gson();
-        
this.mockMvc.perform(post("/products/"+product.getIdentifier()+"/cases/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(caseInstance)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-case", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Cases's identifier"),
-                                
fieldWithPath("productIdentifier").description("Products's identifier"),
-                                fieldWithPath("interest").description("Cases's 
interest"),
-                                
fieldWithPath("parameters").description("cases's parameters"),
-                                
fieldWithPath("accountAssignments").description("Cases's account assignment"),
-                                
fieldWithPath("currentState").description("Cases's current state"))));
-
-    }
-
-    @Test
-    public void documentChangeCase () throws Exception {
-
-        final Product product = createAndEnableProduct();
-
-
-        final CaseParameters newCaseParameters = 
Fixture.createAdjustedCaseParameters(x -> {});
-        final String originalParameters = new Gson().toJson(newCaseParameters);
-        final Case caseInstance = createAdjustedCase(product.getIdentifier(), 
x -> x.setParameters(originalParameters));
-
-        final Set<AccountAssignment> accountAssignments = new HashSet<>();
-        accountAssignments.add(new 
AccountAssignment(AccountDesignators.CUSTOMER_LOAN_GROUP, "002-011"));
-        accountAssignments.add(new AccountAssignment(AccountDesignators.ENTRY, 
"002-012"));
-        caseInstance.setAccountAssignments(accountAssignments);
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier() + 
"/cases/" + caseInstance.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(caseInstance)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-case", 
preprocessRequest(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Cases's identifier"),
-                                
fieldWithPath("productIdentifier").description("Products's identifier"),
-                                fieldWithPath("interest").description("Cases's 
interest"),
-                                
fieldWithPath("parameters").description("cases's parameters"),
-                                
fieldWithPath("accountAssignments").description("Cases's account assignment"),
-                                
fieldWithPath("currentState").description("Cases's current state"))));
-
-    }
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-cases");
+
+  @Autowired
+  private WebApplicationContext context;
+
+  private MockMvc mockMvc;
+
+  @Before
+  public void setUp() {
+
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentCreateCase() throws Exception {
+
+    final Product product = createAndEnableProduct();
+
+    final Case caseInstance = createCase(product.getIdentifier());
+    caseInstance.setIdentifier("case-v1");
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + 
"/cases/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(caseInstance)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-case", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Cases's 
identifier"),
+                            
fieldWithPath("productIdentifier").description("Products's identifier"),
+                            fieldWithPath("interest").description("Cases's 
interest"),
+                            fieldWithPath("parameters").description("cases's 
parameters"),
+                            
fieldWithPath("accountAssignments").description("Cases's account assignment"),
+                            fieldWithPath("currentState").description("Cases's 
current state"))));
+
+  }
+
+  @Test
+  public void documentChangeCase() throws Exception {
+
+    final Product product = createAndEnableProduct();
+
+
+    final CaseParameters newCaseParameters = 
Fixture.createAdjustedCaseParameters(x -> {
+    });
+    final String originalParameters = new Gson().toJson(newCaseParameters);
+    final Case caseInstance = createAdjustedCase(product.getIdentifier(), x -> 
x.setParameters(originalParameters));
+
+    final Set<AccountAssignment> accountAssignments = new HashSet<>();
+    accountAssignments.add(new 
AccountAssignment(AccountDesignators.CUSTOMER_LOAN_GROUP, "002-011"));
+    accountAssignments.add(new AccountAssignment(AccountDesignators.ENTRY, 
"002-012"));
+    caseInstance.setAccountAssignments(accountAssignments);
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + 
"/cases/" + caseInstance.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(caseInstance)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-case", preprocessRequest(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Cases's 
identifier"),
+                            
fieldWithPath("productIdentifier").description("Products's identifier"),
+                            fieldWithPath("interest").description("Cases's 
interest"),
+                            fieldWithPath("parameters").description("cases's 
parameters"),
+                            
fieldWithPath("accountAssignments").description("Cases's account assignment"),
+                            fieldWithPath("currentState").description("Cases's 
current state"))));
+
+  }
 }
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java
index 63da9d8..281d25d 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -33,207 +51,207 @@
 
 public class ChargeDefinitionApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-chargedefinitions");
-
-    @Autowired
-    private WebApplicationContext context;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp() {
-
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
-
-    @Test
-    public void documentGetAllChargeDefinitions ( ) throws Exception {
-        final Product product = createProduct();
-
-        try {
-            this.mockMvc.perform(get("/products/" 
+product.getIdentifier()+"/charges/")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, 
tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-all-charge-definitions", 
preprocessRequest(prettyPrint()),
-                            responseFields(
-
-                                    
fieldWithPath("identifier").description("Charge definition's identifier"),
-                                    fieldWithPath("name").description("Charge 
definitions given name"),
-                                    
fieldWithPath("description").description("Charge definitions description"),
-                                    
fieldWithPath("accrueAction").description("Charge definitions accrue action"),
-                                    
fieldWithPath("proportionalTo").description("Charge definitions proportional 
to"),
-                                    
fieldWithPath("accrualAccountDesignator").description("Charge definitions 
accrual acion generatort"),
-                                    
fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size 
unit"),
-                                    
fieldWithPath("forSegmentSet").description("Charge definitions segment set"),
-                                    
fieldWithPath("fromSegment").description("Charge definitions from segment"),
-                                    
fieldWithPath("toSegment").description("Charge definitions to segment"),
-                                    
fieldWithPath("chargeOnTop").description("Charge definitions charge on top"),
-                                    
fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                    
fieldWithPath("toAccountDesignator").description("To account designator"),
-                                    
fieldWithPath("amount").description("Charge definition's amount"),
-                                    
fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                    
fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                    
fieldWithPath("description").description("Employee's middle name"),
-                                    
fieldWithPath("readOnly").description("Readability"))));
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-chargedefinitions");
+
+  @Autowired
+  private WebApplicationContext context;
+
+  private MockMvc mockMvc;
+
+  @Before
+  public void setUp() {
+
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentGetAllChargeDefinitions() throws Exception {
+    final Product product = createProduct();
+
+    try {
+      this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/charges/")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-all-charge-definitions", 
preprocessRequest(prettyPrint()),
+                      responseFields(
+
+                              fieldWithPath("identifier").description("Charge 
definition's identifier"),
+                              fieldWithPath("name").description("Charge 
definitions given name"),
+                              fieldWithPath("description").description("Charge 
definitions description"),
+                              
fieldWithPath("accrueAction").description("Charge definitions accrue action"),
+                              
fieldWithPath("proportionalTo").description("Charge definitions proportional 
to"),
+                              
fieldWithPath("accrualAccountDesignator").description("Charge definitions 
accrual acion generatort"),
+                              
fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size 
unit"),
+                              
fieldWithPath("forSegmentSet").description("Charge definitions segment set"),
+                              fieldWithPath("fromSegment").description("Charge 
definitions from segment"),
+                              fieldWithPath("toSegment").description("Charge 
definitions to segment"),
+                              fieldWithPath("chargeOnTop").description("Charge 
definitions charge on top"),
+                              
fieldWithPath("fromAccountDesignator").description("From account designator"),
+                              
fieldWithPath("toAccountDesignator").description("To account designator"),
+                              fieldWithPath("amount").description("Charge 
definition's amount"),
+                              
fieldWithPath("chargeMethod").description("Charge definitions charge method"),
+                              
fieldWithPath("chargeAction").description("Charge definition's charge action"),
+                              
fieldWithPath("description").description("Employee's middle name"),
+                              
fieldWithPath("readOnly").description("Readability"))));
 
     } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
-
-
-    @Test
-    public void documentCreateChargeDefinition() throws Exception {
-
-        final Product product = createProduct();
-
-        final ChargeDefinition chargeDefinition = new ChargeDefinition();
-        chargeDefinition.setIdentifier("charge123");
-        chargeDefinition.setName("core123");
-        chargeDefinition.setFromAccountDesignator("Pembe");
-        chargeDefinition.setToAccountDesignator("Miriam");
-        chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, 
BigDecimal.ROUND_UNNECESSARY));
-        chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        chargeDefinition.setChargeAction(Action.OPEN.name());
-        chargeDefinition.setDescription("describe charge");
-
-
-        Gson gson = new Gson();
-        
this.mockMvc.perform(post("/products/"+product.getIdentifier()+"/charges/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(chargeDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-charge-definition", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge 
definitions given name"),
-                                
fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                
fieldWithPath("toAccountDesignator").description("To account designator"),
-                                fieldWithPath("amount").description("Charge 
definition's amount"),
-                                
fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                
fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                
fieldWithPath("description").description("Employee's middle name"),
-                                
fieldWithPath("readOnly").description("Readability"))));
-
-    }
-
-    @Test
-    public void documentChangeChargeDefinition() throws Exception {
-
-        final Product product = createProduct();
-
-        final ChargeDefinition chargeDefinition = new ChargeDefinition();
-        chargeDefinition.setIdentifier("charge124");
-        chargeDefinition.setName("core123");
-        chargeDefinition.setFromAccountDesignator("Pembe");
-        chargeDefinition.setToAccountDesignator("Miriam");
-        chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, 
BigDecimal.ROUND_UNNECESSARY));
-        chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        chargeDefinition.setChargeAction(Action.OPEN.name());
-        chargeDefinition.setDescription("describe charge");
-
-        portfolioManager.createChargeDefinition(product.getIdentifier(), 
chargeDefinition);
-
-        chargeDefinition.setName("charge12345");
-        chargeDefinition.setFromAccountDesignator("Paul");
-        chargeDefinition.setToAccountDesignator("Motia");
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier() + 
"/charges/" + chargeDefinition.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(chargeDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-charge-definition", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge 
definitions given name"),
-                                
fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                
fieldWithPath("toAccountDesignator").description("To account designator"),
-                                fieldWithPath("amount").description("Charge 
definition's amount"),
-                                
fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                
fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                
fieldWithPath("description").description("Employee's middle name"),
-                                
fieldWithPath("readOnly").description("Readability"))));
-    }
-
-    @Test
-    public void documentGetChargeDefinition() throws Exception {
-
-        final Product product = createProduct();
-
-        final ChargeDefinition chargeDefinition = new ChargeDefinition();
-        chargeDefinition.setIdentifier("charge10");
-        chargeDefinition.setName("core123");
-        chargeDefinition.setFromAccountDesignator("pembe");
-        chargeDefinition.setToAccountDesignator("miriam");
-        chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, 
BigDecimal.ROUND_UNNECESSARY));
-        chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        chargeDefinition.setChargeAction(Action.OPEN.name());
-        chargeDefinition.setDescription("describe charge");
-
-        portfolioManager.createChargeDefinition(product.getIdentifier(), 
chargeDefinition);
-
-
-        this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/charges/" + chargeDefinition.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isOk())
-                .andDo(document("document-get-case-document", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        responseFields(
-                                
fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge 
definitions given name"),
-                                
fieldWithPath("description").description("Charge definitions description"),
-                                
fieldWithPath("accrueAction").description("Charge definitions accrue action"),
-                                
fieldWithPath("proportionalTo").description("Charge definitions proportional 
to"),
-                                
fieldWithPath("accrualAccountDesignator").description("Charge definitions 
accrual acion generatort"),
-                                
fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size 
unit"),
-                                
fieldWithPath("forSegmentSet").description("Charge definitions segment set"),
-                                
fieldWithPath("fromSegment").description("Charge definitions from segment"),
-                                fieldWithPath("toSegment").description("Charge 
definitions to segment"),
-                                
fieldWithPath("chargeOnTop").description("Charge definitions charge on top"),
-                                
fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                
fieldWithPath("toAccountDesignator").description("To account designator"),
-                                fieldWithPath("amount").description("Charge 
definition's amount"),
-                                
fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                
fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                
fieldWithPath("description").description("Employee's middle name"),
-                                
fieldWithPath("readOnly").description("Readability"))));
+      e.printStackTrace();
     }
 
-    @Test
-    public void documentDeleteChargeDefinition () throws Exception{
-
-        final Product product = createProduct();
-
-        final ChargeDefinition chargeDefinitionToDelete = new 
ChargeDefinition();
-        chargeDefinitionToDelete.setAmount(BigDecimal.TEN);
-        chargeDefinitionToDelete.setIdentifier("random123");
-        chargeDefinitionToDelete.setName("account");
-        chargeDefinitionToDelete.setDescription("account charge definition");
-        chargeDefinitionToDelete.setChargeAction(Action.APPROVE.name());
-        
chargeDefinitionToDelete.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        
chargeDefinitionToDelete.setToAccountDesignator(AccountDesignators.GENERAL_LOSS_ALLOWANCE);
-        
chargeDefinitionToDelete.setFromAccountDesignator(AccountDesignators.INTEREST_ACCRUAL);
-        portfolioManager.createChargeDefinition(product.getIdentifier(), 
chargeDefinitionToDelete);
-        this.eventRecorder.wait(EventConstants.POST_CHARGE_DEFINITION,
-                new ChargeDefinitionEvent(product.getIdentifier(), 
chargeDefinitionToDelete.getIdentifier()));
-
-        
this.mockMvc.perform(delete("/products/"+product.getIdentifier()+"/charges/" + 
chargeDefinitionToDelete.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-charge-definition", 
preprocessResponse(prettyPrint())));
-    }
+  }
+
+
+  @Test
+  public void documentCreateChargeDefinition() throws Exception {
+
+    final Product product = createProduct();
+
+    final ChargeDefinition chargeDefinition = new ChargeDefinition();
+    chargeDefinition.setIdentifier("charge123");
+    chargeDefinition.setName("core123");
+    chargeDefinition.setFromAccountDesignator("Pembe");
+    chargeDefinition.setToAccountDesignator("Miriam");
+    chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, 
BigDecimal.ROUND_UNNECESSARY));
+    chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    chargeDefinition.setChargeAction(Action.OPEN.name());
+    chargeDefinition.setDescription("describe charge");
+
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + 
"/charges/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(chargeDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-charge-definition", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Charge 
definition's identifier"),
+                            fieldWithPath("name").description("Charge 
definitions given name"),
+                            
fieldWithPath("fromAccountDesignator").description("From account designator"),
+                            
fieldWithPath("toAccountDesignator").description("To account designator"),
+                            fieldWithPath("amount").description("Charge 
definition's amount"),
+                            fieldWithPath("chargeMethod").description("Charge 
definitions charge method"),
+                            fieldWithPath("chargeAction").description("Charge 
definition's charge action"),
+                            
fieldWithPath("description").description("Employee's middle name"),
+                            
fieldWithPath("readOnly").description("Readability"))));
+
+  }
+
+  @Test
+  public void documentChangeChargeDefinition() throws Exception {
+
+    final Product product = createProduct();
+
+    final ChargeDefinition chargeDefinition = new ChargeDefinition();
+    chargeDefinition.setIdentifier("charge124");
+    chargeDefinition.setName("core123");
+    chargeDefinition.setFromAccountDesignator("Pembe");
+    chargeDefinition.setToAccountDesignator("Miriam");
+    chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, 
BigDecimal.ROUND_UNNECESSARY));
+    chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    chargeDefinition.setChargeAction(Action.OPEN.name());
+    chargeDefinition.setDescription("describe charge");
+
+    portfolioManager.createChargeDefinition(product.getIdentifier(), 
chargeDefinition);
+
+    chargeDefinition.setName("charge12345");
+    chargeDefinition.setFromAccountDesignator("Paul");
+    chargeDefinition.setToAccountDesignator("Motia");
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + 
"/charges/" + chargeDefinition.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(chargeDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-charge-definition", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Charge 
definition's identifier"),
+                            fieldWithPath("name").description("Charge 
definitions given name"),
+                            
fieldWithPath("fromAccountDesignator").description("From account designator"),
+                            
fieldWithPath("toAccountDesignator").description("To account designator"),
+                            fieldWithPath("amount").description("Charge 
definition's amount"),
+                            fieldWithPath("chargeMethod").description("Charge 
definitions charge method"),
+                            fieldWithPath("chargeAction").description("Charge 
definition's charge action"),
+                            
fieldWithPath("description").description("Employee's middle name"),
+                            
fieldWithPath("readOnly").description("Readability"))));
+  }
+
+  @Test
+  public void documentGetChargeDefinition() throws Exception {
+
+    final Product product = createProduct();
+
+    final ChargeDefinition chargeDefinition = new ChargeDefinition();
+    chargeDefinition.setIdentifier("charge10");
+    chargeDefinition.setName("core123");
+    chargeDefinition.setFromAccountDesignator("pembe");
+    chargeDefinition.setToAccountDesignator("miriam");
+    chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, 
BigDecimal.ROUND_UNNECESSARY));
+    chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    chargeDefinition.setChargeAction(Action.OPEN.name());
+    chargeDefinition.setDescription("describe charge");
+
+    portfolioManager.createChargeDefinition(product.getIdentifier(), 
chargeDefinition);
+
+
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/charges/" + chargeDefinition.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isOk())
+            .andDo(document("document-get-case-document", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("identifier").description("Charge 
definition's identifier"),
+                            fieldWithPath("name").description("Charge 
definitions given name"),
+                            fieldWithPath("description").description("Charge 
definitions description"),
+                            fieldWithPath("accrueAction").description("Charge 
definitions accrue action"),
+                            
fieldWithPath("proportionalTo").description("Charge definitions proportional 
to"),
+                            
fieldWithPath("accrualAccountDesignator").description("Charge definitions 
accrual acion generatort"),
+                            
fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size 
unit"),
+                            fieldWithPath("forSegmentSet").description("Charge 
definitions segment set"),
+                            fieldWithPath("fromSegment").description("Charge 
definitions from segment"),
+                            fieldWithPath("toSegment").description("Charge 
definitions to segment"),
+                            fieldWithPath("chargeOnTop").description("Charge 
definitions charge on top"),
+                            
fieldWithPath("fromAccountDesignator").description("From account designator"),
+                            
fieldWithPath("toAccountDesignator").description("To account designator"),
+                            fieldWithPath("amount").description("Charge 
definition's amount"),
+                            fieldWithPath("chargeMethod").description("Charge 
definitions charge method"),
+                            fieldWithPath("chargeAction").description("Charge 
definition's charge action"),
+                            
fieldWithPath("description").description("Employee's middle name"),
+                            
fieldWithPath("readOnly").description("Readability"))));
+  }
+
+  @Test
+  public void documentDeleteChargeDefinition() throws Exception {
+
+    final Product product = createProduct();
+
+    final ChargeDefinition chargeDefinitionToDelete = new ChargeDefinition();
+    chargeDefinitionToDelete.setAmount(BigDecimal.TEN);
+    chargeDefinitionToDelete.setIdentifier("random123");
+    chargeDefinitionToDelete.setName("account");
+    chargeDefinitionToDelete.setDescription("account charge definition");
+    chargeDefinitionToDelete.setChargeAction(Action.APPROVE.name());
+    
chargeDefinitionToDelete.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    
chargeDefinitionToDelete.setToAccountDesignator(AccountDesignators.GENERAL_LOSS_ALLOWANCE);
+    
chargeDefinitionToDelete.setFromAccountDesignator(AccountDesignators.INTEREST_ACCRUAL);
+    portfolioManager.createChargeDefinition(product.getIdentifier(), 
chargeDefinitionToDelete);
+    this.eventRecorder.wait(EventConstants.POST_CHARGE_DEFINITION,
+            new ChargeDefinitionEvent(product.getIdentifier(), 
chargeDefinitionToDelete.getIdentifier()));
+
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier() + 
"/charges/" + chargeDefinitionToDelete.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-charge-definition", 
preprocessResponse(prettyPrint())));
+  }
 
 }
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java
index c297245..4673268 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 
@@ -35,93 +53,95 @@
 
 public class LossProvisionApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-lossprovision");
-
-    @Autowired
-    private WebApplicationContext context;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp ( ) {
-
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-lossprovision");
+
+  @Autowired
+  private WebApplicationContext context;
+
+  private MockMvc mockMvc;
+
+  @Before
+  public void setUp() {
+
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentChangeLossProvisionConfiguration() throws Exception {
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+
+    final List<LossProvisionStep> lossProvisionSteps = new ArrayList<>();
+    lossProvisionSteps.add(new LossProvisionStep(1, BigDecimal.valueOf(5_00, 
2)));
+    final LossProvisionConfiguration lossProvisionConfiguration = new 
LossProvisionConfiguration(lossProvisionSteps);
+
+    
individualLending.changeLossProvisionConfiguration(product.getIdentifier(), 
lossProvisionConfiguration);
+
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/individuallending/products/" + 
product.getIdentifier() + "/lossprovisionconfiguration")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(lossProvisionConfiguration)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-loss-provision-configuration", 
preprocessRequest(prettyPrint()),
+                    requestFields(
+                            
fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The
 loss provision configurations +\n" +
+                                    " +\n" +
+                                    "_LossProvisionSteps_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     daysLate, +\n" +
+                                    "     percentProvision, +\n" +
+                                    "  } +")
+                    )
+            ));
+  }
+
+  @Test
+  public void documentGetLossProvisionConfiguration() throws Exception {
+
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+    final List<LossProvisionStep> lossProvisionSteps1 = new ArrayList<>();
+    lossProvisionSteps1.add(new LossProvisionStep(0, BigDecimal.valueOf(1_00, 
2)));
+    lossProvisionSteps1.add(new LossProvisionStep(1, BigDecimal.valueOf(9_00, 
2)));
+    lossProvisionSteps1.add(new LossProvisionStep(30, 
BigDecimal.valueOf(35_00, 2)));
+    lossProvisionSteps1.add(new LossProvisionStep(60, 
BigDecimal.valueOf(55_00, 2)));
+    final LossProvisionConfiguration lossProvisionConfiguration = new 
LossProvisionConfiguration(lossProvisionSteps1);
+
+    
individualLending.changeLossProvisionConfiguration(product.getIdentifier(), 
lossProvisionConfiguration);
+
+    try {
+      this.mockMvc.perform(get("/individuallending/products/" + 
product.getIdentifier() + "/lossprovisionconfiguration")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-loss-provision-configuration", 
preprocessRequest(prettyPrint()),
+                      responseFields(
+                              
fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The
 loss provision configurations +\n" +
+                                      " +\n" +
+                                      "_LossProvisionSteps_ { +\n" +
+                                      "  *enum* _Type_ { +\n" +
+                                      "     daysLate, +\n" +
+                                      "     percentProvision, +\n" +
+                                      "  } +")
+                      )
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
 
-    @Test
-    public void documentChangeLossProvisionConfiguration ( ) throws Exception {
-        final Product product = createAdjustedProduct(x -> {});
-
-
-        final List<LossProvisionStep> lossProvisionSteps = new ArrayList<>();
-        lossProvisionSteps.add(new LossProvisionStep(1, 
BigDecimal.valueOf(5_00, 2)));
-        final LossProvisionConfiguration lossProvisionConfiguration = new 
LossProvisionConfiguration(lossProvisionSteps);
-
-        
individualLending.changeLossProvisionConfiguration(product.getIdentifier(), 
lossProvisionConfiguration);
-
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/individuallending/products/" + 
product.getIdentifier() + "/lossprovisionconfiguration")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(lossProvisionConfiguration)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-loss-provision-configuration", 
preprocessRequest(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The
 loss provision configurations +\n" +
-                                        " +\n" +
-                                        "_LossProvisionSteps_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     daysLate, +\n" +
-                                        "     percentProvision, +\n" +
-                                        "  } +")
-                        )
-                ));
-    }
-
-    @Test
-    public void documentGetLossProvisionConfiguration ( ) throws Exception{
-
-        final Product product = createAdjustedProduct(x -> {});
-
-        final List<LossProvisionStep> lossProvisionSteps1 = new ArrayList<>();
-        lossProvisionSteps1.add(new LossProvisionStep(0, 
BigDecimal.valueOf(1_00, 2)));
-        lossProvisionSteps1.add(new LossProvisionStep(1, 
BigDecimal.valueOf(9_00, 2)));
-        lossProvisionSteps1.add(new LossProvisionStep(30, 
BigDecimal.valueOf(35_00, 2)));
-        lossProvisionSteps1.add(new LossProvisionStep(60, 
BigDecimal.valueOf(55_00, 2)));
-        final LossProvisionConfiguration lossProvisionConfiguration = new 
LossProvisionConfiguration(lossProvisionSteps1);
-
-        
individualLending.changeLossProvisionConfiguration(product.getIdentifier(), 
lossProvisionConfiguration);
-
-        try {
-            this.mockMvc.perform(get("/individuallending/products/" + 
product.getIdentifier() + "/lossprovisionconfiguration")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, 
tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-loss-provision-configuration", 
preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    
fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The
 loss provision configurations +\n" +
-                                            " +\n" +
-                                            "_LossProvisionSteps_ { +\n" +
-                                            "  *enum* _Type_ { +\n" +
-                                            "     daysLate, +\n" +
-                                            "     percentProvision, +\n" +
-                                            "  } +")
-                            )
-                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
+  }
 
 
-    }
\ No newline at end of file
+}
\ No newline at end of file
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java
index da82448..2d9c6a9 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import org.junit.Before;
@@ -22,44 +40,44 @@
 import static 
org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 public class PatternApiDocumentation extends AbstractPortfolioTest {
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-pattern");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-pattern");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp ( ) {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentGetPatterns ( ) throws Exception {
+  @Test
+  public void documentGetPatterns() throws Exception {
 
-        try {
-            this.mockMvc.perform(get("/patterns/")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, 
tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-patterns", 
preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    
fieldWithPath("parameterPackage").description("Pattern's parameter package"),
-                                    
fieldWithPath("accountAssignmentGroups").description("Pattern's groups"),
-                                    
fieldWithPath("accountAssignmentsRequired").description("Pattern's account 
assignment status")
-                                    )
+    try {
+      this.mockMvc.perform(get("/patterns/")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-patterns", 
preprocessRequest(prettyPrint()),
+                      responseFields(
+                              
fieldWithPath("[].parameterPackage").description("Pattern's parameter package"),
+                              
fieldWithPath("[].accountAssignmentGroups").description("Pattern's groups"),
+                              
fieldWithPath("[].accountAssignmentsRequired").description("List of Pattern's 
account assignments")
+                      )
 
-                                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
+  }
 
 }
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java
index a3c3102..dee2c3a 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -28,62 +46,62 @@
 
 public class PlannedPaymentsApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-plannedpayments");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-plannedpayments");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp() {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentGetPaymentScheduledForCase() throws Exception {
-        final Product product = createAndEnableProduct();
-        final Case caseInstance = createCase(product.getIdentifier());
+  @Test
+  public void documentGetPaymentScheduledForCase() throws Exception {
+    final Product product = createAndEnableProduct();
+    final Case caseInstance = createCase(product.getIdentifier());
 
-        this.mockMvc.perform(get("/individuallending/products/" + 
product.getIdentifier() + "/cases/" + caseInstance.getIdentifier() + 
"/plannedpayments")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-payment-scheduled-for-case", 
preprocessRequest(prettyPrint()),
-                        responseFields(
-                                
fieldWithPath("chargeNames").description("Charge names"),
-                                
fieldWithPath("elements").description("Payments"),
-                                fieldWithPath("totalPages").description("Total 
number of pages "),
-                                
fieldWithPath("totalElements").description("Total elements found"))));
+    this.mockMvc.perform(get("/individuallending/products/" + 
product.getIdentifier() + "/cases/" + caseInstance.getIdentifier() + 
"/plannedpayments")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-payment-scheduled-for-case", 
preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("chargeNames").description("Charge 
names"),
+                            fieldWithPath("elements").description("Payments"),
+                            fieldWithPath("totalPages").description("Total 
number of pages "),
+                            fieldWithPath("totalElements").description("Total 
elements found"))));
 
-    }
+  }
 
-    @Test
-    public void documentGetPaymentScheduledForParameters() throws Exception {
-        final Product product = createAndEnableProduct();
-        final Case caseInstance = createCase(product.getIdentifier());
+  @Test
+  public void documentGetPaymentScheduledForParameters() throws Exception {
+    final Product product = createAndEnableProduct();
+    final Case caseInstance = createCase(product.getIdentifier());
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/individuallending/products/" + 
product.getIdentifier() + "/plannedpayments")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(caseInstance)))
-                .andExpect(status().isOk())
-                
.andDo(document("document-get-payment-scheduled-for-parameters", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Cases's identifier"),
-                                
fieldWithPath("productIdentifier").description("Products's identifier"),
-                                fieldWithPath("interest").description("Cases's 
interest"),
-                                
fieldWithPath("parameters").description("cases's parameters"),
-                                
fieldWithPath("accountAssignments").description("Cases's account assignment"),
-                                
fieldWithPath("currentState").description("Cases's current state"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/individuallending/products/" + 
product.getIdentifier() + "/plannedpayments")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(caseInstance)))
+            .andExpect(status().isOk())
+            .andDo(document("document-get-payment-scheduled-for-parameters", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Cases's 
identifier"),
+                            
fieldWithPath("productIdentifier").description("Products's identifier"),
+                            fieldWithPath("interest").description("Cases's 
interest"),
+                            fieldWithPath("parameters").description("cases's 
parameters"),
+                            
fieldWithPath("accountAssignments").description("Cases's account assignment"),
+                            fieldWithPath("currentState").description("Cases's 
current state"))));
 
-    }
+  }
 
 }
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java
index 4675a03..e37237e 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -27,210 +45,211 @@
 
 public class ProductsApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-product");
-
-    @Autowired
-    private WebApplicationContext context;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp() {
-
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
-
-    @Test
-    public void documentCreateProduct() throws Exception {
-        final Product product = createAdjustedProduct(x -> {});
-         product.setIdentifier("agro11");
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/products/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(product)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-product", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Product's identifier"),
-                                fieldWithPath("name").description("Product's 
given name"),
-                                
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
-                                        " +\n" +
-                                        "_TermRange_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     temporalUnit, +\n" +
-                                        "     maximum, +\n" +
-                                        "  } +"),
-                                
fieldWithPath("balanceRange").description("Product's balance range"),
-                                
fieldWithPath("interestRange").description("Products interest Range"),
-                                
fieldWithPath("interestBasis").description("Products's interest basis"),
-                                
fieldWithPath("patternPackage").description("Product's pattern package"),
-                                
fieldWithPath("description").description("product description"),
-                                
fieldWithPath("currencyCode").description("Country currency code"),
-                                
fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency 
unit"),
-                                
fieldWithPath("accountAssignments").description("Account Assignments"),
-                                
fieldWithPath("parameters").description("Product's parameters"),
-                                
fieldWithPath("enabled").description("Readability"))));
-
-    }
-
-
-    @Test
-    public void documentGetProducts() throws Exception {
-        final Product product = createAdjustedProduct(x -> {});
-
-       this.eventRecorder.wait(EventConstants.POST_PRODUCT, 
product.getIdentifier());
-
-        try {
-            this.mockMvc.perform(get("/products?pageIndex=0&size=200")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, 
tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-products", 
preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    
fieldWithPath("identifier").description("Product's identifier"),
-                                    
fieldWithPath("name").description("Product's given name"),
-                                    
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
-                                            " +\n" +
-                                            "_TermRange_ { +\n" +
-                                            "  *enum* _Type_ { +\n" +
-                                            "     temporalUnit, +\n" +
-                                            "     maximum, +\n" +
-                                            "  } +"),
-                                    
fieldWithPath("balanceRange").description("Product's balance range"),
-                                    
fieldWithPath("interestRange").description("Products interest Range"),
-                                    
fieldWithPath("interestBasis").description("Products's interest basis"),
-                                    
fieldWithPath("patternPackage").description("Product's pattern package"),
-                                    
fieldWithPath("description").description("product description"),
-                                    
fieldWithPath("currencyCode").description("Country currency code"),
-                                    
fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency 
unit"),
-                                    
fieldWithPath("accountAssignments").description("Account Assignments"),
-                                    
fieldWithPath("parameters").description("Product's parameters"),
-                                    
fieldWithPath("enabled").description("Readability"))));
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-product");
+
+  @Autowired
+  private WebApplicationContext context;
+
+  private MockMvc mockMvc;
+
+  @Before
+  public void setUp() {
+
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentCreateProduct() throws Exception {
+    final Product product = createAdjustedProduct(x -> {
+    });
+    product.setIdentifier("agro11");
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(product)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-product", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Product's 
identifier"),
+                            fieldWithPath("name").description("Product's given 
name"),
+                            
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
+                                    " +\n" +
+                                    "_TermRange_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     temporalUnit, +\n" +
+                                    "     maximum, +\n" +
+                                    "  } +"),
+                            
fieldWithPath("balanceRange").description("Product's balance range"),
+                            
fieldWithPath("interestRange").description("Products interest Range"),
+                            
fieldWithPath("interestBasis").description("Products's interest basis"),
+                            
fieldWithPath("patternPackage").description("Product's pattern package"),
+                            fieldWithPath("description").description("product 
description"),
+                            fieldWithPath("currencyCode").description("Country 
currency code"),
+                            
fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency 
unit"),
+                            
fieldWithPath("accountAssignments").description("Account Assignments"),
+                            fieldWithPath("parameters").description("Product's 
parameters"),
+                            
fieldWithPath("enabled").description("Readability"))));
+
+  }
+
+
+  @Test
+  public void documentGetProducts() throws Exception {
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+    this.eventRecorder.wait(EventConstants.POST_PRODUCT, 
product.getIdentifier());
+
+    try {
+      this.mockMvc.perform(get("/products?pageIndex=0&size=200")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-products", 
preprocessRequest(prettyPrint()),
+                      responseFields(
+                              
fieldWithPath("identifier").description("Product's identifier"),
+                              fieldWithPath("name").description("Product's 
given name"),
+                              
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
+                                      " +\n" +
+                                      "_TermRange_ { +\n" +
+                                      "  *enum* _Type_ { +\n" +
+                                      "     temporalUnit, +\n" +
+                                      "     maximum, +\n" +
+                                      "  } +"),
+                              
fieldWithPath("balanceRange").description("Product's balance range"),
+                              
fieldWithPath("interestRange").description("Products interest Range"),
+                              
fieldWithPath("interestBasis").description("Products's interest basis"),
+                              
fieldWithPath("patternPackage").description("Product's pattern package"),
+                              
fieldWithPath("description").description("product description"),
+                              
fieldWithPath("currencyCode").description("Country currency code"),
+                              
fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency 
unit"),
+                              
fieldWithPath("accountAssignments").description("Account Assignments"),
+                              
fieldWithPath("parameters").description("Product's parameters"),
+                              
fieldWithPath("enabled").description("Readability"))));
     } catch (Exception e) {
-        e.printStackTrace();
+      e.printStackTrace();
     }
 
-}
-
-    @Test
-    public void documentDeleteProducts() throws Exception {
-
-        final Product product = createAdjustedProduct(x -> {
-        });
-
-
-        this.mockMvc.perform(delete("/products/" + product.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-products", 
preprocessResponse(prettyPrint())));
-
-    }
-
-    @Test
-    public void documentGetProduct() throws Exception {
-
-        final Product product = createAdjustedProduct(x -> {
-        });
-
-        this.mockMvc.perform(get("/products/" + product.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-product", 
preprocessRequest(prettyPrint()),
-                        responseFields(
-                                
fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge 
definitions given name"),
-                                
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
-                                        " +\n" +
-                                        "_TermRange_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     temporalUnit, +\n" +
-                                        "     maximum, +\n" +
-                                        "  } +"),
-                                
fieldWithPath("balanceRange").description("From account designator"),
-                                fieldWithPath("interestRange").description("To 
account designator"),
-                                
fieldWithPath("interestBasis").description("Charge definition's amount"),
-                                
fieldWithPath("patternPackage").description("Charge definitions charge method"),
-                                
fieldWithPath("description").description("Charge definitions charge method"),
-                                
fieldWithPath("currencyCode").description("Charge definition's charge action"),
-                                
fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
-                                
fieldWithPath("accountAssignments").description("Readability"),
-                                
fieldWithPath("parameters").description("Readability"),
-                                
fieldWithPath("enabled").description("Readability"),
-                                
fieldWithPath("createdOn").description("Readability"),
-                                
fieldWithPath("createdBy").description("Readability"),
-                                
fieldWithPath("lastModifiedOn").description("Readability"),
-                                
fieldWithPath("lastModifiedBy").description("Readability"))));
-
-}
-
-    @Test
-    public void documentChangeProduct() throws Exception {
-
-        final Product product = createAdjustedProduct(x -> {});
-        product.setName("akawo");
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(product)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-product", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge 
definitions given name"),
-                                
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
-                                        " +\n" +
-                                        "_TermRange_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     temporalUnit, +\n" +
-                                        "     maximum, +\n" +
-                                        "  } +"),
-                                
fieldWithPath("balanceRange").description("From account designator"),
-                                fieldWithPath("interestRange").description("To 
account designator"),
-                                
fieldWithPath("interestBasis").description("Charge definition's amount"),
-                                
fieldWithPath("patternPackage").description("Charge definitions charge method"),
-                                
fieldWithPath("description").description("Charge definitions charge method"),
-                                
fieldWithPath("currencyCode").description("Charge definition's charge action"),
-                                
fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
-                                
fieldWithPath("accountAssignments").description("Readability"),
-                                
fieldWithPath("parameters").description("Readability"),
-                                
fieldWithPath("enabled").description("Readability"))));
-
-    }
-
-    @Test
-    public void documentGetIncompleteAccountAssignments () throws Exception {
-
-        final Product product = createAdjustedProduct(x -> {});
-
-        this.mockMvc.perform(get("/products/" + 
product.getIdentifier()+"/incompleteaccountassignments")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-incomplete-account-assignments", 
preprocessRequest(prettyPrint()),
-                        responseFields(
-                               )));
-
-    }
-
-
-
+  }
+
+  @Test
+  public void documentDeleteProducts() throws Exception {
+
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-products", 
preprocessResponse(prettyPrint())));
+
+  }
+
+  @Test
+  public void documentGetProduct() throws Exception {
+
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+    this.mockMvc.perform(get("/products/" + product.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-product", preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("identifier").description("Charge 
definition's identifier"),
+                            fieldWithPath("name").description("Charge 
definitions given name"),
+                            
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
+                                    " +\n" +
+                                    "_TermRange_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     temporalUnit, +\n" +
+                                    "     maximum, +\n" +
+                                    "  } +"),
+                            fieldWithPath("balanceRange").description("From 
account designator"),
+                            fieldWithPath("interestRange").description("To 
account designator"),
+                            fieldWithPath("interestBasis").description("Charge 
definition's amount"),
+                            
fieldWithPath("patternPackage").description("Charge definitions charge method"),
+                            fieldWithPath("description").description("Charge 
definitions charge method"),
+                            fieldWithPath("currencyCode").description("Charge 
definition's charge action"),
+                            
fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
+                            
fieldWithPath("accountAssignments").description("Readability"),
+                            
fieldWithPath("parameters").description("Readability"),
+                            
fieldWithPath("enabled").description("Readability"),
+                            
fieldWithPath("createdOn").description("Readability"),
+                            
fieldWithPath("createdBy").description("Readability"),
+                            
fieldWithPath("lastModifiedOn").description("Readability"),
+                            
fieldWithPath("lastModifiedBy").description("Readability"))));
+
+  }
+
+  @Test
+  public void documentChangeProduct() throws Exception {
+
+    final Product product = createAdjustedProduct(x -> {
+    });
+    product.setName("akawo");
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(product)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-product", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Charge 
definition's identifier"),
+                            fieldWithPath("name").description("Charge 
definitions given name"),
+                            
fieldWithPath("termRange").type("List<TermRange>").description("The term range 
+\n" +
+                                    " +\n" +
+                                    "_TermRange_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     temporalUnit, +\n" +
+                                    "     maximum, +\n" +
+                                    "  } +"),
+                            fieldWithPath("balanceRange").description("From 
account designator"),
+                            fieldWithPath("interestRange").description("To 
account designator"),
+                            fieldWithPath("interestBasis").description("Charge 
definition's amount"),
+                            
fieldWithPath("patternPackage").description("Charge definitions charge method"),
+                            fieldWithPath("description").description("Charge 
definitions charge method"),
+                            fieldWithPath("currencyCode").description("Charge 
definition's charge action"),
+                            
fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
+                            
fieldWithPath("accountAssignments").description("Readability"),
+                            
fieldWithPath("parameters").description("Readability"),
+                            
fieldWithPath("enabled").description("Readability"))));
+
+  }
+
+  @Test
+  public void documentGetIncompleteAccountAssignments() throws Exception {
+
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/incompleteaccountassignments")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-incomplete-account-assignments", 
preprocessRequest(prettyPrint()),
+                    responseFields(
+                    )));
+
+  }
 
 
 }
diff --git 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java
 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java
index ee2f358..a3d62ed 100644
--- 
a/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java
+++ 
b/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -27,140 +45,140 @@
 
 public class TaskDefinitionApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-taskdefinition");
-
-    @Autowired
-    private WebApplicationContext context;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp ( ) {
-
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
-
-    @Test
-    public void documentListTaskDefinitions ( ) throws Exception {
-        final Product product = createProduct();
-
-        try {
-            this.mockMvc.perform(get("/products/" 
+product.getIdentifier()+"/tasks/")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, 
tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-list-task-definitions", 
preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
-                                    
fieldWithPath("name").type("String").description("task identifier's name"),
-                                    
fieldWithPath("description").type("String").description("task identifier's 
description"),
-                                    fieldWithPath("actions").description("The 
task definition action"),
-                                    
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
-                                    
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier")
-                            )
-                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
-
-
-    @Test
-    public void documentGetTaskDefinition ( ) throws Exception {
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
-
-        try {
-            this.mockMvc.perform(get("/products/" 
+product.getIdentifier()+"/tasks/" +taskDefinition.getIdentifier())
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, 
tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-task-definition", 
preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
-                                    
fieldWithPath("name").type("String").description("task identifier's name"),
-                                    
fieldWithPath("description").type("String").description("task identifier's 
description"),
-                                    fieldWithPath("actions").description("The 
task definition action"),
-                                    
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
-                                    
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier")
-                            )
-                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
-
-    @Test
-    public void documentChangeTaskDefinition () throws Exception {
-
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
-        taskDefinition.setDescription("Describe task definition");
-        taskDefinition.setFourEyes(false);
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier() + 
"/tasks/" +taskDefinition.getIdentifier() )
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(taskDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-task-definition", 
preprocessRequest(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
-                                
fieldWithPath("name").type("String").description("task identifier's name"),
-                                
fieldWithPath("description").type("String").description("task identifier's 
description"),
-                                fieldWithPath("actions").description("The task 
definition action"),
-                                
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
-                                
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier")
-                        )
-
-                        ));
-
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new 
JUnitRestDocumentation("build/doc/generated-snippets/test-taskdefinition");
+
+  @Autowired
+  private WebApplicationContext context;
+
+  private MockMvc mockMvc;
+
+  @Before
+  public void setUp() {
+
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentListTaskDefinitions() throws Exception {
+    final Product product = createProduct();
+
+    try {
+      this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/tasks/")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-list-task-definitions", 
preprocessRequest(prettyPrint()),
+                      responseFields(
+                              
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
+                              
fieldWithPath("name").type("String").description("task identifier's name"),
+                              
fieldWithPath("description").type("String").description("task identifier's 
description"),
+                              fieldWithPath("actions").description("The task 
definition action"),
+                              
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
+                              
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier")
+                      )
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
 
-    @Test
-    public void documentAddTaskDefinition () throws Exception {
-
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
-        taskDefinition.setIdentifier("ask");
-
-        Gson gson = new Gson();
-        
this.mockMvc.perform(post("/products/"+product.getIdentifier()+"/tasks/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(taskDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-add-task-definition", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
-                                
fieldWithPath("name").type("String").description("task identifier's name"),
-                                
fieldWithPath("description").type("String").description("task identifier's 
description"),
-                                fieldWithPath("actions").description("The task 
definition action"),
-                                
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
-                                
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier"))));
+  }
+
+
+  @Test
+  public void documentGetTaskDefinition() throws Exception {
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
+
+    try {
+      this.mockMvc.perform(get("/products/" + product.getIdentifier() + 
"/tasks/" + taskDefinition.getIdentifier())
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-task-definition", 
preprocessRequest(prettyPrint()),
+                      responseFields(
+                              
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
+                              
fieldWithPath("name").type("String").description("task identifier's name"),
+                              
fieldWithPath("description").type("String").description("task identifier's 
description"),
+                              fieldWithPath("actions").description("The task 
definition action"),
+                              
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
+                              
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier")
+                      )
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
 
-    @Test
-    public void documentDeleteTaskDefinition () throws Exception {
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
-
-        
this.mockMvc.perform(delete("/products/"+product.getIdentifier()+"/tasks/" + 
taskDefinition.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-task-definition", 
preprocessResponse(prettyPrint())));
-    }
+  }
+
+  @Test
+  public void documentChangeTaskDefinition() throws Exception {
+
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
+    taskDefinition.setDescription("Describe task definition");
+    taskDefinition.setFourEyes(false);
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + 
"/tasks/" + taskDefinition.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(taskDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-task-definition", 
preprocessRequest(prettyPrint()),
+                    requestFields(
+                            
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
+                            
fieldWithPath("name").type("String").description("task identifier's name"),
+                            
fieldWithPath("description").type("String").description("task identifier's 
description"),
+                            fieldWithPath("actions").description("The task 
definition action"),
+                            
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
+                            
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier")
+                    )
+
+            ));
+
+  }
+
+  @Test
+  public void documentAddTaskDefinition() throws Exception {
+
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
+    taskDefinition.setIdentifier("ask");
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + 
"/tasks/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(taskDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-add-task-definition", 
preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            
fieldWithPath("identifier").type("String").description("task identifier's 
identifier"),
+                            
fieldWithPath("name").type("String").description("task identifier's name"),
+                            
fieldWithPath("description").type("String").description("task identifier's 
description"),
+                            fieldWithPath("actions").description("The task 
definition action"),
+                            
fieldWithPath("fourEyes").type("String").description("task identifier's 
identifier"),
+                            
fieldWithPath("mandatory").type("String").description("task identifier's 
identifier"))));
+  }
+
+  @Test
+  public void documentDeleteTaskDefinition() throws Exception {
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
+
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier() + 
"/tasks/" + taskDefinition.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-task-definition", 
preprocessResponse(prettyPrint())));
+  }
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to