diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/InstanceModeIntegrationTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/InstanceModeIntegrationTest.java index 4e3c07514bf..a36521a2cd3 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/InstanceModeIntegrationTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/InstanceModeIntegrationTest.java @@ -22,18 +22,12 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; -import io.restassured.builder.RequestSpecBuilder; -import io.restassured.builder.ResponseSpecBuilder; -import io.restassured.http.ContentType; -import io.restassured.specification.RequestSpecification; -import io.restassured.specification.ResponseSpecification; -import org.apache.fineract.client.feign.util.CallFailedRuntimeException; +import org.apache.fineract.client.util.CallFailedRuntimeException; import org.apache.fineract.client.models.GetOfficesResponse; import org.apache.fineract.client.models.PostClientsRequest; import org.apache.fineract.integrationtests.common.ClientHelper; import org.apache.fineract.integrationtests.common.OfficeHelper; import org.apache.fineract.integrationtests.common.SchedulerJobHelper; -import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.support.instancemode.ConfigureInstanceMode; import org.apache.fineract.integrationtests.support.instancemode.InstanceModeSupportExtension; import org.junit.jupiter.api.BeforeEach; @@ -43,24 +37,13 @@ @ExtendWith(InstanceModeSupportExtension.class) public class InstanceModeIntegrationTest { - private ResponseSpecification responseSpec200; - private ResponseSpecification responseSpec405; - private RequestSpecification requestSpec; private SchedulerJobHelper schedulerJobHelper; private int jobId; @BeforeEach public void setup() throws InterruptedException { - Utils.initializeRESTAssured(); - - requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build(); - requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); - requestSpec.header("Fineract-Platform-TenantId", "default"); - responseSpec200 = new ResponseSpecBuilder().expectStatusCode(200).build(); - responseSpec405 = new ResponseSpecBuilder().expectStatusCode(405).build(); - - schedulerJobHelper = new SchedulerJobHelper(requestSpec); - // Apply Annual Fee For Savings" + schedulerJobHelper = new SchedulerJobHelper(); + // Apply Annual Fee For Savings jobId = schedulerJobHelper.getSchedulerJobIdByShortName("SA_AANF"); } @@ -84,12 +67,16 @@ public void testGetHeadOfficeWorks_WhenInstanceModeIsWriteOnly() { assertNotNull(result); } + + @ConfigureInstanceMode(readEnabled = false, writeEnabled = false, batchWorkerEnabled = true, batchManagerEnabled = true) @Test public void testGetHeadOfficeDoesntWork_WhenInstanceModeIsBatchOnly() { // given // when - CallFailedRuntimeException exception = assertThrows(CallFailedRuntimeException.class, () -> OfficeHelper.getHeadOffice()); + org.apache.fineract.client.feign.util.CallFailedRuntimeException exception = assertThrows( + org.apache.fineract.client.feign.util.CallFailedRuntimeException.class, + () -> OfficeHelper.getHeadOffice()); // then assertEquals(405, exception.getStatus()); } @@ -99,9 +86,8 @@ public void testGetHeadOfficeDoesntWork_WhenInstanceModeIsBatchOnly() { public void testCreateClientDoesntWork_WhenReadOnly() { // given PostClientsRequest request = ClientHelper.defaultClientCreationRequest(); - // when - ClientHelper.createClient(requestSpec, responseSpec405, request); - // then no exception thrown + // when/then + assertThrows(CallFailedRuntimeException.class, () -> ClientHelper.createClient(request)); } @ConfigureInstanceMode(readEnabled = false, writeEnabled = true, batchWorkerEnabled = false, batchManagerEnabled = false) @@ -110,7 +96,7 @@ public void testCreateClientWorks_WhenWriteOnly() { // given PostClientsRequest request = ClientHelper.defaultClientCreationRequest(); // when - Integer result = ClientHelper.createClient(requestSpec, responseSpec200, request); + var result = ClientHelper.createClient(request); // then assertNotNull(result); } @@ -120,27 +106,22 @@ public void testCreateClientWorks_WhenWriteOnly() { public void testCreateClientDoesntWork_WhenBatchOnly() { // given PostClientsRequest request = ClientHelper.defaultClientCreationRequest(); - // when - ClientHelper.createClient(requestSpec, responseSpec405, request); - // then no exception thrown + // when/then + assertThrows(CallFailedRuntimeException.class, () -> ClientHelper.createClient(request)); } @ConfigureInstanceMode(readEnabled = true, writeEnabled = false, batchWorkerEnabled = false, batchManagerEnabled = false) @Test public void testRunSchedulerJobDoesntWork_WhenReadOnly() { - // given - // when - schedulerJobHelper.runSchedulerJob(jobId, responseSpec405); - // then no exception thrown + // when/then + assertThrows(CallFailedRuntimeException.class, () -> schedulerJobHelper.runSchedulerJob(jobId)); } @ConfigureInstanceMode(readEnabled = false, writeEnabled = true, batchWorkerEnabled = false, batchManagerEnabled = false) @Test public void testRunSchedulerJobDoesntWork_WhenWriteOnly() { - // given - // when - schedulerJobHelper.runSchedulerJob(jobId, responseSpec405); - // then no exception thrown + // when/then + assertThrows(CallFailedRuntimeException.class, () -> schedulerJobHelper.runSchedulerJob(jobId)); } @ConfigureInstanceMode(readEnabled = false, writeEnabled = false, batchWorkerEnabled = true, batchManagerEnabled = true) diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java index 093f2f0c2bf..363689bfb38 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java @@ -43,6 +43,7 @@ import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; +import org.apache.fineract.client.models.GetJobsResponse; import org.apache.fineract.client.models.PutJobsJobIDRequest; import org.apache.fineract.client.util.Calls; import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType; @@ -58,6 +59,12 @@ public class SchedulerJobHelper { private final ResponseSpecification response200Spec; private final ResponseSpecification response202Spec; + public SchedulerJobHelper() { + this.requestSpec = null; + this.response200Spec = null; + this.response202Spec = null; + } + // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) @@ -162,8 +169,7 @@ private static String updateSchedulerJobAsJSON(final boolean active) { } public void runSchedulerJob(int jobId) { - final ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(202).build(); - runSchedulerJob(jobId, responseSpec); + Calls.ok(FineractClientHelper.getFineractClient().jobs.executeJob((long) jobId, "executeJob")); } // TODO: Rewrite to use fineract-client instead! @@ -218,18 +224,11 @@ public int getSchedulerJobIdByName(String jobName) { "No such named Job (see org.apache.fineract.infrastructure.jobs.service.JobName enum):" + jobName); } - // TODO: Rewrite to use fineract-client instead! - // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, - // org.apache.fineract.client.models.PostLoansLoanIdRequest) - @Deprecated(forRemoval = true) public int getSchedulerJobIdByShortName(String shortName) { - Map jobMap = getSchedulerJobByShortName(shortName); - final String GET_SCHEDULER_JOB_URL = "/fineract-provider/api/v1/jobs/" + SHORT_NAME_PARAM + "/" + shortName + "?" - + Utils.TENANT_IDENTIFIER; LOG.info("------------------------ RETRIEVING SCHEDULER JOB ID BY SHORT NAME -------------------------"); - Integer response = (Integer) jobMap.get("jobId"); - assertNotNull(response); - return response; + GetJobsResponse job = Calls.ok(FineractClientHelper.getFineractClient().jobs.retrieveByShortName(shortName)); + assertNotNull(job); + return job.getJobId().intValue(); } /**