From 44650034b16f6fbb88a4ff40d7fd6c48fe69b08d Mon Sep 17 00:00:00 2001 From: Manthan Surkar Date: Thu, 9 Jul 2020 17:16:21 +0530 Subject: [PATCH] FINERACT-1047 Added integration test for limit param (audit trails) --- .../AuditIntegrationTest.java | 26 +++++++++++++++++++ .../integrationtests/common/AuditHelper.java | 14 ++++++++++ 2 files changed, 40 insertions(+) diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AuditIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AuditIntegrationTest.java index b9570b5b3..e69b2e999 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AuditIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AuditIntegrationTest.java @@ -25,6 +25,7 @@ import io.restassured.specification.RequestSpecification; import io.restassured.specification.ResponseSpecification; import java.util.HashMap; import java.util.List; +import java.util.Random; import org.apache.fineract.integrationtests.common.AuditHelper; import org.apache.fineract.integrationtests.common.ClientHelper; import org.apache.fineract.integrationtests.common.OfficeHelper; @@ -102,4 +103,29 @@ public class AuditIntegrationTest { auditHelper.verifyOneAuditOnly(auditsRecieved, officeId, "CREATE", "OFFICE"); } + /** + * + * Here we test that audit request with limit x only returns x entries + */ + @Test + public void checkAuditsWithLimit() { + // Create client + final Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec); + + // The following loop would ensure database have atleast 8 audits. + for (int i = 0; i < 4; i++) { + // Close client + this.clientHelper.closeClient(clientId); + // Activate client + this.clientHelper.reactivateClient(clientId); + } + + Random rand = new Random(); + for (int i = 0; i < 3; i++) { + // limit contains a number between 1-8 + int limit = rand.nextInt(7) + 1; + auditHelper.verifyLimitParameterfor(limit); + } + } + } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/AuditHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/AuditHelper.java index cc995c637..0415bc163 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/AuditHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/AuditHelper.java @@ -25,6 +25,7 @@ import io.restassured.specification.ResponseSpecification; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,6 +56,15 @@ public class AuditHelper { return responseAudits; } + public List getAuditDetails(final int limit) { + + final String AUDIT_URL = "/fineract-provider/api/v1/audits?paged=true&limit=" + Integer.toString(limit) + "&" + + Utils.TENANT_IDENTIFIER; + LinkedHashMap responseAudits = Utils.performServerGet(requestSpec, responseSpec, AUDIT_URL, ""); + return (List) responseAudits.get("pageItems"); + + } + /** * Some audit actions can only be done once Eg: Creation of a client with id 123, hence we verify number of audits * For such operations is "equal" to 1 always @@ -86,4 +96,8 @@ public class AuditHelper { assertEquals(expected, actual, "Error in creating audit!"); } + public void verifyLimitParameterfor(final int limit) { + assertEquals(limit, getAuditDetails(limit).size(), "Incorrect number of audits recieved for limit: " + Integer.toString(limit)); + } + }