FINERACT-2081: Integration test clean up - Remove Google truth dependency and Extract Fineract client out from IntegrationTest class

This commit is contained in:
Adam Saghy
2025-01-31 15:00:45 +01:00
parent de462082de
commit 894b6cbf6f
53 changed files with 561 additions and 514 deletions
-4
View File
@@ -675,8 +675,6 @@ configure(project.fineractJavaProjects) {
'org.bouncycastle:bcpkix-jdk15to18', 'org.bouncycastle:bcpkix-jdk15to18',
'org.bouncycastle:bcprov-jdk15to18', 'org.bouncycastle:bcprov-jdk15to18',
'org.awaitility:awaitility', 'org.awaitility:awaitility',
'com.google.truth:truth',
'com.google.truth.extensions:truth-java8-extension'
) )
testCompileOnly 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok'
@@ -791,8 +789,6 @@ configure(project.fineractCustomProjects) {
'org.bouncycastle:bcpkix-jdk15to18', 'org.bouncycastle:bcpkix-jdk15to18',
'org.bouncycastle:bcprov-jdk15to18', 'org.bouncycastle:bcprov-jdk15to18',
'org.awaitility:awaitility', 'org.awaitility:awaitility',
'com.google.truth:truth',
'com.google.truth.extensions:truth-java8-extension',
'io.github.classgraph:classgraph', 'io.github.classgraph:classgraph',
'io.cucumber:cucumber-core', 'io.cucumber:cucumber-core',
'io.cucumber:cucumber-java:7.20.1', 'io.cucumber:cucumber-java:7.20.1',
@@ -54,8 +54,6 @@ dependencyManagement {
dependency 'org.eclipse.persistence:org.eclipse.persistence.jpa:4.0.2' dependency 'org.eclipse.persistence:org.eclipse.persistence.jpa:4.0.2'
dependency 'com.google.guava:guava:32.0.0-jre' dependency 'com.google.guava:guava:32.0.0-jre'
dependency 'com.google.code.gson:gson:2.11.0' dependency 'com.google.code.gson:gson:2.11.0'
dependency 'com.google.truth:truth:1.4.4'
dependency 'com.google.truth.extensions:truth-java8-extension:1.4.4'
dependency 'com.google.googlejavaformat:google-java-format:1.24.0' dependency 'com.google.googlejavaformat:google-java-format:1.24.0'
dependency 'org.apache.commons:commons-collections4:4.4' dependency 'org.apache.commons:commons-collections4:4.4'
dependency ('software.amazon.msk:aws-msk-iam-auth:2.2.0') { dependency ('software.amazon.msk:aws-msk-iam-auth:2.2.0') {
+2
View File
@@ -40,4 +40,6 @@ dependencies {
exclude group: 'org.apache.oltu.oauth2', module: 'org.apache.oltu.oauth2.common' exclude group: 'org.apache.oltu.oauth2', module: 'org.apache.oltu.oauth2.common'
exclude group: 'org.slf4j' exclude group: 'org.slf4j'
} }
testImplementation 'org.assertj:assertj-core'
} }
@@ -18,8 +18,8 @@
*/ */
package org.apache.fineract.client.util; package org.apache.fineract.client.util;
import com.google.common.truth.Truth; import static org.assertj.core.api.Assertions.assertThat;
import com.google.common.truth.Truth8;
import okhttp3.Headers; import okhttp3.Headers;
import okhttp3.MediaType; import okhttp3.MediaType;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -29,32 +29,32 @@ public class PartsTest {
@Test @Test
void validMediaType() { void validMediaType() {
Truth.assertThat(Parts.mediaType("test.jpg")).isEqualTo(MediaType.get("image/jpeg")); assertThat(Parts.mediaType("test.jpg")).isEqualTo(MediaType.get("image/jpeg"));
} }
@Test @Test
void dotMediaType() { void dotMediaType() {
Truth.assertThat(Parts.mediaType("test.")).isNull(); assertThat(Parts.mediaType("test.")).isNull();
} }
@Test @Test
void emptyMediaType() { void emptyMediaType() {
Truth.assertThat(Parts.mediaType("")).isNull(); assertThat(Parts.mediaType("")).isNull();
} }
@Test @Test
void nullMediaType() { void nullMediaType() {
Truth.assertThat(Parts.mediaType(null)).isNull(); assertThat(Parts.mediaType(null)).isNull();
} }
@Test @Test
void fileName() { void fileName() {
Truth8.assertThat(Parts.fileName(Response.success(null, Headers.of("Content-Disposition", "attachment; filename=\"doc.pdf\"")))) assertThat(Parts.fileName(Response.success(null, Headers.of("Content-Disposition", "attachment; filename=\"doc.pdf\""))))
.hasValue("doc.pdf"); .hasValue("doc.pdf");
} }
@Test @Test
void fileNameWithoutContentDisposition() { void fileNameWithoutContentDisposition() {
Truth8.assertThat(Parts.fileName(Response.success(null))).isEmpty(); assertThat(Parts.fileName(Response.success(null))).isEmpty();
} }
} }
@@ -18,7 +18,6 @@
*/ */
package org.apache.fineract.batch.command.internal; package org.apache.fineract.batch.command.internal;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
@@ -35,6 +34,7 @@ import org.apache.fineract.batch.domain.BatchResponse;
import org.apache.fineract.infrastructure.core.api.MutableUriInfo; import org.apache.fineract.infrastructure.core.api.MutableUriInfo;
import org.apache.fineract.infrastructure.dataqueries.api.DatatablesApiResource; import org.apache.fineract.infrastructure.dataqueries.api.DatatablesApiResource;
import org.apache.http.HttpStatus; import org.apache.http.HttpStatus;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.MethodSource;
@@ -91,7 +91,7 @@ public class GetDatatableEntryByAppTableIdAndDataTableIdCommandStrategyTest {
verify(testContext.dataTableApiResource).getDatatableManyEntry(eq(datatableName), eq(loanId), eq(datatableId), eq(null), verify(testContext.dataTableApiResource).getDatatableManyEntry(eq(datatableName), eq(loanId), eq(datatableId), eq(null),
eq(genericResultSet), testContext.uriInfoCaptor.capture()); eq(genericResultSet), testContext.uriInfoCaptor.capture());
MutableUriInfo mutableUriInfo = testContext.uriInfoCaptor.getValue(); MutableUriInfo mutableUriInfo = testContext.uriInfoCaptor.getValue();
assertThat(mutableUriInfo.getAdditionalQueryParameters()).hasSize(numberOfQueryParams); Assertions.assertThat(mutableUriInfo.getAdditionalQueryParameters()).hasSize(numberOfQueryParams);
if (numberOfQueryParams > 0) { if (numberOfQueryParams > 0) {
List<String> param = mutableUriInfo.getAdditionalQueryParameters().get("genericResultSet"); List<String> param = mutableUriInfo.getAdditionalQueryParameters().get("genericResultSet");
assertEquals(param.get(0), "true"); assertEquals(param.get(0), "true");
@@ -18,7 +18,7 @@
*/ */
package org.apache.fineract.batch.command.internal; package org.apache.fineract.batch.command.internal;
import static com.google.common.truth.Truth.assertThat; import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
@@ -18,7 +18,7 @@
*/ */
package org.apache.fineract.infrastructure.event.external.jobs; package org.apache.fineract.infrastructure.event.external.jobs;
import static com.google.common.truth.Truth.assertThat; import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
@@ -81,6 +81,7 @@ import org.apache.fineract.client.models.PutGlobalConfigurationsRequest;
import org.apache.fineract.client.models.PutLoansLoanIdResponse; import org.apache.fineract.client.models.PutLoansLoanIdResponse;
import org.apache.fineract.client.util.CallFailedRuntimeException; import org.apache.fineract.client.util.CallFailedRuntimeException;
import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants; import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.BatchHelper; import org.apache.fineract.integrationtests.common.BatchHelper;
import org.apache.fineract.integrationtests.common.BusinessDateHelper; import org.apache.fineract.integrationtests.common.BusinessDateHelper;
import org.apache.fineract.integrationtests.common.ClientHelper; import org.apache.fineract.integrationtests.common.ClientHelper;
@@ -113,7 +114,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
@Slf4j @Slf4j
@ExtendWith(LoanTestLifecycleExtension.class) @ExtendWith(LoanTestLifecycleExtension.class)
public abstract class BaseLoanIntegrationTest { public abstract class BaseLoanIntegrationTest extends IntegrationTest {
protected static final String DATETIME_PATTERN = "dd MMMM yyyy"; protected static final String DATETIME_PATTERN = "dd MMMM yyyy";
@@ -18,9 +18,9 @@
*/ */
package org.apache.fineract.integrationtests; package org.apache.fineract.integrationtests;
import static org.apache.fineract.integrationtests.client.IntegrationTest.assertThat;
import static org.apache.fineract.integrationtests.common.ClientHelper.DEFAULT_DATE; import static org.apache.fineract.integrationtests.common.ClientHelper.DEFAULT_DATE;
import static org.apache.fineract.integrationtests.common.ClientHelper.LEGALFORM_ID_PERSON; import static org.apache.fineract.integrationtests.common.ClientHelper.LEGALFORM_ID_PERSON;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -232,9 +232,9 @@ public class ClientTest {
List<GetClientClientIdAddressesResponse> clientAddresses = ClientHelper.getClientAddresses(requestSpec, responseSpec, clientId); List<GetClientClientIdAddressesResponse> clientAddresses = ClientHelper.getClientAddresses(requestSpec, responseSpec, clientId);
GetClientClientIdAddressesResponse addressResponse = clientAddresses.get(0); GetClientClientIdAddressesResponse addressResponse = clientAddresses.get(0);
assertThat(addressResponse.getCity()).isEqualTo(city); assertThat(addressResponse.getCity()).isEqualTo(city);
assertThat(addressResponse.getCountryId()).isEqualTo(countryId); assertThat(addressResponse.getCountryId()).isEqualTo((long) countryId);
assertThat(addressResponse.getStateProvinceId()).isEqualTo(stateId); assertThat(addressResponse.getStateProvinceId()).isEqualTo((long) stateId);
assertThat(addressResponse.getAddressTypeId()).isEqualTo(addressTypeId); assertThat(addressResponse.getAddressTypeId()).isEqualTo((long) addressTypeId);
assertThat(addressResponse.getIsActive()).isEqualTo(addressIsActive); assertThat(addressResponse.getIsActive()).isEqualTo(addressIsActive);
assertThat(addressResponse.getPostalCode()).isEqualTo(postalCode); assertThat(addressResponse.getPostalCode()).isEqualTo(postalCode);
} }
@@ -262,9 +262,9 @@ public class ClientTest {
List<GetClientClientIdAddressesResponse> clientAddresses = ClientHelper.getClientAddresses(requestSpec, responseSpec, clientId); List<GetClientClientIdAddressesResponse> clientAddresses = ClientHelper.getClientAddresses(requestSpec, responseSpec, clientId);
GetClientClientIdAddressesResponse addressResponse = clientAddresses.get(0); GetClientClientIdAddressesResponse addressResponse = clientAddresses.get(0);
assertThat(addressResponse.getCity()).isEqualTo(city); assertThat(addressResponse.getCity()).isEqualTo(city);
assertThat(addressResponse.getCountryId()).isEqualTo(countryId); assertThat(addressResponse.getCountryId()).isEqualTo((long) countryId);
assertThat(addressResponse.getStateProvinceId()).isEqualTo(stateId); assertThat(addressResponse.getStateProvinceId()).isEqualTo((long) stateId);
assertThat(addressResponse.getAddressTypeId()).isEqualTo(addressTypeId); assertThat(addressResponse.getAddressTypeId()).isEqualTo((long) addressTypeId);
assertThat(addressResponse.getIsActive()).isEqualTo(addressIsActive); assertThat(addressResponse.getIsActive()).isEqualTo(addressIsActive);
assertThat(addressResponse.getPostalCode()).isEqualTo(postalCode); assertThat(addressResponse.getPostalCode()).isEqualTo(postalCode);
} }
@@ -22,7 +22,6 @@ import static java.lang.Boolean.TRUE;
import static org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType.BUSINESS_DATE; import static org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType.BUSINESS_DATE;
import static org.apache.fineract.portfolio.delinquency.domain.DelinquencyAction.PAUSE; import static org.apache.fineract.portfolio.delinquency.domain.DelinquencyAction.PAUSE;
import static org.apache.fineract.portfolio.delinquency.domain.DelinquencyAction.RESUME; import static org.apache.fineract.portfolio.delinquency.domain.DelinquencyAction.RESUME;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -22,7 +22,6 @@ import static java.time.temporal.ChronoUnit.DAYS;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail; import static org.junit.jupiter.api.Assertions.fail;
import com.google.common.truth.Truth;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
@@ -52,6 +51,7 @@ import org.apache.fineract.accounting.common.AccountingConstants.FinancialActivi
import org.apache.fineract.infrastructure.core.api.JsonQuery; import org.apache.fineract.infrastructure.core.api.JsonQuery;
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException; import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper; import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.ClientHelper; import org.apache.fineract.integrationtests.common.ClientHelper;
import org.apache.fineract.integrationtests.common.CommonConstants; import org.apache.fineract.integrationtests.common.CommonConstants;
import org.apache.fineract.integrationtests.common.SchedulerJobHelper; import org.apache.fineract.integrationtests.common.SchedulerJobHelper;
@@ -82,7 +82,7 @@ import org.mockito.Mockito;
@Slf4j @Slf4j
@SuppressWarnings({ "unused", "unchecked", "rawtypes", "static-access" }) @SuppressWarnings({ "unused", "unchecked", "rawtypes", "static-access" })
public class FixedDepositTest { public class FixedDepositTest extends IntegrationTest {
private ResponseSpecification responseSpec; private ResponseSpecification responseSpec;
private RequestSpecification requestSpec; private RequestSpecification requestSpec;
@@ -1946,8 +1946,7 @@ public class FixedDepositTest {
maturityAmount = new BigDecimal(maturityAmount).setScale(0, RoundingMode.FLOOR).floatValue(); maturityAmount = new BigDecimal(maturityAmount).setScale(0, RoundingMode.FLOOR).floatValue();
log.info("{}", principal.toString()); log.info("{}", principal.toString());
Truth.assertWithMessage("Verifying Maturity amount for Fixed Deposit Account").that(maturityAmount).isAnyOf(principal, assertThat(maturityAmount).isIn(principal, principal - 1); // FINERACT-887
principal - 1); // FINERACT-887
} }
@Test @Test
@@ -19,7 +19,6 @@
package org.apache.fineract.integrationtests; package org.apache.fineract.integrationtests;
import static org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType.BUSINESS_DATE; import static org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType.BUSINESS_DATE;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -20,7 +20,6 @@ package org.apache.fineract.integrationtests;
import static java.lang.Boolean.TRUE; import static java.lang.Boolean.TRUE;
import static org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType.BUSINESS_DATE; import static org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType.BUSINESS_DATE;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -18,8 +18,6 @@
*/ */
package org.apache.fineract.integrationtests; package org.apache.fineract.integrationtests;
import static org.assertj.core.api.Assertions.assertThat;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -58,7 +58,7 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
request.submittedOnDate(formattedDate); request.submittedOnDate(formattedDate);
request.setExternalId(EXTERNAL_ID); request.setExternalId(EXTERNAL_ID);
Response<PostSavingsAccountsResponse> response = okR(fineract().savingsAccounts.submitApplication2(request)); Response<PostSavingsAccountsResponse> response = okR(fineractClient().savingsAccounts.submitApplication2(request));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -71,7 +71,7 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
PutSavingsAccountsAccountIdRequest request = new PutSavingsAccountsAccountIdRequest(); PutSavingsAccountsAccountIdRequest request = new PutSavingsAccountsAccountIdRequest();
request.setLocale(locale); request.setLocale(locale);
request.setNominalAnnualInterestRate(5.999); request.setNominalAnnualInterestRate(5.999);
Response<PutSavingsAccountsAccountIdResponse> response = okR(fineract().savingsAccounts.update21(EXTERNAL_ID, request, "")); Response<PutSavingsAccountsAccountIdResponse> response = okR(fineractClient().savingsAccounts.update21(EXTERNAL_ID, request, ""));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -86,7 +86,7 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
request.setLocale(locale); request.setLocale(locale);
request.setApprovedOnDate(formattedDate); request.setApprovedOnDate(formattedDate);
Response<PostSavingsAccountsAccountIdResponse> response = okR( Response<PostSavingsAccountsAccountIdResponse> response = okR(
fineract().savingsAccounts.handleCommands7(EXTERNAL_ID, request, "approve")); fineractClient().savingsAccounts.handleCommands7(EXTERNAL_ID, request, "approve"));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -100,7 +100,8 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
request.dateFormat(dateFormat); request.dateFormat(dateFormat);
request.setLocale(locale); request.setLocale(locale);
request.setActivatedOnDate(formattedDate); request.setActivatedOnDate(formattedDate);
Response<GetSavingsAccountsAccountIdResponse> response = okR(fineract().savingsAccounts.retrieveOne26(EXTERNAL_ID, false, "all")); Response<GetSavingsAccountsAccountIdResponse> response = okR(
fineractClient().savingsAccounts.retrieveOne26(EXTERNAL_ID, false, "all"));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -114,7 +115,7 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
LOG.info("------------------------------ UNDO APPROVAL SAVINGS ACCOUNT ---------------------------------------"); LOG.info("------------------------------ UNDO APPROVAL SAVINGS ACCOUNT ---------------------------------------");
PostSavingsAccountsAccountIdRequest request = new PostSavingsAccountsAccountIdRequest(); PostSavingsAccountsAccountIdRequest request = new PostSavingsAccountsAccountIdRequest();
Response<PostSavingsAccountsAccountIdResponse> response = okR( Response<PostSavingsAccountsAccountIdResponse> response = okR(
fineract().savingsAccounts.handleCommands7(EXTERNAL_ID, request, "undoapproval")); fineractClient().savingsAccounts.handleCommands7(EXTERNAL_ID, request, "undoapproval"));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -128,7 +129,8 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
request.dateFormat(dateFormat); request.dateFormat(dateFormat);
request.setLocale(locale); request.setLocale(locale);
request.setActivatedOnDate(formattedDate); request.setActivatedOnDate(formattedDate);
Response<GetSavingsAccountsAccountIdResponse> response = okR(fineract().savingsAccounts.retrieveOne26(EXTERNAL_ID, false, "all")); Response<GetSavingsAccountsAccountIdResponse> response = okR(
fineractClient().savingsAccounts.retrieveOne26(EXTERNAL_ID, false, "all"));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -143,7 +145,7 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
request.dateFormat(dateFormat); request.dateFormat(dateFormat);
request.setLocale(locale); request.setLocale(locale);
request.setActivatedOnDate(formattedDate); request.setActivatedOnDate(formattedDate);
Response<DeleteSavingsAccountsAccountIdResponse> response = okR(fineract().savingsAccounts.delete20(EXTERNAL_ID)); Response<DeleteSavingsAccountsAccountIdResponse> response = okR(fineractClient().savingsAccounts.delete20(EXTERNAL_ID));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -158,7 +160,7 @@ public class SavingsAccountsExternalIdTest extends IntegrationTest {
request.setLocale(locale); request.setLocale(locale);
request.setActivatedOnDate(formattedDate); request.setActivatedOnDate(formattedDate);
Response<GetSavingsAccountsAccountIdResponse> response = Calls Response<GetSavingsAccountsAccountIdResponse> response = Calls
.executeU(fineract().savingsAccounts.retrieveOne26(EXTERNAL_ID, false, "all")); .executeU(fineractClient().savingsAccounts.retrieveOne26(EXTERNAL_ID, false, "all"));
assertThat(response.raw().code()).isEqualTo(404); assertThat(response.raw().code()).isEqualTo(404);
} }
@@ -57,7 +57,7 @@ public class SavingsAccountsTest extends IntegrationTest {
request.setDateFormat(dateFormat); request.setDateFormat(dateFormat);
request.submittedOnDate(formattedDate); request.submittedOnDate(formattedDate);
Response<PostSavingsAccountsResponse> response = okR(fineract().savingsAccounts.submitApplication2(request)); Response<PostSavingsAccountsResponse> response = okR(fineractClient().savingsAccounts.submitApplication2(request));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -73,7 +73,7 @@ public class SavingsAccountsTest extends IntegrationTest {
request.setLocale(locale); request.setLocale(locale);
request.setApprovedOnDate(formattedDate); request.setApprovedOnDate(formattedDate);
Response<PostSavingsAccountsAccountIdResponse> response = okR( Response<PostSavingsAccountsAccountIdResponse> response = okR(
fineract().savingsAccounts.handleCommands6((long) savingId, request, "approve")); fineractClient().savingsAccounts.handleCommands6((long) savingId, request, "approve"));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -88,7 +88,7 @@ public class SavingsAccountsTest extends IntegrationTest {
request.setLocale(locale); request.setLocale(locale);
request.setActivatedOnDate(formattedDate); request.setActivatedOnDate(formattedDate);
Response<PostSavingsAccountsAccountIdResponse> response = okR( Response<PostSavingsAccountsAccountIdResponse> response = okR(
fineract().savingsAccounts.handleCommands6((long) savingId, request, "activate")); fineractClient().savingsAccounts.handleCommands6((long) savingId, request, "activate"));
assertThat(response.isSuccessful()).isTrue(); assertThat(response.isSuccessful()).isTrue();
assertThat(response.body()).isNotNull(); assertThat(response.body()).isNotNull();
@@ -22,7 +22,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import com.google.common.truth.Truth;
import io.restassured.builder.RequestSpecBuilder; import io.restassured.builder.RequestSpecBuilder;
import io.restassured.builder.ResponseSpecBuilder; import io.restassured.builder.ResponseSpecBuilder;
import io.restassured.http.ContentType; import io.restassured.http.ContentType;
@@ -60,6 +59,7 @@ import org.apache.fineract.client.models.PutGlobalConfigurationsRequest;
import org.apache.fineract.client.models.PutJobsJobIDRequest; import org.apache.fineract.client.models.PutJobsJobIDRequest;
import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType; import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants; import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.BusinessDateHelper; import org.apache.fineract.integrationtests.common.BusinessDateHelper;
import org.apache.fineract.integrationtests.common.BusinessStepHelper; import org.apache.fineract.integrationtests.common.BusinessStepHelper;
import org.apache.fineract.integrationtests.common.ClientHelper; import org.apache.fineract.integrationtests.common.ClientHelper;
@@ -101,7 +101,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
@TestMethodOrder(MethodName.class) @TestMethodOrder(MethodName.class)
@ExtendWith(LoanTestLifecycleExtension.class) @ExtendWith(LoanTestLifecycleExtension.class)
@SuppressWarnings({ "unchecked", "rawtypes" }) @SuppressWarnings({ "unchecked", "rawtypes" })
public class SchedulerJobsTestResults { public class SchedulerJobsTestResults extends IntegrationTest {
private static final String FROM_ACCOUNT_TYPE_SAVINGS = "2"; private static final String FROM_ACCOUNT_TYPE_SAVINGS = "2";
private static final String TO_ACCOUNT_TYPE_SAVINGS = "2"; private static final String TO_ACCOUNT_TYPE_SAVINGS = "2";
@@ -212,8 +212,7 @@ public class SchedulerJobsTestResults {
annualFeeDueDateAsArrayList.get(2)); annualFeeDueDateAsArrayList.get(2));
LocalDate expectedDueDate = LocalDate.of(2023, 1, 15); LocalDate expectedDueDate = LocalDate.of(2023, 1, 15);
Truth.assertWithMessage("Verifying that all due Annual Fees have been paid").that(nextDueDateForAnnualFee) assertThat(nextDueDateForAnnualFee).isEqualTo(expectedDueDate);
.isEquivalentAccordingToCompareTo(expectedDueDate);
} finally { } finally {
savingsAccountHelper.closeSavingsAccountOnDate(savingsId, "true", "11 November 2022"); savingsAccountHelper.closeSavingsAccountOnDate(savingsId, "true", "11 November 2022");
globalConfigurationHelper.updateGlobalConfiguration(GlobalConfigurationConstants.ENABLE_BUSINESS_DATE, globalConfigurationHelper.updateGlobalConfiguration(GlobalConfigurationConstants.ENABLE_BUSINESS_DATE,
@@ -200,19 +200,19 @@ public class UserAdministrationTest extends IntegrationTest {
// User updates its own password // User updates its own password
String updatedPassword = "QwE!5rTy#9uP0u"; String updatedPassword = "QwE!5rTy#9uP0u";
PutUsersUserIdResponse putUsersUserIdResponse = ok(newFineract(simpleUsername, originalPassword).users.update26(userId, PutUsersUserIdResponse putUsersUserIdResponse = ok(newFineractClient(simpleUsername, originalPassword).users.update26(userId,
new PutUsersUserIdRequest().password(updatedPassword).repeatPassword(updatedPassword))); new PutUsersUserIdRequest().password(updatedPassword).repeatPassword(updatedPassword)));
Assertions.assertNotNull(putUsersUserIdResponse.getResourceId()); Assertions.assertNotNull(putUsersUserIdResponse.getResourceId());
// From then on the originalPassword is not working anymore // From then on the originalPassword is not working anymore
CallFailedRuntimeException callFailedRuntimeException = Assertions.assertThrows(CallFailedRuntimeException.class, () -> { CallFailedRuntimeException callFailedRuntimeException = Assertions.assertThrows(CallFailedRuntimeException.class, () -> {
ok(newFineract(simpleUsername, originalPassword).users.retrieveOne31(userId)); ok(newFineractClient(simpleUsername, originalPassword).users.retrieveOne31(userId));
}); });
Assertions.assertEquals(401, callFailedRuntimeException.getResponse().raw().code()); Assertions.assertEquals(401, callFailedRuntimeException.getResponse().raw().code());
Assertions.assertTrue(callFailedRuntimeException.getMessage().contains("Unauthorized")); Assertions.assertTrue(callFailedRuntimeException.getMessage().contains("Unauthorized"));
// The update password is still working perfectly // The update password is still working perfectly
GetUsersUserIdResponse ok = ok(newFineract(simpleUsername, updatedPassword).users.retrieveOne31(userId)); GetUsersUserIdResponse ok = ok(newFineractClient(simpleUsername, updatedPassword).users.retrieveOne31(userId));
} }
@Test @Test
@@ -236,7 +236,7 @@ public class UserAdministrationTest extends IntegrationTest {
// User tries to update it's own roles // User tries to update it's own roles
CallFailedRuntimeException callFailedRuntimeException = Assertions.assertThrows(CallFailedRuntimeException.class, () -> { CallFailedRuntimeException callFailedRuntimeException = Assertions.assertThrows(CallFailedRuntimeException.class, () -> {
ok(newFineract(simpleUsername, password).users.update26(userId, ok(newFineractClient(simpleUsername, password).users.update26(userId,
new PutUsersUserIdRequest().roles(List.of(Long.valueOf(roleId2))))); new PutUsersUserIdRequest().roles(List.of(Long.valueOf(roleId2)))));
}); });
@@ -1,55 +0,0 @@
/**
* 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.integrationtests.client;
import com.google.common.truth.FailureMetadata;
import com.google.common.truth.Subject;
import com.google.common.truth.Truth;
import jakarta.annotation.Nullable;
import org.apache.fineract.client.util.Calls;
import retrofit2.Call;
/**
* Google Truth Extension for Retrofit Call.
*
* @author Michael Vorburger.ch
*/
public class CallSubject extends Subject {
// as per https://truth.dev/extension
public static CallSubject assertThat(@Nullable Call<?> actual) {
return Truth.assertAbout(calls()).that(actual);
}
public static Factory<CallSubject, Call<?>> calls() {
return CallSubject::new;
}
private final Call<?> actual;
protected CallSubject(FailureMetadata metadata, @Nullable Call<?> actual) {
super(metadata, actual);
this.actual = actual;
}
public void hasHttpStatus(int expectedHttpStatus) {
check("httpStatus").that(Calls.executeU(actual).code()).isEqualTo(expectedHttpStatus);
}
}
@@ -21,6 +21,7 @@ package org.apache.fineract.integrationtests.client;
import java.util.Optional; import java.util.Optional;
import org.apache.fineract.client.models.GetClientsResponse; import org.apache.fineract.client.models.GetClientsResponse;
import org.apache.fineract.client.models.PostClientsRequest; import org.apache.fineract.client.models.PostClientsRequest;
import org.apache.fineract.integrationtests.common.Utils;
import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -55,14 +56,14 @@ public class ClientTest extends IntegrationTest {
// TODO activationDate() why String? https://issues.apache.org/jira/browse/FINERACT-1232 // TODO activationDate() why String? https://issues.apache.org/jira/browse/FINERACT-1232
// TODO why dateFormat and locale required even when no activationDate?! // TODO why dateFormat and locale required even when no activationDate?!
// https://issues.apache.org/jira/browse/FINERACT-1233 // https://issues.apache.org/jira/browse/FINERACT-1233
return ok(fineract().clients.create6( return ok(fineractClient().clients.create6(
new PostClientsRequest().legalFormId(1L).officeId(1L).fullname("TestClient").dateFormat(dateFormat()).locale("en_US"))) new PostClientsRequest().legalFormId(1L).officeId(1L).fullname("TestClient").dateFormat(Utils.DATE_FORMAT).locale("en_US")))
.getClientId(); .getClientId();
} }
Optional<Long> retrieveFirst() { Optional<Long> retrieveFirst() {
GetClientsResponse clients = ok( GetClientsResponse clients = ok(
fineract().clients.retrieveAll21(null, null, null, null, null, null, null, 0, 1, null, null, false)); fineractClient().clients.retrieveAll21(null, null, null, null, null, null, null, 0, 1, null, null, false));
if (clients.getTotalFilteredRecords() != null && clients.getTotalFilteredRecords() > 0) { if (clients.getTotalFilteredRecords() != null && clients.getTotalFilteredRecords() > 0) {
return clients.getPageItems().stream().findFirst().map(item -> item.getId()); return clients.getPageItems().stream().findFirst().map(item -> item.getId());
} }
@@ -18,12 +18,16 @@
*/ */
package org.apache.fineract.integrationtests.client; package org.apache.fineract.integrationtests.client;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.MultipartBody.Part; import okhttp3.MultipartBody.Part;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import org.apache.fineract.client.models.GetEntityTypeEntityIdDocumentsResponse; import org.apache.fineract.client.models.GetEntityTypeEntityIdDocumentsResponse;
import org.apache.fineract.client.util.CallFailedRuntimeException;
import org.apache.fineract.client.util.Parts; import org.apache.fineract.client.util.Parts;
import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -44,7 +48,7 @@ public class DocumentTest extends IntegrationTest {
@Test @Test
@Order(1) @Order(1)
void retrieveAllDocuments() { void retrieveAllDocuments() {
assertThat(ok(fineract().documents.retrieveAllDocuments("clients", clientId))).isNotNull(); assertThat(ok(fineractClient().documents.retrieveAllDocuments("clients", clientId))).isNotNull();
} }
@Test @Test
@@ -53,7 +57,7 @@ public class DocumentTest extends IntegrationTest {
String name = "Test"; String name = "Test";
Part part = Parts.fromFile(testFile); Part part = Parts.fromFile(testFile);
String description = "The Description"; String description = "The Description";
var response = ok(fineract().documents.createDocument("clients", clientId, part, name, description)); var response = ok(fineractClient().documents.createDocument("clients", clientId, part, name, description));
assertThat(response.getResourceId()).isNotNull(); assertThat(response.getResourceId()).isNotNull();
assertThat(response.getResourceIdentifier()).isNotEmpty(); assertThat(response.getResourceIdentifier()).isNotEmpty();
documentId = response.getResourceId(); documentId = response.getResourceId();
@@ -62,7 +66,7 @@ public class DocumentTest extends IntegrationTest {
@Test @Test
@Order(3) @Order(3)
void getDocument() { void getDocument() {
GetEntityTypeEntityIdDocumentsResponse doc = ok(fineract().documents.getDocument("clients", clientId, documentId)); GetEntityTypeEntityIdDocumentsResponse doc = ok(fineractClient().documents.getDocument("clients", clientId, documentId));
assertThat(doc.getName()).isEqualTo("Test"); assertThat(doc.getName()).isEqualTo("Test");
assertThat(doc.getFileName()).isEqualTo(testFile.getName()); assertThat(doc.getFileName()).isEqualTo(testFile.getName());
assertThat(doc.getDescription()).isEqualTo("The Description"); assertThat(doc.getDescription()).isEqualTo("The Description");
@@ -79,7 +83,7 @@ public class DocumentTest extends IntegrationTest {
@Test @Test
@Order(4) @Order(4)
void downloadFile() throws IOException { void downloadFile() throws IOException {
Response<ResponseBody> r = okR(fineract().documents.downloadFile("clients", clientId, documentId)); Response<ResponseBody> r = okR(fineractClient().documents.downloadFile("clients", clientId, documentId));
try (ResponseBody body = r.body()) { try (ResponseBody body = r.body()) {
assertThat(body.contentType()).isEqualTo(MediaType.get("image/jpeg")); assertThat(body.contentType()).isEqualTo(MediaType.get("image/jpeg"));
assertThat(body.bytes().length).isEqualTo(testFile.length()); assertThat(body.bytes().length).isEqualTo(testFile.length());
@@ -93,9 +97,9 @@ public class DocumentTest extends IntegrationTest {
void updateDocumentWithoutNewUpload() { void updateDocumentWithoutNewUpload() {
String newName = "Test changed name"; String newName = "Test changed name";
String newDescription = getClass().getName(); String newDescription = getClass().getName();
ok(fineract().documents.updateDocument("clients", clientId, documentId, null, newName, newDescription)); ok(fineractClient().documents.updateDocument("clients", clientId, documentId, null, newName, newDescription));
GetEntityTypeEntityIdDocumentsResponse doc = ok(fineract().documents.getDocument("clients", clientId, documentId)); GetEntityTypeEntityIdDocumentsResponse doc = ok(fineractClient().documents.getDocument("clients", clientId, documentId));
assertThat(doc.getName()).isEqualTo(newName); assertThat(doc.getName()).isEqualTo(newName);
assertThat(doc.getDescription()).isEqualTo(newDescription); assertThat(doc.getDescription()).isEqualTo(newDescription);
// TODO FINERACT-1251 It's more than uploaded file; seems like a bug - it's including create body, not just file // TODO FINERACT-1251 It's more than uploaded file; seems like a bug - it's including create body, not just file
@@ -106,13 +110,17 @@ public class DocumentTest extends IntegrationTest {
@Test @Test
@Order(99) @Order(99)
void deleteDocument() { void deleteDocument() {
ok(fineract().documents.deleteDocument("clients", clientId, documentId)); ok(fineractClient().documents.deleteDocument("clients", clientId, documentId));
assertThat(fineract().documents.getDocument("clients", clientId, documentId)).hasHttpStatus(404); CallFailedRuntimeException exception = assertThrows(CallFailedRuntimeException.class,
() -> ok(fineractClient().documents.getDocument("clients", clientId, documentId)));
assertEquals(404, exception.getResponse().code());
} }
@Order(9999) @Order(9999)
@Test // FINERACT-1036 @Test // FINERACT-1036
void createDocumentBadArgs() { void createDocumentBadArgs() {
assertThat(fineract().documents.createDocument("clients", 123L, null, "test.pdf", null)).hasHttpStatus(400); CallFailedRuntimeException exception = assertThrows(CallFailedRuntimeException.class,
() -> ok(fineractClient().documents.createDocument("clients", 123L, null, "test.pdf", null)));
assertEquals(400, exception.getResponse().code());
} }
} }
@@ -52,47 +52,47 @@ public class ImageTest extends IntegrationTest {
@Test @Test
@Order(1) @Order(1)
void create() { void create() {
ok(fineract().images.create("staff", staffId, testPart)); ok(fineractClient().images.create("staff", staffId, testPart));
ok(fineract().images.create("clients", clientId, testPart)); ok(fineractClient().images.create("clients", clientId, testPart));
} }
@Test @Test
@Order(2) @Order(2)
void getOriginalSize() throws IOException { void getOriginalSize() throws IOException {
ResponseBody r = ok(fineract().images.get("staff", staffId, 3505, 1972, null)); ResponseBody r = ok(fineractClient().images.get("staff", staffId, 3505, 1972, null));
assertThat(r.contentType()).isEqualTo(MediaType.get("text/plain")); assertThat(r.contentType()).isEqualTo(MediaType.get("text/plain"));
String encodedImage = r.string(); String encodedImage = r.string();
assertThat(encodedImage).startsWith("data:image/jpeg;base64,"); assertThat(encodedImage).startsWith("data:image/jpeg;base64,");
assertThat(encodedImage).hasLength(2846549); assertThat(encodedImage).hasSize(2846549);
assertThat(r.contentLength()).isEqualTo(-1); assertThat(r.contentLength()).isEqualTo(-1);
} }
@Test @Test
@Order(3) @Order(3)
void getSmallerSize() throws IOException { void getSmallerSize() throws IOException {
ResponseBody r = ok(fineract().images.get("staff", staffId, 128, 128, null)); ResponseBody r = ok(fineractClient().images.get("staff", staffId, 128, 128, null));
assertThat(r.string()).hasLength(6591); assertThat(r.string()).hasSize(6591);
} }
@Test @Test
@Order(4) @Order(4)
void getBiggerSize() throws IOException { void getBiggerSize() throws IOException {
ResponseBody r = ok(fineract().images.get("staff", staffId, 9000, 6000, null)); ResponseBody r = ok(fineractClient().images.get("staff", staffId, 9000, 6000, null));
assertThat(r.string()).hasLength(2846549); assertThat(r.string()).hasSize(2846549);
} }
@Test @Test
@Order(5) @Order(5)
void getInlineOctetOutput() throws IOException { void getInlineOctetOutput() throws IOException {
// 3505x1972 is the exact original size of testFile // 3505x1972 is the exact original size of testFile
Response<ResponseBody> r = okR(fineract().images.get("staff", staffId, 3505, 1972, "inline_octet")); Response<ResponseBody> r = okR(fineractClient().images.get("staff", staffId, 3505, 1972, "inline_octet"));
try (ResponseBody body = r.body()) { try (ResponseBody body = r.body()) {
assertThat(body.contentType()).isEqualTo(MediaType.get("image/jpeg")); assertThat(body.contentType()).isEqualTo(MediaType.get("image/jpeg"));
assertThat(body.bytes().length).isEqualTo(testPart.body().contentLength()); assertThat(body.bytes().length).isEqualTo(testPart.body().contentLength());
assertThat(body.contentLength()).isEqualTo(testPart.body().contentLength()); assertThat(body.contentLength()).isEqualTo(testPart.body().contentLength());
} }
var staff = ok(fineract().staff.retrieveOne8(staffId)); var staff = ok(fineractClient().staff.retrieveOne8(staffId));
String expectedFileName = staff.getDisplayName() + "JPEG"; // without dot! String expectedFileName = staff.getDisplayName() + "JPEG"; // without dot!
assertThat(Parts.fileName(r)).hasValue(expectedFileName); assertThat(Parts.fileName(r)).hasValue(expectedFileName);
} }
@@ -100,7 +100,7 @@ public class ImageTest extends IntegrationTest {
@Test @Test
@Order(6) @Order(6)
void getOctetOutput() throws IOException { void getOctetOutput() throws IOException {
ResponseBody r = ok(fineract().images.get("staff", staffId, 3505, 1972, "octet")); ResponseBody r = ok(fineractClient().images.get("staff", staffId, 3505, 1972, "octet"));
assertThat(r.contentType()).isEqualTo(MediaType.get("image/jpeg")); assertThat(r.contentType()).isEqualTo(MediaType.get("image/jpeg"));
assertThat(r.bytes().length).isEqualTo(testPart.body().contentLength()); assertThat(r.bytes().length).isEqualTo(testPart.body().contentLength());
assertThat(r.contentLength()).isEqualTo(testPart.body().contentLength()); assertThat(r.contentLength()).isEqualTo(testPart.body().contentLength());
@@ -109,7 +109,7 @@ public class ImageTest extends IntegrationTest {
@Test @Test
@Order(7) @Order(7)
void getAnotherOutput() throws IOException { void getAnotherOutput() throws IOException {
ResponseBody r = ok(fineract().images.get("staff", staffId, 3505, 1972, "abcd")); ResponseBody r = ok(fineractClient().images.get("staff", staffId, 3505, 1972, "abcd"));
assertThat(r.contentType()).isEqualTo(MediaType.get("text/plain")); assertThat(r.contentType()).isEqualTo(MediaType.get("text/plain"));
assertThat(r.string()).startsWith("data:image/jpeg;base64,"); assertThat(r.string()).startsWith("data:image/jpeg;base64,");
} }
@@ -117,7 +117,7 @@ public class ImageTest extends IntegrationTest {
@Test @Test
@Order(8) @Order(8)
void getText() throws IOException { void getText() throws IOException {
ResponseBody r = ok(fineract().createService(ImagesApiWithHeadersForTest.class).getText("staff", staffId, 3505, 1972, null)); ResponseBody r = ok(fineractClient().createService(ImagesApiWithHeadersForTest.class).getText("staff", staffId, 3505, 1972, null));
assertThat(r.contentType()).isEqualTo(MediaType.get("text/plain")); assertThat(r.contentType()).isEqualTo(MediaType.get("text/plain"));
assertThat(r.string()).startsWith("data:image/jpeg;base64,"); assertThat(r.string()).startsWith("data:image/jpeg;base64,");
} }
@@ -125,7 +125,7 @@ public class ImageTest extends IntegrationTest {
@Test @Test
@Order(9) @Order(9)
void getBytes() throws IOException { void getBytes() throws IOException {
ResponseBody r = ok(fineract().createService(ImagesApiWithHeadersForTest.class).getBytes("staff", staffId, 3505, 1972, null)); ResponseBody r = ok(fineractClient().createService(ImagesApiWithHeadersForTest.class).getBytes("staff", staffId, 3505, 1972, null));
assertThat(r.contentType()).isEqualTo(MediaType.get("image/jpeg")); assertThat(r.contentType()).isEqualTo(MediaType.get("image/jpeg"));
assertThat(r.bytes().length).isEqualTo(testPart.body().contentLength()); assertThat(r.bytes().length).isEqualTo(testPart.body().contentLength());
} }
@@ -133,14 +133,14 @@ public class ImageTest extends IntegrationTest {
@Test @Test
@Order(50) @Order(50)
void update() { void update() {
ok(fineract().images.update("staff", staffId, testPart)); ok(fineractClient().images.update("staff", staffId, testPart));
} }
@Test @Test
@Order(99) @Order(99)
void delete() { void delete() {
ok(fineract().images.delete("staff", staffId)); ok(fineractClient().images.delete("staff", staffId));
ok(fineract().images.delete("clients", clientId)); ok(fineractClient().images.delete("clients", clientId));
} }
@Test @Test
@@ -152,7 +152,7 @@ public class ImageTest extends IntegrationTest {
assertThat(part).isNotNull(); assertThat(part).isNotNull();
Exception exception = assertThrows(Exception.class, () -> { Exception exception = assertThrows(Exception.class, () -> {
ok(fineract().images.create("clients", clientId, part)); ok(fineractClient().images.create("clients", clientId, part));
}); });
assertThat(exception).isNotNull(); assertThat(exception).isNotNull();
@@ -168,7 +168,7 @@ public class ImageTest extends IntegrationTest {
assertThat(part).isNotNull(); assertThat(part).isNotNull();
Exception exception = assertThrows(Exception.class, () -> { Exception exception = assertThrows(Exception.class, () -> {
ok(fineract().images.create("clients", clientId, part)); ok(fineractClient().images.create("clients", clientId, part));
}); });
assertThat(exception).isNotNull(); assertThat(exception).isNotNull();
@@ -184,7 +184,7 @@ public class ImageTest extends IntegrationTest {
assertThat(part).isNotNull(); assertThat(part).isNotNull();
Exception exception = assertThrows(Exception.class, () -> { Exception exception = assertThrows(Exception.class, () -> {
ok(fineract().images.create("clients", clientId, part)); ok(fineractClient().images.create("clients", clientId, part));
}); });
assertThat(exception).isNotNull(); assertThat(exception).isNotNull();
@@ -201,7 +201,7 @@ public class ImageTest extends IntegrationTest {
assertThat(part).isNotNull(); assertThat(part).isNotNull();
Exception exception = assertThrows(Exception.class, () -> { Exception exception = assertThrows(Exception.class, () -> {
ok(fineract().images.create("clients", clientId, part)); ok(fineractClient().images.create("clients", clientId, part));
}); });
assertThat(exception).isNotNull(); assertThat(exception).isNotNull();
@@ -217,7 +217,7 @@ public class ImageTest extends IntegrationTest {
assertThat(part).isNotNull(); assertThat(part).isNotNull();
Exception exception = assertThrows(Exception.class, () -> { Exception exception = assertThrows(Exception.class, () -> {
ok(fineract().images.create("clients", clientId, part)); ok(fineractClient().images.create("clients", clientId, part));
}); });
assertThat(exception).isNotNull(); assertThat(exception).isNotNull();
@@ -233,7 +233,7 @@ public class ImageTest extends IntegrationTest {
assertThat(part).isNotNull(); assertThat(part).isNotNull();
Exception exception = assertThrows(Exception.class, () -> { Exception exception = assertThrows(Exception.class, () -> {
ok(fineract().images.create("clients", clientId, part)); ok(fineractClient().images.create("clients", clientId, part));
}); });
assertThat(exception).isNotNull(); assertThat(exception).isNotNull();
@@ -18,27 +18,22 @@
*/ */
package org.apache.fineract.integrationtests.client; package org.apache.fineract.integrationtests.client;
import com.google.common.truth.BigDecimalSubject;
import com.google.common.truth.BooleanSubject;
import com.google.common.truth.ComparableSubject;
import com.google.common.truth.DoubleSubject;
import com.google.common.truth.FloatSubject;
import com.google.common.truth.IntegerSubject;
import com.google.common.truth.IterableSubject;
import com.google.common.truth.LongSubject;
import com.google.common.truth.OptionalSubject;
import com.google.common.truth.StringSubject;
import com.google.common.truth.Subject;
import com.google.common.truth.Truth;
import com.google.common.truth.Truth8;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.security.SecureRandom;
import java.util.Optional; import java.util.Optional;
import okhttp3.logging.HttpLoggingInterceptor.Level;
import org.apache.fineract.client.util.Calls; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.FineractClient; import org.apache.fineract.client.util.FineractClient;
import org.apache.fineract.integrationtests.ConfigProperties; import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.assertj.core.api.AbstractBigDecimalAssert;
import org.assertj.core.api.AbstractBooleanAssert;
import org.assertj.core.api.AbstractDoubleAssert;
import org.assertj.core.api.AbstractFloatAssert;
import org.assertj.core.api.AbstractIntegerAssert;
import org.assertj.core.api.AbstractLongAssert;
import org.assertj.core.api.AbstractStringAssert;
import org.assertj.core.api.Assertions;
import org.assertj.core.api.IterableAssert;
import org.assertj.core.api.ObjectAssert;
import org.assertj.core.api.OptionalAssert;
import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle; import org.junit.jupiter.api.TestInstance.Lifecycle;
@@ -47,7 +42,7 @@ import retrofit2.Call;
import retrofit2.Response; import retrofit2.Response;
/** /**
* Integration Test for /documents API. * Base Integration Test class
* *
* @author Michael Vorburger.ch * @author Michael Vorburger.ch
*/ */
@@ -57,29 +52,12 @@ import retrofit2.Response;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public abstract class IntegrationTest { public abstract class IntegrationTest {
private static final SecureRandom random = new SecureRandom(); protected FineractClient fineractClient() {
return FineractClientHelper.getFineractClient();
private FineractClient fineract;
protected FineractClient fineract() {
if (fineract == null) {
fineract = newFineract(ConfigProperties.Backend.USERNAME, ConfigProperties.Backend.PASSWORD);
}
return fineract;
} }
private String buildURI() { protected FineractClient newFineractClient(String username, String password) {
return ConfigProperties.Backend.PROTOCOL + "://" + ConfigProperties.Backend.HOST + ":" + ConfigProperties.Backend.PORT return FineractClientHelper.createNewFineractClient(username, password, this::customizeFineractClient);
+ "/fineract-provider/api/";
}
protected FineractClient newFineract(String username, String password) {
String url = System.getProperty("fineract.it.url", buildURI());
// insecure(true) should *ONLY* ever be used for https://localhost:8443, NOT in real clients!!
FineractClient.Builder builder = FineractClient.builder().insecure(true).baseURL(url).tenant(ConfigProperties.Backend.TENANT)
.basicAuth(username, password).logging(Level.NONE);
customizeFineractClient(builder);
return builder.build();
} }
/** /**
@@ -92,19 +70,6 @@ public abstract class IntegrationTest {
} }
/**
* See {@link FineractClient#DATE_FORMAT}.
*/
protected String dateFormat() {
return FineractClient.DATE_FORMAT;
}
@SuppressFBWarnings(value = {
"DMI_RANDOM_USED_ONLY_ONCE" }, justification = "False positive for random object created and used only once")
protected String random() {
return Long.toString(random.nextLong());
}
// This method just makes it easier to use Calls.ok() in tests (it avoids having to static import) // This method just makes it easier to use Calls.ok() in tests (it avoids having to static import)
protected <T> T ok(Call<T> call) { protected <T> T ok(Call<T> call) {
return Calls.ok(call); return Calls.ok(call);
@@ -114,54 +79,43 @@ public abstract class IntegrationTest {
return Calls.okR(call); return Calls.okR(call);
} }
// as above, avoids import static CallSubject.assertThat public static IterableAssert<?> assertThat(Iterable<?> actual) {
protected <T> CallSubject assertThat(Call<T> call) { return Assertions.assertThat(actual);
return CallSubject.assertThat(call);
} }
// as above, this avoids issues with e.g. the Eclipse compiler getting confused which assertThat is which public static AbstractBigDecimalAssert<?> assertThat(BigDecimal actual) {
public static IterableSubject assertThat(Iterable<?> actual) { return Assertions.assertThat(actual);
return Truth.assertThat(actual);
} }
public static <T extends Comparable<?>> ComparableSubject<T> assertThat(T actual) { public static <T> ObjectAssert<T> assertThat(T actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
} }
public static BigDecimalSubject assertThat(BigDecimal actual) { public static AbstractLongAssert<?> assertThat(Long actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
} }
public static Subject assertThat(Object actual) { public static AbstractDoubleAssert<?> assertThat(Double actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
} }
public static LongSubject assertThat(Long actual) { public static AbstractFloatAssert<?> assertThat(Float actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
} }
public static DoubleSubject assertThat(Double actual) { public static AbstractIntegerAssert<?> assertThat(Integer actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
} }
public static FloatSubject assertThat(Float actual) { public static AbstractBooleanAssert<?> assertThat(Boolean actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
} }
public static IntegerSubject assertThat(Integer actual) { public static AbstractStringAssert<?> assertThat(String actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
} }
public static BooleanSubject assertThat(Boolean actual) { public static <T> OptionalAssert<T> assertThat(Optional<T> actual) {
return Truth.assertThat(actual); return Assertions.assertThat(actual);
}
public static StringSubject assertThat(String actual) {
return Truth.assertThat(actual);
}
// from truth-java8-extension
public static OptionalSubject assertThat(Optional<?> actual) {
return Truth8.assertThat(actual);
} }
} }
@@ -23,6 +23,7 @@ import java.time.ZoneId;
import java.util.List; import java.util.List;
import org.apache.fineract.client.models.GetOfficesResponse; import org.apache.fineract.client.models.GetOfficesResponse;
import org.apache.fineract.client.models.PostOfficesRequest; import org.apache.fineract.client.models.PostOfficesRequest;
import org.apache.fineract.integrationtests.common.Utils;
import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -39,15 +40,16 @@ public class OfficeTest extends IntegrationTest {
// NB parentId(1) always exists (Head Office) // NB parentId(1) always exists (Head Office)
// NB name random() because Office Names have to be unique // NB name random() because Office Names have to be unique
// TODO requiring dateFormat(..).locale(..) is dumb :( see https://issues.apache.org/jira/browse/FINERACT-1233 // TODO requiring dateFormat(..).locale(..) is dumb :( see https://issues.apache.org/jira/browse/FINERACT-1233
assertThat(ok(fineract().offices.createOffice(new PostOfficesRequest().name("TestOffice_" + random()).parentId(1L) assertThat(ok(fineractClient().offices.createOffice(new PostOfficesRequest().name(Utils.randomStringGenerator("TestOffice_", 6))
.openingDate(LocalDate.now(ZoneId.of("UTC"))).dateFormat(dateFormat()).locale("en_US"))).getOfficeId()).isGreaterThan(0); .parentId(1L).openingDate(LocalDate.now(ZoneId.of("UTC"))).dateFormat("yyyy-MM-dd").locale("en_US"))).getOfficeId())
.isGreaterThan(0);
} }
@Test @Test
@Order(2) @Order(2)
void retrieveOneExistingInclDateFormat() { // see FINERACT-1220 re. what this tests re. Date Format void retrieveOneExistingInclDateFormat() { // see FINERACT-1220 re. what this tests re. Date Format
List<GetOfficesResponse> response = ok(fineract().offices.retrieveOffices(true, null, null)); List<GetOfficesResponse> response = ok(fineractClient().offices.retrieveOffices(true, null, null));
assertThat(response.size()).isAtLeast(1); assertThat(response.size()).isGreaterThanOrEqualTo(1);
assertThat(response.get(0).getOpeningDate()).isNotNull(); assertThat(response.get(0).getOpeningDate()).isNotNull();
} }
} }
@@ -50,7 +50,7 @@ public class ReportExportTest extends IntegrationTest {
@Test @Test
void runClientListingTableReportCSV() throws IOException { void runClientListingTableReportCSV() throws IOException {
Response<ResponseBody> result = okR( Response<ResponseBody> result = okR(
fineract().reportsRun.runReportGetFile("Client Listing", Map.of("R_officeId", "1", "exportCSV", "true"), false)); fineractClient().reportsRun.runReportGetFile("Client Listing", Map.of("R_officeId", "1", "exportCSV", "true"), false));
assertThat(result.body().contentType()).isEqualTo(MediaType.parse("text/csv")); assertThat(result.body().contentType()).isEqualTo(MediaType.parse("text/csv"));
assertThat(result.body().string()).contains("Office/Branch"); assertThat(result.body().string()).contains("Office/Branch");
} }
@@ -59,7 +59,7 @@ public class ReportExportTest extends IntegrationTest {
@CIOnly @CIOnly
void runClientListingTableReportS3() throws IOException { void runClientListingTableReportS3() throws IOException {
Response<ResponseBody> result = okR( Response<ResponseBody> result = okR(
fineract().reportsRun.runReportGetFile("Client Listing", Map.of("R_officeId", "1", "exportS3", "true"), false)); fineractClient().reportsRun.runReportGetFile("Client Listing", Map.of("R_officeId", "1", "exportS3", "true"), false));
assertThat(result.code()).isEqualTo(204); assertThat(result.code()).isEqualTo(204);
} }
@@ -18,11 +18,16 @@
*/ */
package org.apache.fineract.integrationtests.client; package org.apache.fineract.integrationtests.client;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import org.apache.fineract.client.models.RunReportsResponse;
import org.apache.fineract.client.util.CallFailedRuntimeException;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Disabled;
@@ -43,19 +48,19 @@ public class ReportsTest extends IntegrationTest {
@Test @Test
void listReports() { void listReports() {
assertThat(ok(fineract().reports.retrieveReportList())).hasSize(128); assertThat(ok(fineractClient().reports.retrieveReportList())).hasSize(128);
} }
@Test @Test
void runClientListingTableReport() { void runClientListingTableReport() {
assertThat(ok(fineract().reportsRun.runReportGetData("Client Listing", Map.of("R_officeId", "1"), false)).getColumnHeaders().get(0) assertThat(ok(fineractClient().reportsRun.runReportGetData("Client Listing", Map.of("R_officeId", "1"), false)).getColumnHeaders()
.getColumnName()).isEqualTo("Office/Branch"); .get(0).getColumnName()).isEqualTo("Office/Branch");
} }
@Test @Test
void runClientListingTableReportCSV() throws IOException { void runClientListingTableReportCSV() throws IOException {
Response<ResponseBody> result = okR( Response<ResponseBody> result = okR(
fineract().reportsRun.runReportGetFile("Client Listing", Map.of("R_officeId", "1", "exportCSV", "true"), false)); fineractClient().reportsRun.runReportGetFile("Client Listing", Map.of("R_officeId", "1", "exportCSV", "true"), false));
assertThat(result.body().contentType()).isEqualTo(MediaType.parse("text/csv")); assertThat(result.body().contentType()).isEqualTo(MediaType.parse("text/csv"));
assertThat(result.body().string()).contains("Office/Branch"); assertThat(result.body().string()).contains("Office/Branch");
} }
@@ -64,51 +69,56 @@ public class ReportsTest extends IntegrationTest {
void runReportCategory() throws IOException { void runReportCategory() throws IOException {
// Using raw OkHttp instead of Retrofit API here, because /runreports/reportCategoryList returns JSON Array - // Using raw OkHttp instead of Retrofit API here, because /runreports/reportCategoryList returns JSON Array -
// but runReportGetData() expects columnHeaders/data JSON. // but runReportGetData() expects columnHeaders/data JSON.
var req = new Request.Builder().url(fineract().baseURL().resolve( var req = new Request.Builder().url(fineractClient().baseURL().resolve(
"/fineract-provider/api/v1/runreports/reportCategoryList?R_reportCategory=Fund&genericResultSet=false&parameterType=true&tenantIdentifier=default")) "/fineract-provider/api/v1/runreports/reportCategoryList?R_reportCategory=Fund&genericResultSet=false&parameterType=true&tenantIdentifier=default"))
.build(); .build();
try (var response = fineract().okHttpClient().newCall(req).execute()) { try (var response = fineractClient().okHttpClient().newCall(req).execute()) {
assertThat(response.code()).isEqualTo(200); assertThat(response.code()).isEqualTo(200);
} }
} }
@Test @Test
void runExpectedPaymentsPentahoReportWithoutPlugin() { void runExpectedPaymentsPentahoReportWithoutPlugin() {
assertThat(fineract().reportsRun.runReportGetFile("Expected Payments By Date - Formatted", Map.of("R_endDate", "2013-04-30", CallFailedRuntimeException exception = assertThrows(CallFailedRuntimeException.class,
"R_loanOfficerId", "-1", "R_officeId", "1", "R_startDate", "2013-04-16", "output-type", "PDF"), false)).hasHttpStatus(503); () -> ok(fineractClient().reportsRun.runReportGetFile("Expected Payments By Date - Formatted", Map.of("R_endDate",
"2013-04-30", "R_loanOfficerId", "-1", "R_officeId", "1", "R_startDate", "2013-04-16", "output-type", "PDF"),
false)));
assertEquals(503, exception.getResponse().code());
} }
@Test @Test
@Disabled @Disabled
void runExpectedPaymentsPentahoReport() { void runExpectedPaymentsPentahoReport() {
ResponseBody r = ok(fineract().reportsRun.runReportGetFile("Expected Payments By Date - Formatted", Map.of("R_endDate", ResponseBody r = ok(fineractClient().reportsRun.runReportGetFile("Expected Payments By Date - Formatted", Map.of("R_endDate",
"2013-04-30", "R_loanOfficerId", "-1", "R_officeId", "1", "R_startDate", "2013-04-16", "output-type", "PDF"), false)); "2013-04-30", "R_loanOfficerId", "-1", "R_officeId", "1", "R_startDate", "2013-04-16", "output-type", "PDF"), false));
assertThat(r.contentType()).isEqualTo(MediaType.get("application/pdf")); assertThat(r.contentType()).isEqualTo(MediaType.get("application/pdf"));
} }
@Test @Test
void testTrialBalanceTableReportRunsSuccessfully() { void testTrialBalanceTableReportRunsSuccessfully() {
assertThat(fineract().reportsRun.runReportGetData("Trial Balance Table", Response<RunReportsResponse> response = okR(fineractClient().reportsRun.runReportGetData("Trial Balance Table",
Map.of("R_endDate", "2013-04-30", "R_officeId", "1", "R_startDate", "2013-04-16"), false)).hasHttpStatus(200); Map.of("R_endDate", "2013-04-30", "R_officeId", "1", "R_startDate", "2013-04-16"), false));
assertEquals(200, response.code());
} }
@Test @Test
void testIncomeStatementTableReportRunsSuccessfully() { void testIncomeStatementTableReportRunsSuccessfully() {
assertThat(fineract().reportsRun.runReportGetData("Income Statement Table", Response<RunReportsResponse> response = okR(fineractClient().reportsRun.runReportGetData("Income Statement Table",
Map.of("R_endDate", "2013-04-30", "R_officeId", "1", "R_startDate", "2013-04-16"), false)).hasHttpStatus(200); Map.of("R_endDate", "2013-04-30", "R_officeId", "1", "R_startDate", "2013-04-16"), false));
assertEquals(200, response.code());
} }
@Test @Test
void testGeneralLedgerReportTableReportRunsSuccessfully() { void testGeneralLedgerReportTableReportRunsSuccessfully() {
assertThat(fineract().reportsRun.runReportGetData("GeneralLedgerReport Table", Response<RunReportsResponse> response = okR(fineractClient().reportsRun.runReportGetData("GeneralLedgerReport Table",
Map.of("R_endDate", "2013-04-30", "R_officeId", "1", "R_startDate", "2013-04-16", "R_GLAccountNO", "1"), false)) Map.of("R_endDate", "2013-04-30", "R_officeId", "1", "R_startDate", "2013-04-16", "R_GLAccountNO", "1"), false));
.hasHttpStatus(200); assertEquals(200, response.code());
} }
@Test @Test
void testBalanceSheetTableReportRunsSuccessfully() { void testBalanceSheetTableReportRunsSuccessfully() {
assertThat( Response<RunReportsResponse> response = okR(fineractClient().reportsRun.runReportGetData("Balance Sheet Table",
fineract().reportsRun.runReportGetData("Balance Sheet Table", Map.of("R_endDate", "2013-04-30", "R_officeId", "1"), false)) Map.of("R_endDate", "2013-04-30", "R_officeId", "1"), false));
.hasHttpStatus(200); assertEquals(200, response.code());
} }
} }
@@ -22,6 +22,7 @@ import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.Optional; import java.util.Optional;
import org.apache.fineract.client.models.PostStaffRequest; import org.apache.fineract.client.models.PostStaffRequest;
import org.apache.fineract.integrationtests.common.Utils;
import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -51,14 +52,13 @@ public class StaffTest extends IntegrationTest {
} }
Long create() { Long create() {
return ok(fineract().staff return ok(fineractClient().staff.create3(new PostStaffRequest().officeId(1L).firstname(Utils.randomStringGenerator("StaffTest", 6))
.create3(new PostStaffRequest().officeId(1L).firstname("StaffTest " + random()).lastname("Staffer " + random()) .lastname(Utils.randomStringGenerator("Staffer_", 6)).externalId(Utils.randomStringGenerator("", 12))
.externalId(random()).joiningDate(LocalDate.now(ZoneId.of("UTC"))).dateFormat(dateFormat()).locale("en_US"))) .joiningDate(LocalDate.now(ZoneId.of("UTC"))).dateFormat("yyyy-MM-dd").locale("en_US"))).getResourceId();
.getResourceId();
} }
Optional<Long> retrieveFirst() { Optional<Long> retrieveFirst() {
var staff = ok(fineract().staff.retrieveAll16(1L, true, false, "ACTIVE")); var staff = ok(fineractClient().staff.retrieveAll16(1L, true, false, "ACTIVE"));
if (staff.size() > 0) { if (staff.size() > 0) {
return Optional.of((long) staff.get(0).getId()); return Optional.of((long) staff.get(0).getId());
} }
@@ -27,12 +27,12 @@ import java.util.List;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.client.models.BusinessDateRequest; import org.apache.fineract.client.models.BusinessDateRequest;
import org.apache.fineract.client.models.BusinessDateResponse; import org.apache.fineract.client.models.BusinessDateResponse;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType; import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
import org.apache.fineract.integrationtests.client.IntegrationTest;
@Slf4j @Slf4j
public final class BusinessDateHelper extends IntegrationTest { public final class BusinessDateHelper {
private static final Gson GSON = new JSON().getGson(); private static final Gson GSON = new JSON().getGson();
@@ -53,7 +53,7 @@ public final class BusinessDateHelper extends IntegrationTest {
public BusinessDateResponse updateBusinessDate(final BusinessDateRequest request) { public BusinessDateResponse updateBusinessDate(final BusinessDateRequest request) {
log.info("------------------UPDATE BUSINESS DATE----------------------"); log.info("------------------UPDATE BUSINESS DATE----------------------");
log.info("------------------Type: {}, date: {}----------------------", request.getType(), request.getDate()); log.info("------------------Type: {}, date: {}----------------------", request.getType(), request.getDate());
return ok(fineract().businessDateManagement.updateBusinessDate(request)); return Calls.ok(FineractClientHelper.getFineractClient().businessDateManagement.updateBusinessDate(request));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -69,11 +69,11 @@ public final class BusinessDateHelper extends IntegrationTest {
} }
public BusinessDateResponse getBusinessDate(final String type) { public BusinessDateResponse getBusinessDate(final String type) {
return ok(fineract().businessDateManagement.getBusinessDate(type)); return Calls.ok(FineractClientHelper.getFineractClient().businessDateManagement.getBusinessDate(type));
} }
public List<BusinessDateResponse> getBusinessDates() { public List<BusinessDateResponse> getBusinessDates() {
return ok(fineract().businessDateManagement.getBusinessDates()); return Calls.ok(FineractClientHelper.getFineractClient().businessDateManagement.getBusinessDates());
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -22,9 +22,9 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.apache.fineract.client.models.BusinessStep; import org.apache.fineract.client.models.BusinessStep;
import org.apache.fineract.client.models.UpdateBusinessStepConfigRequest; import org.apache.fineract.client.models.UpdateBusinessStepConfigRequest;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
public class BusinessStepHelper extends IntegrationTest { public class BusinessStepHelper {
public BusinessStepHelper() {} public BusinessStepHelper() {}
@@ -38,7 +38,7 @@ public class BusinessStepHelper extends IntegrationTest {
businessStep.setOrder(order); businessStep.setOrder(order);
stepList.add(businessStep); stepList.add(businessStep);
} }
ok(fineract().businessStepConfiguration.updateJobBusinessStepConfig(jobName, Calls.ok(FineractClientHelper.getFineractClient().businessStepConfiguration.updateJobBusinessStepConfig(jobName,
new UpdateBusinessStepConfigRequest().businessSteps(stepList))); new UpdateBusinessStepConfigRequest().businessSteps(stepList)));
} }
} }
@@ -60,16 +60,16 @@ import org.apache.fineract.client.models.PostClientsRequest;
import org.apache.fineract.client.models.PostClientsResponse; import org.apache.fineract.client.models.PostClientsResponse;
import org.apache.fineract.client.models.PutClientsClientIdResponse; import org.apache.fineract.client.models.PutClientsClientIdResponse;
import org.apache.fineract.client.models.SortOrder; import org.apache.fineract.client.models.SortOrder;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.infrastructure.bulkimport.data.GlobalEntityType; import org.apache.fineract.infrastructure.bulkimport.data.GlobalEntityType;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.system.CodeHelper; import org.apache.fineract.integrationtests.common.system.CodeHelper;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
public class ClientHelper extends IntegrationTest { public class ClientHelper {
private static final String CLIENT_URL = "/fineract-provider/api/v1/clients"; private static final String CLIENT_URL = "/fineract-provider/api/v1/clients";
private static final String CREATE_CLIENT_URL = CLIENT_URL + "?" + Utils.TENANT_IDENTIFIER; private static final String CREATE_CLIENT_URL = CLIENT_URL + "?" + Utils.TENANT_IDENTIFIER;
@@ -108,12 +108,12 @@ public class ClientHelper extends IntegrationTest {
} }
public PostClientsResponse createClient(final PostClientsRequest request) { public PostClientsResponse createClient(final PostClientsRequest request) {
return ok(fineract().clients.create6(request)); return Calls.ok(FineractClientHelper.getFineractClient().clients.create6(request));
} }
public PostClientsClientIdIdentifiersResponse createClientIdentifer(final Long clientId, public PostClientsClientIdIdentifiersResponse createClientIdentifer(final Long clientId,
final PostClientsClientIdIdentifiersRequest request) { final PostClientsClientIdIdentifiersRequest request) {
return ok(fineract().clientIdentifiers.createClientIdentifier(clientId, request)); return Calls.ok(FineractClientHelper.getFineractClient().clientIdentifiers.createClientIdentifier(clientId, request));
} }
public PageClientSearchData searchClients(String text) { public PageClientSearchData searchClients(String text) {
@@ -144,7 +144,7 @@ public class ClientHelper extends IntegrationTest {
} }
public PageClientSearchData searchClients(PagedRequestClientTextSearch request) { public PageClientSearchData searchClients(PagedRequestClientTextSearch request) {
return ok(fineract().clientSearchV2.searchByText(request)); return Calls.ok(FineractClientHelper.getFineractClient().clientSearchV2.searchByText(request));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1134,27 +1134,31 @@ public class ClientHelper extends IntegrationTest {
} }
public GetClientsClientIdTransactionsResponse getAllClientTransactionsByExternalId(final String externalId) { public GetClientsClientIdTransactionsResponse getAllClientTransactionsByExternalId(final String externalId) {
return ok(fineract().clientTransactions.retrieveAllClientTransactions1(externalId, 0, 100)); return Calls.ok(FineractClientHelper.getFineractClient().clientTransactions.retrieveAllClientTransactions1(externalId, 0, 100));
} }
public GetClientsClientIdTransactionsTransactionIdResponse getClientTransactionByExternalId(final String externalId, public GetClientsClientIdTransactionsTransactionIdResponse getClientTransactionByExternalId(final String externalId,
final String transactionId) { final String transactionId) {
return ok(fineract().clientTransactions.retrieveClientTransaction2(externalId, Long.parseLong(transactionId))); return Calls.ok(FineractClientHelper.getFineractClient().clientTransactions.retrieveClientTransaction2(externalId,
Long.parseLong(transactionId)));
} }
public GetClientsClientIdTransactionsTransactionIdResponse getClientTransactionByTransactionExternalId(final Long clientId, public GetClientsClientIdTransactionsTransactionIdResponse getClientTransactionByTransactionExternalId(final Long clientId,
final String transactionExternalId) { final String transactionExternalId) {
return ok(fineract().clientTransactions.retrieveClientTransaction1(clientId, transactionExternalId)); return Calls.ok(
FineractClientHelper.getFineractClient().clientTransactions.retrieveClientTransaction1(clientId, transactionExternalId));
} }
public PostClientsClientIdTransactionsTransactionIdResponse undoClientTransactionByExternalId(final String externalId, public PostClientsClientIdTransactionsTransactionIdResponse undoClientTransactionByExternalId(final String externalId,
final String transactionId) { final String transactionId) {
return ok(fineract().clientTransactions.undoClientTransaction2(externalId, Long.parseLong(transactionId), "undo")); return Calls.ok(FineractClientHelper.getFineractClient().clientTransactions.undoClientTransaction2(externalId,
Long.parseLong(transactionId), "undo"));
} }
public PostClientsClientIdTransactionsTransactionIdResponse undoClientTransactionByTransactionExternalId(final Long clientId, public PostClientsClientIdTransactionsTransactionIdResponse undoClientTransactionByTransactionExternalId(final Long clientId,
final String transactionExternalId) { final String transactionExternalId) {
return ok(fineract().clientTransactions.undoClientTransaction1(clientId, transactionExternalId, "undo")); return Calls.ok(FineractClientHelper.getFineractClient().clientTransactions.undoClientTransaction1(clientId, transactionExternalId,
"undo"));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1212,7 +1216,7 @@ public class ClientHelper extends IntegrationTest {
} }
public GetLoanAccountLockResponse retrieveLockedAccounts(int page, int limit) { public GetLoanAccountLockResponse retrieveLockedAccounts(int page, int limit) {
return ok(fineract().loanAccountLockApi.retrieveLockedAccounts(page, limit)); return Calls.ok(FineractClientHelper.getFineractClient().loanAccountLockApi.retrieveLockedAccounts(page, limit));
} }
public static PostClientsClientIdIdentifiersRequest createClientIdentifer(final Long documentType) { public static PostClientsClientIdIdentifiersRequest createClientIdentifer(final Long documentType) {
@@ -18,6 +18,9 @@
*/ */
package org.apache.fineract.integrationtests.common; package org.apache.fineract.integrationtests.common;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -32,68 +35,67 @@ import org.apache.fineract.client.models.PagedRequestExternalAssetOwnerSearchReq
import org.apache.fineract.client.models.PostFinancialActivityAccountsRequest; import org.apache.fineract.client.models.PostFinancialActivityAccountsRequest;
import org.apache.fineract.client.models.PostInitiateTransferRequest; import org.apache.fineract.client.models.PostInitiateTransferRequest;
import org.apache.fineract.client.models.PostInitiateTransferResponse; import org.apache.fineract.client.models.PostInitiateTransferResponse;
import org.apache.fineract.client.util.CallFailedRuntimeException;
import org.apache.fineract.client.util.Calls; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.accounting.Account; import org.apache.fineract.integrationtests.common.accounting.Account;
import org.apache.fineract.integrationtests.common.accounting.FinancialActivityAccountHelper; import org.apache.fineract.integrationtests.common.accounting.FinancialActivityAccountHelper;
import retrofit2.Response;
public class ExternalAssetOwnerHelper extends IntegrationTest { public class ExternalAssetOwnerHelper {
public ExternalAssetOwnerHelper() {} public ExternalAssetOwnerHelper() {}
public PostInitiateTransferResponse initiateTransferByLoanId(Long loanId, String command, PostInitiateTransferRequest request) { public PostInitiateTransferResponse initiateTransferByLoanId(Long loanId, String command, PostInitiateTransferRequest request) {
return ok(fineract().externalAssetOwners.transferRequestWithLoanId(loanId, request, command)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.transferRequestWithLoanId(loanId, request, command));
} }
public void cancelTransferByTransferExternalId(String transferExternalId) { public void cancelTransferByTransferExternalId(String transferExternalId) {
ok(fineract().externalAssetOwners.transferRequestWithId1(transferExternalId, "cancel")); Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.transferRequestWithId1(transferExternalId, "cancel"));
} }
public void cancelTransferByTransferExternalIdError(String transferExternalId) { public void cancelTransferByTransferExternalIdError(String transferExternalId) {
Response<PostInitiateTransferResponse> response = Calls CallFailedRuntimeException exception = assertThrows(CallFailedRuntimeException.class, () -> Calls
.executeU(fineract().externalAssetOwners.transferRequestWithId1(transferExternalId, "cancel")); .okR(FineractClientHelper.getFineractClient().externalAssetOwners.transferRequestWithId1(transferExternalId, "cancel")));
assertThat(response.code()).isEqualTo(403); assertEquals(403, exception.getResponse().code());
} }
public PageExternalTransferData retrieveTransferByTransferExternalId(String transferExternalId) { public PageExternalTransferData retrieveTransferByTransferExternalId(String transferExternalId) {
return ok(fineract().externalAssetOwners.getTransfers(transferExternalId, null, null, 0, 100)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getTransfers(transferExternalId, null, null, 0, 100));
} }
public PageExternalTransferData retrieveTransferByLoanExternalId(String loanExternalId) { public PageExternalTransferData retrieveTransferByLoanExternalId(String loanExternalId) {
return ok(fineract().externalAssetOwners.getTransfers(null, null, loanExternalId, 0, 100)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getTransfers(null, null, loanExternalId, 0, 100));
} }
public PageExternalTransferData retrieveTransfersByLoanId(Long loanId) { public PageExternalTransferData retrieveTransfersByLoanId(Long loanId) {
return ok(fineract().externalAssetOwners.getTransfers(null, loanId, null, 0, 100)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getTransfers(null, loanId, null, 0, 100));
} }
public PageExternalTransferData retrieveTransfersByLoanId(Long loanId, int offset, int limit) { public PageExternalTransferData retrieveTransfersByLoanId(Long loanId, int offset, int limit) {
return ok(fineract().externalAssetOwners.getTransfers(null, loanId, null, offset, limit)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getTransfers(null, loanId, null, offset, limit));
} }
public ExternalTransferData retrieveActiveTransferByLoanExternalId(String loanExternalId) { public ExternalTransferData retrieveActiveTransferByLoanExternalId(String loanExternalId) {
return ok(fineract().externalAssetOwners.getActiveTransfer(null, null, loanExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getActiveTransfer(null, null, loanExternalId));
} }
public ExternalTransferData retrieveActiveTransferByTransferExternalId(String transferExternalId) { public ExternalTransferData retrieveActiveTransferByTransferExternalId(String transferExternalId) {
return ok(fineract().externalAssetOwners.getActiveTransfer(transferExternalId, null, null)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getActiveTransfer(transferExternalId, null, null));
} }
public ExternalTransferData retrieveActiveTransferByLoanId(Long loanId) { public ExternalTransferData retrieveActiveTransferByLoanId(Long loanId) {
return ok(fineract().externalAssetOwners.getActiveTransfer(null, loanId, null)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getActiveTransfer(null, loanId, null));
} }
public ExternalOwnerTransferJournalEntryData retrieveJournalEntriesOfTransfer(Long transferId) { public ExternalOwnerTransferJournalEntryData retrieveJournalEntriesOfTransfer(Long transferId) {
return ok(fineract().externalAssetOwners.getJournalEntriesOfTransfer(transferId, 0, 100)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getJournalEntriesOfTransfer(transferId, 0, 100));
} }
public ExternalOwnerJournalEntryData retrieveJournalEntriesOfOwner(String ownerExternalId) { public ExternalOwnerJournalEntryData retrieveJournalEntriesOfOwner(String ownerExternalId) {
return ok(fineract().externalAssetOwners.getJournalEntriesOfOwner(ownerExternalId, 0, 100)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.getJournalEntriesOfOwner(ownerExternalId, 0, 100));
} }
public PageExternalTransferData searchExternalAssetOwnerTransfer(PagedRequestExternalAssetOwnerSearchRequest request) { public PageExternalTransferData searchExternalAssetOwnerTransfer(PagedRequestExternalAssetOwnerSearchRequest request) {
return ok(fineract().externalAssetOwners.searchInvestorData(request)); return Calls.ok(FineractClientHelper.getFineractClient().externalAssetOwners.searchInvestorData(request));
} }
public PagedRequestExternalAssetOwnerSearchRequest buildExternalAssetOwnerSearchRequest(String text, String attribute, public PagedRequestExternalAssetOwnerSearchRequest buildExternalAssetOwnerSearchRequest(String text, String attribute,
@@ -0,0 +1,55 @@
/**
* 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.integrationtests.common;
import java.util.function.Consumer;
import java.util.function.Function;
import okhttp3.logging.HttpLoggingInterceptor;
import org.apache.fineract.client.util.FineractClient;
import org.apache.fineract.integrationtests.ConfigProperties;
public final class FineractClientHelper {
private static final FineractClient DEFAULT_FINERACT_CLIENT = createNewFineractClient(ConfigProperties.Backend.USERNAME,
ConfigProperties.Backend.PASSWORD);
private FineractClientHelper() {}
public static FineractClient getFineractClient() {
return DEFAULT_FINERACT_CLIENT;
}
public static FineractClient createNewFineractClient(String username, String password) {
return createNewFineractClient(username, password, Function.identity()::apply);
}
public static FineractClient createNewFineractClient(String username, String password, Consumer<FineractClient.Builder> customizer) {
String url = System.getProperty("fineract.it.url", buildURI());
// insecure(true) should *ONLY* ever be used for https://localhost:8443, NOT in real clients!!
FineractClient.Builder builder = FineractClient.builder().insecure(true).baseURL(url).tenant(ConfigProperties.Backend.TENANT)
.basicAuth(username, password).logging(HttpLoggingInterceptor.Level.NONE);
customizer.accept(builder);
return builder.build();
}
private static String buildURI() {
return ConfigProperties.Backend.PROTOCOL + "://" + ConfigProperties.Backend.HOST + ":" + ConfigProperties.Backend.PORT
+ "/fineract-provider/api/";
}
}
@@ -30,26 +30,26 @@ import org.apache.fineract.client.models.GetGlobalConfigurationsResponse;
import org.apache.fineract.client.models.GlobalConfigurationPropertyData; import org.apache.fineract.client.models.GlobalConfigurationPropertyData;
import org.apache.fineract.client.models.PutGlobalConfigurationsRequest; import org.apache.fineract.client.models.PutGlobalConfigurationsRequest;
import org.apache.fineract.client.models.PutGlobalConfigurationsResponse; import org.apache.fineract.client.models.PutGlobalConfigurationsResponse;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants; import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
@SuppressWarnings({ "unused", "rawtypes" }) @SuppressWarnings({ "unused", "rawtypes" })
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
public class GlobalConfigurationHelper extends IntegrationTest { public class GlobalConfigurationHelper {
private static final Gson GSON = new JSON().getGson(); private static final Gson GSON = new JSON().getGson();
public GetGlobalConfigurationsResponse getAllGlobalConfigurations() { public GetGlobalConfigurationsResponse getAllGlobalConfigurations() {
log.info("------------------------ RETRIEVING ALL GLOBAL CONFIGURATIONS -------------------------"); log.info("------------------------ RETRIEVING ALL GLOBAL CONFIGURATIONS -------------------------");
return ok(fineract().globalConfigurations.retrieveConfiguration(false)); return Calls.ok(FineractClientHelper.getFineractClient().globalConfigurations.retrieveConfiguration(false));
} }
public GlobalConfigurationPropertyData getGlobalConfigurationByName(final String configName) { public GlobalConfigurationPropertyData getGlobalConfigurationByName(final String configName) {
log.info("------------------------ RETRIEVING GLOBAL CONFIGURATION BY NAME -------------------------"); log.info("------------------------ RETRIEVING GLOBAL CONFIGURATION BY NAME -------------------------");
return ok(fineract().globalConfigurations.retrieveOneByName(configName)); return Calls.ok(FineractClientHelper.getFineractClient().globalConfigurations.retrieveOneByName(configName));
} }
// TODO: This is quite a bad pattern and adds a lot of time to individual test executions // TODO: This is quite a bad pattern and adds a lot of time to individual test executions
@@ -540,12 +540,12 @@ public class GlobalConfigurationHelper extends IntegrationTest {
public PutGlobalConfigurationsResponse updateGlobalConfiguration(final String configName, PutGlobalConfigurationsRequest request) { public PutGlobalConfigurationsResponse updateGlobalConfiguration(final String configName, PutGlobalConfigurationsRequest request) {
log.info("---------------------------------UPDATE VALUE FOR GLOBAL CONFIG---------------------------------------------"); log.info("---------------------------------UPDATE VALUE FOR GLOBAL CONFIG---------------------------------------------");
return ok(fineract().globalConfigurations.updateConfigurationByName(configName, request)); return Calls.ok(FineractClientHelper.getFineractClient().globalConfigurations.updateConfigurationByName(configName, request));
} }
public void updateGlobalConfigurationInternal(final String configName, final Long value) { public void updateGlobalConfigurationInternal(final String configName, final Long value) {
log.info("---------------------------UPDATE VALUE FOR GLOBAL CONFIG (internal) ---------------------------------------"); log.info("---------------------------UPDATE VALUE FOR GLOBAL CONFIG (internal) ---------------------------------------");
ok(fineract().legacy.updateGlobalConfiguration(configName, value)); Calls.ok(FineractClientHelper.getFineractClient().legacy.updateGlobalConfiguration(configName, value));
} }
public void manageConfigurations(final String configurationName, final boolean enabled) { public void manageConfigurations(final String configurationName, final boolean enabled) {
@@ -27,9 +27,9 @@ import org.apache.fineract.client.models.PostCreateRescheduleLoansRequest;
import org.apache.fineract.client.models.PostCreateRescheduleLoansResponse; import org.apache.fineract.client.models.PostCreateRescheduleLoansResponse;
import org.apache.fineract.client.models.PostUpdateRescheduleLoansRequest; import org.apache.fineract.client.models.PostUpdateRescheduleLoansRequest;
import org.apache.fineract.client.models.PostUpdateRescheduleLoansResponse; import org.apache.fineract.client.models.PostUpdateRescheduleLoansResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
public class LoanRescheduleRequestHelper extends IntegrationTest { public class LoanRescheduleRequestHelper {
private final RequestSpecification requestSpec; private final RequestSpecification requestSpec;
private final ResponseSpecification responseSpec; private final ResponseSpecification responseSpec;
@@ -101,14 +101,16 @@ public class LoanRescheduleRequestHelper extends IntegrationTest {
} }
public PostCreateRescheduleLoansResponse createLoanRescheduleRequest(PostCreateRescheduleLoansRequest request) { public PostCreateRescheduleLoansResponse createLoanRescheduleRequest(PostCreateRescheduleLoansRequest request) {
return ok(fineract().rescheduleLoans.createLoanRescheduleRequest(request)); return Calls.ok(FineractClientHelper.getFineractClient().rescheduleLoans.createLoanRescheduleRequest(request));
} }
public PostUpdateRescheduleLoansResponse approveLoanRescheduleRequest(Long scheduleId, PostUpdateRescheduleLoansRequest request) { public PostUpdateRescheduleLoansResponse approveLoanRescheduleRequest(Long scheduleId, PostUpdateRescheduleLoansRequest request) {
return ok(fineract().rescheduleLoans.updateLoanRescheduleRequest(scheduleId, request, "approve")); return Calls
.ok(FineractClientHelper.getFineractClient().rescheduleLoans.updateLoanRescheduleRequest(scheduleId, request, "approve"));
} }
public PostUpdateRescheduleLoansResponse rejectLoanRescheduleRequest(Long scheduleId, PostUpdateRescheduleLoansRequest request) { public PostUpdateRescheduleLoansResponse rejectLoanRescheduleRequest(Long scheduleId, PostUpdateRescheduleLoansRequest request) {
return ok(fineract().rescheduleLoans.updateLoanRescheduleRequest(scheduleId, request, "reject")); return Calls
.ok(FineractClientHelper.getFineractClient().rescheduleLoans.updateLoanRescheduleRequest(scheduleId, request, "reject"));
} }
} }
@@ -33,14 +33,13 @@ import org.apache.fineract.client.models.GetOfficesResponse;
import org.apache.fineract.client.models.PutOfficesOfficeIdRequest; import org.apache.fineract.client.models.PutOfficesOfficeIdRequest;
import org.apache.fineract.client.models.PutOfficesOfficeIdResponse; import org.apache.fineract.client.models.PutOfficesOfficeIdResponse;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import retrofit2.Response; import retrofit2.Response;
public class OfficeHelper extends IntegrationTest { public class OfficeHelper {
public static final long HEAD_OFFICE_ID = 1L; // The ID is hardcoded in the initial Liquibase migration script public static final long HEAD_OFFICE_ID = 1L; // The ID is hardcoded in the initial Liquibase migration script
@@ -117,12 +116,12 @@ public class OfficeHelper extends IntegrationTest {
} }
public Response<GetOfficesResponse> retrieveOfficeByExternalId(String externalId) throws IOException { public Response<GetOfficesResponse> retrieveOfficeByExternalId(String externalId) throws IOException {
return fineract().offices.retrieveOfficeByExternalId(externalId).execute(); return FineractClientHelper.getFineractClient().offices.retrieveOfficeByExternalId(externalId).execute();
} }
public Response<PutOfficesOfficeIdResponse> updateOfficeUsingExternalId(String externalId, String name, String openingDate) public Response<PutOfficesOfficeIdResponse> updateOfficeUsingExternalId(String externalId, String name, String openingDate)
throws IOException { throws IOException {
return fineract().offices return FineractClientHelper.getFineractClient().offices
.updateOfficeWithExternalId(externalId, .updateOfficeWithExternalId(externalId,
new PutOfficesOfficeIdRequest().name(name).openingDate(openingDate).dateFormat("dd MMMM yyyy").locale("en")) new PutOfficesOfficeIdRequest().name(name).openingDate(openingDate).dateFormat("dd MMMM yyyy").locale("en"))
.execute(); .execute();
@@ -33,11 +33,11 @@ import org.apache.fineract.client.models.PostPaymentTypesRequest;
import org.apache.fineract.client.models.PostPaymentTypesResponse; import org.apache.fineract.client.models.PostPaymentTypesResponse;
import org.apache.fineract.client.models.PutPaymentTypesPaymentTypeIdRequest; import org.apache.fineract.client.models.PutPaymentTypesPaymentTypeIdRequest;
import org.apache.fineract.client.models.PutPaymentTypesPaymentTypeIdResponse; import org.apache.fineract.client.models.PutPaymentTypesPaymentTypeIdResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
@SuppressWarnings({ "rawtypes", "unchecked" }) @SuppressWarnings({ "rawtypes", "unchecked" })
@Slf4j @Slf4j
public final class PaymentTypeHelper extends IntegrationTest { public final class PaymentTypeHelper {
public PaymentTypeHelper() { public PaymentTypeHelper() {
@@ -48,24 +48,25 @@ public final class PaymentTypeHelper extends IntegrationTest {
public List<GetPaymentTypesResponse> getAllPaymentTypes(final Boolean onlyWithCode) { public List<GetPaymentTypesResponse> getAllPaymentTypes(final Boolean onlyWithCode) {
log.info("-------------------------------GETTING ALL PAYMENT TYPES-------------------------------------------"); log.info("-------------------------------GETTING ALL PAYMENT TYPES-------------------------------------------");
return ok(fineract().paymentTypes.getAllPaymentTypes(onlyWithCode)); return Calls.ok(FineractClientHelper.getFineractClient().paymentTypes.getAllPaymentTypes(onlyWithCode));
} }
public PostPaymentTypesResponse createPaymentType(final PostPaymentTypesRequest postPaymentTypesRequest) { public PostPaymentTypesResponse createPaymentType(final PostPaymentTypesRequest postPaymentTypesRequest) {
log.info("---------------------------------CREATING A PAYMENT TYPE---------------------------------------------"); log.info("---------------------------------CREATING A PAYMENT TYPE---------------------------------------------");
return ok(fineract().paymentTypes.createPaymentType(postPaymentTypesRequest)); return Calls.ok(FineractClientHelper.getFineractClient().paymentTypes.createPaymentType(postPaymentTypesRequest));
} }
public void verifyPaymentTypeCreatedOnServer(final Long generatedPaymentTypeID) { public void verifyPaymentTypeCreatedOnServer(final Long generatedPaymentTypeID) {
log.info("-------------------------------CHECK PAYMENT DETAILS-------------------------------------------"); log.info("-------------------------------CHECK PAYMENT DETAILS-------------------------------------------");
GetPaymentTypesPaymentTypeIdResponse response = ok(fineract().paymentTypes.retrieveOnePaymentType(generatedPaymentTypeID)); GetPaymentTypesPaymentTypeIdResponse response = Calls
.ok(FineractClientHelper.getFineractClient().paymentTypes.retrieveOnePaymentType(generatedPaymentTypeID));
Long responsePaymentTypeID = response.getId(); Long responsePaymentTypeID = response.getId();
assertEquals(generatedPaymentTypeID, responsePaymentTypeID, "ERROR IN CREATING THE PAYMENT TYPE"); assertEquals(generatedPaymentTypeID, responsePaymentTypeID, "ERROR IN CREATING THE PAYMENT TYPE");
} }
public GetPaymentTypesPaymentTypeIdResponse retrieveById(final Long paymentTypeId) { public GetPaymentTypesPaymentTypeIdResponse retrieveById(final Long paymentTypeId) {
log.info("-------------------------------GETTING PAYMENT TYPE-------------------------------------------"); log.info("-------------------------------GETTING PAYMENT TYPE-------------------------------------------");
return ok(fineract().paymentTypes.retrieveOnePaymentType(paymentTypeId)); return Calls.ok(FineractClientHelper.getFineractClient().paymentTypes.retrieveOnePaymentType(paymentTypeId));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -83,12 +84,13 @@ public final class PaymentTypeHelper extends IntegrationTest {
public PutPaymentTypesPaymentTypeIdResponse updatePaymentType(final Long paymentTypeId, public PutPaymentTypesPaymentTypeIdResponse updatePaymentType(final Long paymentTypeId,
PutPaymentTypesPaymentTypeIdRequest putPaymentTypesPaymentTypeIdRequest) { PutPaymentTypesPaymentTypeIdRequest putPaymentTypesPaymentTypeIdRequest) {
log.info("-------------------------------UPDATING PAYMENT TYPE-------------------------------------------"); log.info("-------------------------------UPDATING PAYMENT TYPE-------------------------------------------");
return ok(fineract().paymentTypes.updatePaymentType(paymentTypeId, putPaymentTypesPaymentTypeIdRequest)); return Calls.ok(FineractClientHelper.getFineractClient().paymentTypes.updatePaymentType(paymentTypeId,
putPaymentTypesPaymentTypeIdRequest));
} }
public DeletePaymentTypesPaymentTypeIdResponse deletePaymentType(final Long paymentTypeId) { public DeletePaymentTypesPaymentTypeIdResponse deletePaymentType(final Long paymentTypeId) {
log.info("-------------------------------DELETING PAYMENT TYPE-------------------------------------------"); log.info("-------------------------------DELETING PAYMENT TYPE-------------------------------------------");
return ok(fineract().paymentTypes.deleteCode1(paymentTypeId)); return Calls.ok(FineractClientHelper.getFineractClient().paymentTypes.deleteCode1(paymentTypeId));
} }
public static String randomNameGenerator(final String prefix, final int lenOfRandomSuffix) { public static String randomNameGenerator(final String prefix, final int lenOfRandomSuffix) {
@@ -44,14 +44,14 @@ import java.util.function.Function;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.apache.fineract.client.models.PutJobsJobIDRequest; import org.apache.fineract.client.models.PutJobsJobIDRequest;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType; import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.hamcrest.MatcherAssert; import org.hamcrest.MatcherAssert;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SchedulerJobHelper extends IntegrationTest { public class SchedulerJobHelper {
private static final Logger LOG = LoggerFactory.getLogger(SchedulerJobHelper.class); private static final Logger LOG = LoggerFactory.getLogger(SchedulerJobHelper.class);
private final RequestSpecification requestSpec; private final RequestSpecification requestSpec;
@@ -131,7 +131,7 @@ public class SchedulerJobHelper extends IntegrationTest {
public void updateSchedulerStatus(final boolean on) { public void updateSchedulerStatus(final boolean on) {
String command = on ? "start" : "stop"; String command = on ? "start" : "stop";
ok(fineract().jobsScheduler.changeSchedulerStatus(command)); Calls.ok(FineractClientHelper.getFineractClient().jobsScheduler.changeSchedulerStatus(command));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -147,7 +147,7 @@ public class SchedulerJobHelper extends IntegrationTest {
} }
public void updateSchedulerJob(long jobId, PutJobsJobIDRequest request) { public void updateSchedulerJob(long jobId, PutJobsJobIDRequest request) {
ok(fineract().jobs.updateJobDetail(jobId, request)); Calls.ok(FineractClientHelper.getFineractClient().jobs.updateJobDetail(jobId, request));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -24,11 +24,12 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import org.apache.fineract.client.models.PostGLAccountsRequest; import org.apache.fineract.client.models.PostGLAccountsRequest;
import org.apache.fineract.client.models.PostGLAccountsResponse; import org.apache.fineract.client.models.PostGLAccountsResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
public class AccountHelper extends IntegrationTest { public class AccountHelper {
private static final String CREATE_GL_ACCOUNT_URL = "/fineract-provider/api/v1/glaccounts?" + Utils.TENANT_IDENTIFIER; private static final String CREATE_GL_ACCOUNT_URL = "/fineract-provider/api/v1/glaccounts?" + Utils.TENANT_IDENTIFIER;
private static final String GL_ACCOUNT_ID_RESPONSE = "resourceId"; private static final String GL_ACCOUNT_ID_RESPONSE = "resourceId";
@@ -142,7 +143,7 @@ public class AccountHelper extends IntegrationTest {
} }
public PostGLAccountsResponse createGLAccount(final PostGLAccountsRequest request) { public PostGLAccountsResponse createGLAccount(final PostGLAccountsRequest request) {
return ok(fineract().glAccounts.createGLAccount1(request)); return Calls.ok(FineractClientHelper.getFineractClient().glAccounts.createGLAccount1(request));
} }
} }
@@ -26,11 +26,12 @@ import org.apache.fineract.client.models.DeleteFinancialActivityAccountsResponse
import org.apache.fineract.client.models.GetFinancialActivityAccountsResponse; import org.apache.fineract.client.models.GetFinancialActivityAccountsResponse;
import org.apache.fineract.client.models.PostFinancialActivityAccountsRequest; import org.apache.fineract.client.models.PostFinancialActivityAccountsRequest;
import org.apache.fineract.client.models.PostFinancialActivityAccountsResponse; import org.apache.fineract.client.models.PostFinancialActivityAccountsResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
public class FinancialActivityAccountHelper extends IntegrationTest { public class FinancialActivityAccountHelper {
private static final String FINANCIAL_ACTIVITY_ACCOUNT_MAPPING_URL = "/fineract-provider/api/v1/financialactivityaccounts"; private static final String FINANCIAL_ACTIVITY_ACCOUNT_MAPPING_URL = "/fineract-provider/api/v1/financialactivityaccounts";
private final RequestSpecification requestSpec; private final RequestSpecification requestSpec;
@@ -91,14 +92,14 @@ public class FinancialActivityAccountHelper extends IntegrationTest {
} }
public PostFinancialActivityAccountsResponse createFinancialActivityAccount(PostFinancialActivityAccountsRequest request) { public PostFinancialActivityAccountsResponse createFinancialActivityAccount(PostFinancialActivityAccountsRequest request) {
return ok(fineract().financialActivyAccountMappings.createGLAccount(request)); return Calls.ok(FineractClientHelper.getFineractClient().financialActivyAccountMappings.createGLAccount(request));
} }
public List<GetFinancialActivityAccountsResponse> getAllFinancialActivityAccounts() { public List<GetFinancialActivityAccountsResponse> getAllFinancialActivityAccounts() {
return ok(fineract().financialActivyAccountMappings.retrieveAll()); return Calls.ok(FineractClientHelper.getFineractClient().financialActivyAccountMappings.retrieveAll());
} }
public DeleteFinancialActivityAccountsResponse deleteFinancialActivityAccount(Long financialMappingId) { public DeleteFinancialActivityAccountsResponse deleteFinancialActivityAccount(Long financialMappingId) {
return ok(fineract().financialActivyAccountMappings.deleteGLAccount(financialMappingId)); return Calls.ok(FineractClientHelper.getFineractClient().financialActivyAccountMappings.deleteGLAccount(financialMappingId));
} }
} }
@@ -25,16 +25,17 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import org.apache.fineract.client.models.PostChargesRequest; import org.apache.fineract.client.models.PostChargesRequest;
import org.apache.fineract.client.models.PostChargesResponse; import org.apache.fineract.client.models.PostChargesResponse;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.CommonConstants; import org.apache.fineract.integrationtests.common.CommonConstants;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.apache.fineract.portfolio.charge.domain.ChargeTimeType; import org.apache.fineract.portfolio.charge.domain.ChargeTimeType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@SuppressWarnings({ "rawtypes", "unchecked" }) @SuppressWarnings({ "rawtypes", "unchecked" })
public final class ChargesHelper extends IntegrationTest { public final class ChargesHelper {
public ChargesHelper() { public ChargesHelper() {
@@ -788,6 +789,6 @@ public final class ChargesHelper extends IntegrationTest {
} }
public PostChargesResponse createCharges(PostChargesRequest request) { public PostChargesResponse createCharges(PostChargesRequest request) {
return ok(fineract().charges.createCharge(request)); return Calls.ok(FineractClientHelper.getFineractClient().charges.createCharge(request));
} }
} }
@@ -28,15 +28,16 @@ import lombok.Builder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.client.models.CommandProcessingResult; import org.apache.fineract.client.models.CommandProcessingResult;
import org.apache.fineract.client.models.PutExternalEventConfigurationsRequest; import org.apache.fineract.client.models.PutExternalEventConfigurationsRequest;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO; import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.ExternalEventConfigurationHelper; import org.apache.fineract.integrationtests.common.ExternalEventConfigurationHelper;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
@Slf4j @Slf4j
public final class ExternalEventHelper extends IntegrationTest { public final class ExternalEventHelper {
private static final Gson GSON = new JSON().getGson(); private static final Gson GSON = new JSON().getGson();
@@ -121,8 +122,9 @@ public final class ExternalEventHelper extends IntegrationTest {
} }
public void configureBusinessEvent(String eventName, boolean enabled) { public void configureBusinessEvent(String eventName, boolean enabled) {
CommandProcessingResult result = ok(fineract().externalEventConfigurationApi.updateExternalEventConfigurationsDetails( CommandProcessingResult result = Calls
new PutExternalEventConfigurationsRequest().putExternalEventConfigurationsItem(eventName, enabled))); .ok(FineractClientHelper.getFineractClient().externalEventConfigurationApi.updateExternalEventConfigurationsDetails(
new PutExternalEventConfigurationsRequest().putExternalEventConfigurationsItem(eventName, enabled)));
Map<String, Object> changes = result.getChanges(); Map<String, Object> changes = result.getChanges();
Assertions.assertNotNull(changes); Assertions.assertNotNull(changes);
Assertions.assertInstanceOf(Map.class, changes); Assertions.assertInstanceOf(Map.class, changes);
@@ -22,10 +22,9 @@ import com.google.gson.Gson;
import io.restassured.specification.RequestSpecification; import io.restassured.specification.RequestSpecification;
import io.restassured.specification.ResponseSpecification; import io.restassured.specification.ResponseSpecification;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
public class LoanAccountLockHelper extends IntegrationTest { public class LoanAccountLockHelper {
private static final String INTERNAL_PLACE_LOCK_ON_LOAN_ACCOUNT_URL = "/fineract-provider/api/v1/internal/loans/"; private static final String INTERNAL_PLACE_LOCK_ON_LOAN_ACCOUNT_URL = "/fineract-provider/api/v1/internal/loans/";
private static final Gson GSON = new JSON().getGson(); private static final Gson GSON = new JSON().getGson();
@@ -23,12 +23,13 @@ import java.util.Objects;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.client.models.GetOldestCOBProcessedLoanResponse; import org.apache.fineract.client.models.GetOldestCOBProcessedLoanResponse;
import org.apache.fineract.client.models.IsCatchUpRunningResponse; import org.apache.fineract.client.models.IsCatchUpRunningResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import retrofit2.Response; import retrofit2.Response;
@Slf4j @Slf4j
public class LoanCOBCatchUpHelper extends IntegrationTest { public class LoanCOBCatchUpHelper {
public LoanCOBCatchUpHelper() {} public LoanCOBCatchUpHelper() {}
@@ -47,15 +48,15 @@ public class LoanCOBCatchUpHelper extends IntegrationTest {
} }
public Response<Void> executeLoanCOBCatchUp() { public Response<Void> executeLoanCOBCatchUp() {
return okR(fineract().loanCobCatchUpApi.executeLoanCOBCatchUp()); return Calls.okR(FineractClientHelper.getFineractClient().loanCobCatchUpApi.executeLoanCOBCatchUp());
} }
public GetOldestCOBProcessedLoanResponse executeRetrieveOldestCOBProcessedLoan() { public GetOldestCOBProcessedLoanResponse executeRetrieveOldestCOBProcessedLoan() {
return ok(fineract().loanCobCatchUpApi.getOldestCOBProcessedLoan()); return Calls.ok(FineractClientHelper.getFineractClient().loanCobCatchUpApi.getOldestCOBProcessedLoan());
} }
public Response<IsCatchUpRunningResponse> executeGetLoanCatchUpStatus() { public Response<IsCatchUpRunningResponse> executeGetLoanCatchUpStatus() {
return okR(fineract().loanCobCatchUpApi.isCatchUpRunning()); return Calls.okR(FineractClientHelper.getFineractClient().loanCobCatchUpApi.isCatchUpRunning());
} }
} }
@@ -24,33 +24,34 @@ import org.apache.fineract.client.models.PostLoanProductsRequest;
import org.apache.fineract.client.models.PostLoanProductsResponse; import org.apache.fineract.client.models.PostLoanProductsResponse;
import org.apache.fineract.client.models.PutLoanProductsProductIdRequest; import org.apache.fineract.client.models.PutLoanProductsProductIdRequest;
import org.apache.fineract.client.models.PutLoanProductsProductIdResponse; import org.apache.fineract.client.models.PutLoanProductsProductIdResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
public class LoanProductHelper extends IntegrationTest { public class LoanProductHelper {
public LoanProductHelper() {} public LoanProductHelper() {}
public PostLoanProductsResponse createLoanProduct(PostLoanProductsRequest request) { public PostLoanProductsResponse createLoanProduct(PostLoanProductsRequest request) {
return ok(fineract().loanProducts.createLoanProduct(request)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.createLoanProduct(request));
} }
public GetLoanProductsProductIdResponse retrieveLoanProductByExternalId(String externalId) { public GetLoanProductsProductIdResponse retrieveLoanProductByExternalId(String externalId) {
return ok(fineract().loanProducts.retrieveLoanProductDetails1(externalId)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.retrieveLoanProductDetails1(externalId));
} }
public GetLoanProductsProductIdResponse retrieveLoanProductById(Long loanProductId) { public GetLoanProductsProductIdResponse retrieveLoanProductById(Long loanProductId) {
return ok(fineract().loanProducts.retrieveLoanProductDetails(loanProductId)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.retrieveLoanProductDetails(loanProductId));
} }
public PutLoanProductsProductIdResponse updateLoanProductByExternalId(String externalId, PutLoanProductsProductIdRequest request) { public PutLoanProductsProductIdResponse updateLoanProductByExternalId(String externalId, PutLoanProductsProductIdRequest request) {
return ok(fineract().loanProducts.updateLoanProduct1(externalId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.updateLoanProduct1(externalId, request));
} }
public PutLoanProductsProductIdResponse updateLoanProductById(Long loanProductId, PutLoanProductsProductIdRequest request) { public PutLoanProductsProductIdResponse updateLoanProductById(Long loanProductId, PutLoanProductsProductIdRequest request) {
return ok(fineract().loanProducts.updateLoanProduct(loanProductId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.updateLoanProduct(loanProductId, request));
} }
public GetLoanProductsTemplateResponse getLoanProductTemplate(boolean isProductMixTemplate) { public GetLoanProductsTemplateResponse getLoanProductTemplate(boolean isProductMixTemplate) {
return ok(fineract().loanProducts.retrieveTemplate11(isProductMixTemplate)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.retrieveTemplate11(isProductMixTemplate));
} }
} }
@@ -21,6 +21,7 @@ package org.apache.fineract.integrationtests.common.loans;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import com.google.common.reflect.TypeToken; import com.google.common.reflect.TypeToken;
@@ -85,10 +86,12 @@ import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdRequest;
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdResponse; import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdResponse;
import org.apache.fineract.client.models.PutLoansLoanIdRequest; import org.apache.fineract.client.models.PutLoansLoanIdRequest;
import org.apache.fineract.client.models.PutLoansLoanIdResponse; import org.apache.fineract.client.models.PutLoansLoanIdResponse;
import org.apache.fineract.client.util.CallFailedRuntimeException;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.CommonConstants; import org.apache.fineract.integrationtests.common.CommonConstants;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.PaymentTypeHelper; import org.apache.fineract.integrationtests.common.PaymentTypeHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.apache.fineract.integrationtests.common.accounting.Account; import org.apache.fineract.integrationtests.common.accounting.Account;
@@ -98,7 +101,7 @@ import org.apache.poi.ss.usermodel.Workbook;
@Slf4j @Slf4j
@SuppressWarnings({ "rawtypes", "unchecked" }) @SuppressWarnings({ "rawtypes", "unchecked" })
public class LoanTransactionHelper extends IntegrationTest { public class LoanTransactionHelper {
public static final String DATE_FORMAT = "d MMMM yyyy"; public static final String DATE_FORMAT = "d MMMM yyyy";
public static final String DATE_TIME_FORMAT = "dd MMMM yyyy HH:mm"; public static final String DATE_TIME_FORMAT = "dd MMMM yyyy HH:mm";
@@ -285,7 +288,7 @@ public class LoanTransactionHelper extends IntegrationTest {
public PutLoansLoanIdResponse modifyLoanApplication(final String loanExternalId, final String command, public PutLoansLoanIdResponse modifyLoanApplication(final String loanExternalId, final String command,
final PutLoansLoanIdRequest request) { final PutLoansLoanIdRequest request) {
return ok(fineract().loans.modifyLoanApplication1(loanExternalId, request, command)); return Calls.ok(FineractClientHelper.getFineractClient().loans.modifyLoanApplication1(loanExternalId, request, command));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -397,25 +400,26 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public List<GetDelinquencyActionsResponse> getLoanDelinquencyActions(final Long loanID) { public List<GetDelinquencyActionsResponse> getLoanDelinquencyActions(final Long loanID) {
return ok(fineract().loans.getLoanDelinquencyActions(loanID)); return Calls.ok(FineractClientHelper.getFineractClient().loans.getLoanDelinquencyActions(loanID));
} }
public List<GetDelinquencyActionsResponse> getLoanDelinquencyActions(String externalId) { public List<GetDelinquencyActionsResponse> getLoanDelinquencyActions(String externalId) {
return ok(fineract().loans.getLoanDelinquencyActions1(externalId)); return Calls.ok(FineractClientHelper.getFineractClient().loans.getLoanDelinquencyActions1(externalId));
} }
public PostLoansDelinquencyActionResponse createLoanDelinquencyAction(final Long loanid, DelinquencyAction action, String startDate, public PostLoansDelinquencyActionResponse createLoanDelinquencyAction(final Long loanid, DelinquencyAction action, String startDate,
String endDate) { String endDate) {
PostLoansDelinquencyActionRequest postLoansDelinquencyAction = new PostLoansDelinquencyActionRequest().action(action.name()) PostLoansDelinquencyActionRequest postLoansDelinquencyAction = new PostLoansDelinquencyActionRequest().action(action.name())
.startDate(startDate).endDate(endDate).locale("en").dateFormat("dd MMMM yyyy"); .startDate(startDate).endDate(endDate).locale("en").dateFormat("dd MMMM yyyy");
return ok(fineract().loans.createLoanDelinquencyAction(loanid, postLoansDelinquencyAction)); return Calls.ok(FineractClientHelper.getFineractClient().loans.createLoanDelinquencyAction(loanid, postLoansDelinquencyAction));
} }
public PostLoansDelinquencyActionResponse createLoanDelinquencyAction(String externalId, DelinquencyAction action, String startDate, public PostLoansDelinquencyActionResponse createLoanDelinquencyAction(String externalId, DelinquencyAction action, String startDate,
String endDate) { String endDate) {
PostLoansDelinquencyActionRequest postLoansDelinquencyAction = new PostLoansDelinquencyActionRequest().action(action.name()) PostLoansDelinquencyActionRequest postLoansDelinquencyAction = new PostLoansDelinquencyActionRequest().action(action.name())
.startDate(startDate).endDate(endDate).locale("en").dateFormat("dd MMMM yyyy"); .startDate(startDate).endDate(endDate).locale("en").dateFormat("dd MMMM yyyy");
return ok(fineract().loans.createLoanDelinquencyAction1(externalId, postLoansDelinquencyAction)); return Calls
.ok(FineractClientHelper.getFineractClient().loans.createLoanDelinquencyAction1(externalId, postLoansDelinquencyAction));
} }
public PostLoansDelinquencyActionResponse createLoanDelinquencyAction(final Long loanid, DelinquencyAction action, String startDate) { public PostLoansDelinquencyActionResponse createLoanDelinquencyAction(final Long loanid, DelinquencyAction action, String startDate) {
@@ -452,19 +456,19 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public List<GetLoansLoanIdChargesChargeIdResponse> getLoanCharges(final Long loanId) { public List<GetLoansLoanIdChargesChargeIdResponse> getLoanCharges(final Long loanId) {
return ok(fineract().loanCharges.retrieveAllLoanCharges(loanId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveAllLoanCharges(loanId));
} }
public List<GetLoansLoanIdChargesChargeIdResponse> getLoanCharges(final String loanExternalId) { public List<GetLoansLoanIdChargesChargeIdResponse> getLoanCharges(final String loanExternalId) {
return ok(fineract().loanCharges.retrieveAllLoanCharges1(loanExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveAllLoanCharges1(loanExternalId));
} }
public GetLoansLoanIdChargesTemplateResponse getLoanChargeTemplate(final Long loanId) { public GetLoansLoanIdChargesTemplateResponse getLoanChargeTemplate(final Long loanId) {
return ok(fineract().loanCharges.retrieveTemplate8(loanId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveTemplate8(loanId));
} }
public GetLoansLoanIdChargesTemplateResponse getLoanChargeTemplate(final String loanExternalId) { public GetLoansLoanIdChargesTemplateResponse getLoanChargeTemplate(final String loanExternalId) {
return ok(fineract().loanCharges.retrieveTemplate9(loanExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveTemplate9(loanExternalId));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -872,10 +876,11 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final Long loanId, final String command, final String date, public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final Long loanId, final String command, final String date,
final Double amount) { final Double amountToBePaid) {
log.info("Make {} with amount {} in {} for Loan {}", command, amount, date, loanId); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId,
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, new PostLoansLoanIdTransactionsRequest() new PostLoansLoanIdTransactionsRequest().transactionAmount(amountToBePaid).transactionDate(date).dateFormat("dd MMMM yyyy")
.transactionAmount(amount).transactionDate(date).dateFormat("dd MMMM yyyy").locale("en"), command)); .locale("en"),
command));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -888,12 +893,13 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "repayment")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "repayment"));
} }
public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final Long loanId, final PostLoansLoanIdTransactionsRequest request, public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final Long loanId, final PostLoansLoanIdTransactionsRequest request,
final String user, final String pass) { final String user, final String pass) {
return ok(newFineract(user, pass).loanTransactions.executeLoanTransaction(loanId, request, "repayment")); return Calls.ok(FineractClientHelper.createNewFineractClient(user, pass).loanTransactions.executeLoanTransaction(loanId, request,
"repayment"));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -968,223 +974,256 @@ public class LoanTransactionHelper extends IntegrationTest {
public PostLoansLoanIdTransactionsResponse makeInterestPaymentWaiver(final Long loanId, public PostLoansLoanIdTransactionsResponse makeInterestPaymentWaiver(final Long loanId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "interestPaymentWaiver")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "interestPaymentWaiver"));
} }
public PostLoansLoanIdTransactionsResponse makeInterestPaymentWaiver(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeInterestPaymentWaiver(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "interestPaymentWaiver")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"interestPaymentWaiver"));
} }
public PostLoansLoanIdTransactionsResponse reAge(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse reAge(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "reAge")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "reAge"));
} }
public PostLoansLoanIdTransactionsResponse reAmortize(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse reAmortize(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "reAmortize")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "reAmortize"));
} }
public PostLoansLoanIdTransactionsResponse undoReAge(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse undoReAge(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "undoReAge")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "undoReAge"));
} }
public PostLoansLoanIdTransactionsResponse undoReAmortize(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse undoReAmortize(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "undoReAmortize")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "undoReAmortize"));
} }
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final Long loanId, final Long transactionId, public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final Long loanId, final Long transactionId,
final PutChargeTransactionChangesRequest request) { final PutChargeTransactionChangesRequest request) {
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------"); log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
return ok(fineract().loanTransactions.undoWaiveCharge(loanId, transactionId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.undoWaiveCharge(loanId, transactionId, request));
} }
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final Long loanId, final String transactionExternalId, public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final Long loanId, final String transactionExternalId,
final PutChargeTransactionChangesRequest request) { final PutChargeTransactionChangesRequest request) {
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------"); log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
return ok(fineract().loanTransactions.undoWaiveCharge1(loanId, transactionExternalId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.undoWaiveCharge1(loanId, transactionExternalId, request));
} }
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final String loanExternalId, final Long transactionId, public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final String loanExternalId, final Long transactionId,
final PutChargeTransactionChangesRequest request) { final PutChargeTransactionChangesRequest request) {
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------"); log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
return ok(fineract().loanTransactions.undoWaiveCharge2(loanExternalId, transactionId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.undoWaiveCharge2(loanExternalId, transactionId, request));
} }
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final String loanExternalId, final String transactionExternalId, public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final String loanExternalId, final String transactionExternalId,
final PutChargeTransactionChangesRequest request) { final PutChargeTransactionChangesRequest request) {
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------"); log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
return ok(fineract().loanTransactions.undoWaiveCharge3(loanExternalId, transactionExternalId, request)); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.undoWaiveCharge3(loanExternalId, transactionExternalId, request));
} }
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final Long loanChargeId, public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final Long loanChargeId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge2(loanId, loanChargeId, request, "waive")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge2(loanId, loanChargeId, request, "waive"));
} }
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final String loanExternalId, final Long loanChargeId, public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final String loanExternalId, final Long loanChargeId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge4(loanExternalId, loanChargeId, request, "waive")); return Calls.ok(
FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge4(loanExternalId, loanChargeId, request, "waive"));
} }
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final String loanChargeExternalId, public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final String loanChargeExternalId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge3(loanId, loanChargeExternalId, request, "waive")); return Calls.ok(
FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge3(loanId, loanChargeExternalId, request, "waive"));
} }
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final String loanExternalId, final String loanChargeExternalId, public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final String loanExternalId, final String loanChargeExternalId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId, request, "waive")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId,
request, "waive"));
} }
public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "repayment")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "repayment"));
} }
public PostLoansLoanIdTransactionsResponse makeMerchantIssuedRefund(final Long loanId, public PostLoansLoanIdTransactionsResponse makeMerchantIssuedRefund(final Long loanId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "merchantIssuedRefund")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "merchantIssuedRefund"));
} }
public PostLoansLoanIdTransactionsResponse makeMerchantIssuedRefund(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeMerchantIssuedRefund(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "merchantIssuedRefund")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"merchantIssuedRefund"));
} }
public PostLoansLoanIdTransactionsResponse makePayoutRefund(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makePayoutRefund(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "payoutRefund")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "payoutRefund"));
} }
public PostLoansLoanIdTransactionsResponse makePayoutRefund(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makePayoutRefund(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "payoutRefund")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "payoutRefund"));
} }
public PostLoansLoanIdTransactionsResponse makeChargeRefund(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeChargeRefund(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "chargeRefund")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "chargeRefund"));
} }
public PostLoansLoanIdTransactionsResponse makeChargeRefund(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeChargeRefund(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "chargeRefund")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "chargeRefund"));
} }
public PostLoansLoanIdTransactionsResponse makeGoodwillCredit(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeGoodwillCredit(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "goodwillCredit")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "goodwillCredit"));
} }
public PostLoansLoanIdTransactionsResponse makeGoodwillCredit(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeGoodwillCredit(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "goodwillCredit")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"goodwillCredit"));
} }
public PostLoansLoanIdTransactionsResponse makeWaiveInterest(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeWaiveInterest(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "waiveinterest")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "waiveinterest"));
} }
public PostLoansLoanIdTransactionsResponse makeWaiveInterest(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeWaiveInterest(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "waiveinterest")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"waiveinterest"));
} }
public PostLoansLoanIdTransactionsResponse makeWriteoff(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeWriteoff(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "writeoff")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "writeoff"));
} }
public PostLoansLoanIdTransactionsResponse makeWriteoff(final String loanExternalId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeWriteoff(final String loanExternalId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "writeoff")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "writeoff"));
} }
public PostLoansLoanIdTransactionsResponse makeUndoWriteoff(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeUndoWriteoff(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "undowriteoff")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "undowriteoff"));
} }
public PostLoansLoanIdTransactionsResponse makeUndoWriteoff(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeUndoWriteoff(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "undowriteoff")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "undowriteoff"));
} }
public PostLoansLoanIdTransactionsResponse makeRecoveryPayment(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeRecoveryPayment(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "recoverypayment")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "recoverypayment"));
} }
public PostLoansLoanIdTransactionsResponse makeRecoveryPayment(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeRecoveryPayment(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "recoverypayment")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"recoverypayment"));
} }
public PostLoansLoanIdTransactionsResponse makeRefundByCash(final Long loanId, final PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeRefundByCash(final Long loanId, final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "refundByCash")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "refundByCash"));
} }
public PostLoansLoanIdTransactionsResponse makeRefundByCash(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeRefundByCash(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "refundByCash")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "refundByCash"));
} }
public PostLoansLoanIdTransactionsResponse makeCreditBalanceRefund(final Long loanId, public PostLoansLoanIdTransactionsResponse makeCreditBalanceRefund(final Long loanId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "creditBalanceRefund")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "creditBalanceRefund"));
} }
public PostLoansLoanIdTransactionsResponse makeCreditBalanceRefund(final String loanExternalId, public PostLoansLoanIdTransactionsResponse makeCreditBalanceRefund(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "creditBalanceRefund")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"creditBalanceRefund"));
} }
public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final String loanExternalId, final Long transactionId, public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final String loanExternalId, final Long transactionId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction2(loanExternalId, transactionId, request, "undo")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction2(loanExternalId, transactionId,
request, "undo"));
} }
public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final String loanExternalId, final String transactionExternalId, public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final String loanExternalId, final String transactionExternalId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction3(loanExternalId, transactionExternalId, request, "undo")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction3(loanExternalId,
transactionExternalId, request, "undo"));
} }
public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final Long loanId, final String transactionExternalId, public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final Long loanId, final String transactionExternalId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction1(loanId, transactionExternalId, request, "undo")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction1(loanId, transactionExternalId,
request, "undo"));
} }
public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final Long loanId, final Long transactionId, public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final Long loanId, final Long transactionId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction(loanId, transactionId, request, "chargeback")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction(loanId, transactionId, request,
"chargeback"));
} }
public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final String loanExternalId, final Long transactionId, public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final String loanExternalId, final Long transactionId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction2(loanExternalId, transactionId, request, "chargeback")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction2(loanExternalId, transactionId,
request, "chargeback"));
} }
public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final String loanExternalId, final String transactionExternalId, public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final String loanExternalId, final String transactionExternalId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction3(loanExternalId, transactionExternalId, request, "chargeback")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction3(loanExternalId,
transactionExternalId, request, "chargeback"));
} }
public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final Long loanId, final String transactionExternalId, public PostLoansLoanIdTransactionsResponse chargebackLoanTransaction(final Long loanId, final String transactionExternalId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction1(loanId, transactionExternalId, request, "chargeback")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction1(loanId, transactionExternalId,
request, "chargeback"));
} }
public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final String loanExternalId, final Long transactionId, public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final String loanExternalId, final Long transactionId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction2(loanExternalId, transactionId, request, "adjust")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction2(loanExternalId, transactionId,
request, "adjust"));
} }
public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final String loanExternalId, final String transactionExternalId, public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final String loanExternalId, final String transactionExternalId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction3(loanExternalId, transactionExternalId, request, "adjust")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction3(loanExternalId,
transactionExternalId, request, "adjust"));
} }
public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final Long loanId, final String transactionExternalId, public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final Long loanId, final String transactionExternalId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction1(loanId, transactionExternalId, request, "adjust")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction1(loanId, transactionExternalId,
request, "adjust"));
} }
public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final Long loanId, final Long transactionId, public PostLoansLoanIdTransactionsResponse adjustLoanTransaction(final Long loanId, final Long transactionId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction(loanId, transactionId, request, "adjust")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction(loanId, transactionId, request, "adjust"));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1209,11 +1248,12 @@ public class LoanTransactionHelper extends IntegrationTest {
public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final Long loanId, final Long transactionId, public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final Long loanId, final Long transactionId,
final PostLoansLoanIdTransactionsTransactionIdRequest request) { final PostLoansLoanIdTransactionsTransactionIdRequest request) {
return ok(fineract().loanTransactions.adjustLoanTransaction(loanId, transactionId, request, "undo")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction(loanId, transactionId, request, "undo"));
} }
public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final Long loanId, final Long transactionId, String date) { public PostLoansLoanIdTransactionsResponse reverseLoanTransaction(final Long loanId, final Long transactionId, String date) {
return ok(fineract().loanTransactions.adjustLoanTransaction(loanId, transactionId, return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.adjustLoanTransaction(loanId, transactionId,
new PostLoansLoanIdTransactionsTransactionIdRequest().dateFormat(DATE_FORMAT).transactionDate(date).transactionAmount(0.0) new PostLoansLoanIdTransactionsTransactionIdRequest().dateFormat(DATE_FORMAT).transactionDate(date).transactionAmount(0.0)
.locale("en"), .locale("en"),
"undo")); "undo"));
@@ -1243,11 +1283,11 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public PostLoansLoanIdChargesResponse addLoanCharge(final Long loanId, final PostLoansLoanIdChargesRequest request) { public PostLoansLoanIdChargesResponse addLoanCharge(final Long loanId, final PostLoansLoanIdChargesRequest request) {
return ok(fineract().loanCharges.executeLoanCharge(loanId, request, "")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge(loanId, request, ""));
} }
public PostLoansLoanIdChargesResponse addLoanCharge(final String loanExternalId, final PostLoansLoanIdChargesRequest request) { public PostLoansLoanIdChargesResponse addLoanCharge(final String loanExternalId, final PostLoansLoanIdChargesRequest request) {
return ok(fineract().loanCharges.executeLoanCharge1(loanExternalId, request, "")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge1(loanExternalId, request, ""));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1283,7 +1323,7 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public PostLoansLoanIdChargesResponse addChargesForLoan(final Long loanId, PostLoansLoanIdChargesRequest request) { public PostLoansLoanIdChargesResponse addChargesForLoan(final Long loanId, PostLoansLoanIdChargesRequest request) {
return ok(fineract().loanCharges.executeLoanCharge(loanId, request, null)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge(loanId, request, null));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1322,38 +1362,39 @@ public class LoanTransactionHelper extends IntegrationTest {
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final Long loanId, final Long loanChargeId, public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final Long loanId, final Long loanChargeId,
final PutLoansLoanIdChargesChargeIdRequest request) { final PutLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.updateLoanCharge(loanId, loanChargeId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.updateLoanCharge(loanId, loanChargeId, request));
} }
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final Long loanId, final String loanChargeExternalId, public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final Long loanId, final String loanChargeExternalId,
final PutLoansLoanIdChargesChargeIdRequest request) { final PutLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.updateLoanCharge1(loanId, loanChargeExternalId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.updateLoanCharge1(loanId, loanChargeExternalId, request));
} }
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final String loanExternalId, final Long loanChargeId, public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final String loanExternalId, final Long loanChargeId,
final PutLoansLoanIdChargesChargeIdRequest request) { final PutLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.updateLoanCharge2(loanExternalId, loanChargeId, request)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.updateLoanCharge2(loanExternalId, loanChargeId, request));
} }
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final String loanExternalId, final String loanChargeExternalId, public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final String loanExternalId, final String loanChargeExternalId,
final PutLoansLoanIdChargesChargeIdRequest request) { final PutLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.updateLoanCharge3(loanExternalId, loanChargeExternalId, request)); return Calls
.ok(FineractClientHelper.getFineractClient().loanCharges.updateLoanCharge3(loanExternalId, loanChargeExternalId, request));
} }
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final Long loanId, final Long loanChargeId) { public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final Long loanId, final Long loanChargeId) {
return ok(fineract().loanCharges.deleteLoanCharge(loanId, loanChargeId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.deleteLoanCharge(loanId, loanChargeId));
} }
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final Long loanId, final String loanChargeExternalId) { public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final Long loanId, final String loanChargeExternalId) {
return ok(fineract().loanCharges.deleteLoanCharge1(loanId, loanChargeExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.deleteLoanCharge1(loanId, loanChargeExternalId));
} }
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final String loanExternalId, final Long loanChargeId) { public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final String loanExternalId, final Long loanChargeId) {
return ok(fineract().loanCharges.deleteLoanCharge2(loanExternalId, loanChargeId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.deleteLoanCharge2(loanExternalId, loanChargeId));
} }
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final String loanExternalId, final String loanChargeExternalId) { public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final String loanExternalId, final String loanChargeExternalId) {
return ok(fineract().loanCharges.deleteLoanCharge3(loanExternalId, loanChargeExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.deleteLoanCharge3(loanExternalId, loanChargeExternalId));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1406,12 +1447,13 @@ public class LoanTransactionHelper extends IntegrationTest {
public PostLoansLoanIdChargesChargeIdResponse chargeAdjustment(final Long loanId, final Long chargeId, public PostLoansLoanIdChargesChargeIdResponse chargeAdjustment(final Long loanId, final Long chargeId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge2(loanId, chargeId, request, "adjustment")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge2(loanId, chargeId, request, "adjustment"));
} }
public PostLoansLoanIdChargesChargeIdResponse chargeAdjustment(final String loanExternalId, final String loanChargeExternalId, public PostLoansLoanIdChargesChargeIdResponse chargeAdjustment(final String loanExternalId, final String loanChargeExternalId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId, request, "adjustment")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId,
request, "adjustment"));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1440,17 +1482,19 @@ public class LoanTransactionHelper extends IntegrationTest {
public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final Long loanId, final Long loanChargeId, public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final Long loanId, final Long loanChargeId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge2(loanId, loanChargeId, request, "pay")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge2(loanId, loanChargeId, request, "pay"));
} }
public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final String loanExternalId, final Long loanChargeId, public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final String loanExternalId, final Long loanChargeId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge4(loanExternalId, loanChargeId, request, "pay")); return Calls
.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge4(loanExternalId, loanChargeId, request, "pay"));
} }
public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final String loanExternalId, final String loanChargeExternalId, public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final String loanExternalId, final String loanChargeExternalId,
final PostLoansLoanIdChargesChargeIdRequest request) { final PostLoansLoanIdChargesChargeIdRequest request) {
return ok(fineract().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId, request, "pay")); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId,
request, "pay"));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1475,19 +1519,19 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final Long loanId, final Long loanChargeId) { public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final Long loanId, final Long loanChargeId) {
return ok(fineract().loanCharges.retrieveLoanCharge(loanId, loanChargeId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveLoanCharge(loanId, loanChargeId));
} }
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final String loanExternalId, final Long loanChargeId) { public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final String loanExternalId, final Long loanChargeId) {
return ok(fineract().loanCharges.retrieveLoanCharge2(loanExternalId, loanChargeId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveLoanCharge2(loanExternalId, loanChargeId));
} }
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final Long loanId, final String loanChargeExternalId) { public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final Long loanId, final String loanChargeExternalId) {
return ok(fineract().loanCharges.retrieveLoanCharge1(loanId, loanChargeExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveLoanCharge1(loanId, loanChargeExternalId));
} }
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final String loanExternalId, final String loanChargeExternalId) { public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final String loanExternalId, final String loanChargeExternalId) {
return ok(fineract().loanCharges.retrieveLoanCharge3(loanExternalId, loanChargeExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loanCharges.retrieveLoanCharge3(loanExternalId, loanChargeExternalId));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -1501,31 +1545,33 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final Long loanId, final Long transactionId) { public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final Long loanId, final Long transactionId) {
return ok(fineract().loanTransactions.retrieveTransaction(loanId, transactionId, null)); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.retrieveTransaction(loanId, transactionId, null));
} }
public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final String loanExternalId, public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final String loanExternalId,
final Long transactionId) { final Long transactionId) {
return ok(fineract().loanTransactions.retrieveTransactionByLoanExternalIdAndTransactionId(loanExternalId, transactionId, null)); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions
.retrieveTransactionByLoanExternalIdAndTransactionId(loanExternalId, transactionId, null));
} }
public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final Long loanId, public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final Long loanId,
final String transactionExternalId) { final String transactionExternalId) {
return ok(fineract().loanTransactions.retrieveTransactionByTransactionExternalId(loanId, transactionExternalId, null)); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.retrieveTransactionByTransactionExternalId(loanId,
transactionExternalId, null));
} }
public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final String loanExternalId, public GetLoansLoanIdTransactionsTransactionIdResponse getLoanTransactionDetails(final String loanExternalId,
final String transactionExternalId) { final String transactionExternalId) {
return ok(fineract().loanTransactions.retrieveTransactionByLoanExternalIdAndTransactionExternalId(loanExternalId, return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions
transactionExternalId, null)); .retrieveTransactionByLoanExternalIdAndTransactionExternalId(loanExternalId, transactionExternalId, null));
} }
public GetLoansLoanIdResponse getLoanDetails(final Long loanId) { public GetLoansLoanIdResponse getLoanDetails(final Long loanId) {
return ok(fineract().loans.retrieveLoan(loanId, false, "all", null, null)); return Calls.ok(FineractClientHelper.getFineractClient().loans.retrieveLoan(loanId, false, "all", null, null));
} }
public GetLoansLoanIdResponse getLoanDetails(final String loanExternalId) { public GetLoansLoanIdResponse getLoanDetails(final String loanExternalId) {
return ok(fineract().loans.retrieveLoan1(loanExternalId, false, "all", null, null)); return Calls.ok(FineractClientHelper.getFineractClient().loans.retrieveLoan1(loanExternalId, false, "all", null, null));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -2686,141 +2732,151 @@ public class LoanTransactionHelper extends IntegrationTest {
public GetLoansLoanIdTransactionsTemplateResponse retrieveTransactionTemplate(Long loanId, String command, String dateFormat, public GetLoansLoanIdTransactionsTemplateResponse retrieveTransactionTemplate(Long loanId, String command, String dateFormat,
String transactionDate, String locale) { String transactionDate, String locale) {
return ok(fineract().loanTransactions.retrieveTransactionTemplate(loanId, command, dateFormat, transactionDate, locale)); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.retrieveTransactionTemplate(loanId, command, dateFormat,
transactionDate, locale));
} }
public GetLoansLoanIdTransactionsTemplateResponse retrieveTransactionTemplate(String loanExternalIdStr, String command, public GetLoansLoanIdTransactionsTemplateResponse retrieveTransactionTemplate(String loanExternalIdStr, String command,
String dateFormat, String transactionDate, String locale) { String dateFormat, String transactionDate, String locale) {
return ok( return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.retrieveTransactionTemplate1(loanExternalIdStr, command,
fineract().loanTransactions.retrieveTransactionTemplate1(loanExternalIdStr, command, dateFormat, transactionDate, locale)); dateFormat, transactionDate, locale));
} }
public GetLoansApprovalTemplateResponse getLoanApprovalTemplate(String loanExternalIdStr) { public GetLoansApprovalTemplateResponse getLoanApprovalTemplate(String loanExternalIdStr) {
return ok(fineract().loans.retrieveApprovalTemplate1(loanExternalIdStr, "approval")); return Calls.ok(FineractClientHelper.getFineractClient().loans.retrieveApprovalTemplate1(loanExternalIdStr, "approval"));
} }
public DeleteLoansLoanIdResponse deleteLoanApplication(String loanExternalId) { public DeleteLoansLoanIdResponse deleteLoanApplication(String loanExternalId) {
return ok(fineract().loans.deleteLoanApplication1(loanExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loans.deleteLoanApplication1(loanExternalId));
} }
public List<GetDelinquencyTagHistoryResponse> getLoanDelinquencyTags(String loanExternalId) { public List<GetDelinquencyTagHistoryResponse> getLoanDelinquencyTags(String loanExternalId) {
return ok(fineract().loans.getDelinquencyTagHistory1(loanExternalId)); return Calls.ok(FineractClientHelper.getFineractClient().loans.getDelinquencyTagHistory1(loanExternalId));
} }
public PostLoansResponse applyLoan(PostLoansRequest request) { public PostLoansResponse applyLoan(PostLoansRequest request) {
return ok(fineract().loans.calculateLoanScheduleOrSubmitLoanApplication(request, null)); return Calls.ok(FineractClientHelper.getFineractClient().loans.calculateLoanScheduleOrSubmitLoanApplication(request, null));
} }
public void applyLoanWithError(PostLoansRequest request, Integer httpStatus) { public void applyLoanWithError(PostLoansRequest request, Integer httpStatus) {
assertThat(fineract().loans.calculateLoanScheduleOrSubmitLoanApplication(request, null)).hasHttpStatus(httpStatus); CallFailedRuntimeException exception = assertThrows(CallFailedRuntimeException.class,
() -> Calls.ok(FineractClientHelper.getFineractClient().loans.calculateLoanScheduleOrSubmitLoanApplication(request, null)));
assertEquals(exception.getResponse().code(), httpStatus);
} }
public PostLoansLoanIdResponse approveLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse approveLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "approve")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "approve"));
} }
public PostLoansLoanIdResponse approveLoan(Long loanId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse approveLoan(Long loanId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions(loanId, request, "approve")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions(loanId, request, "approve"));
} }
public PostLoansLoanIdResponse rejectLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse rejectLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "reject")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "reject"));
} }
public PostLoansLoanIdResponse rejectLoan(Long loanId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse rejectLoan(Long loanId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions(loanId, request, "reject")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions(loanId, request, "reject"));
} }
public PostLoansLoanIdResponse withdrawnByApplicantLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse withdrawnByApplicantLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "withdrawnByApplicant")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "withdrawnByApplicant"));
} }
public PostLoansLoanIdResponse disburseLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse disburseLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "disburse")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "disburse"));
} }
public PostLoansLoanIdResponse disburseLoan(Long loanId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse disburseLoan(Long loanId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions(loanId, request, "disburse")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions(loanId, request, "disburse"));
} }
public PostLoansLoanIdResponse disburseToSavingsLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse disburseToSavingsLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "disburseToSavings")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "disburseToSavings"));
} }
public PostLoansLoanIdResponse undoApprovalLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse undoApprovalLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "undoapproval")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "undoapproval"));
} }
public PostLoansLoanIdResponse undoDisbursalLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse undoDisbursalLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "undodisbursal")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "undodisbursal"));
} }
public PostLoansLoanIdResponse undoDisbursalLoan(Long loanId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse undoDisbursalLoan(Long loanId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions(loanId, request, "undodisbursal")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions(loanId, request, "undodisbursal"));
} }
public PostLoansLoanIdResponse undoLastDisbursalLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse undoLastDisbursalLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "undolastdisbursal")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "undolastdisbursal"));
} }
public PostLoansLoanIdResponse undoLastDisbursalLoan(Long loanId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse undoLastDisbursalLoan(Long loanId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions(loanId, request, "undolastdisbursal")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions(loanId, request, "undolastdisbursal"));
} }
public PostLoansLoanIdResponse assignLoanOfficerLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse assignLoanOfficerLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "assignloanofficer")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "assignloanofficer"));
} }
public PostLoansLoanIdResponse unassignLoanOfficerLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse unassignLoanOfficerLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "unassignloanofficer")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "unassignloanofficer"));
} }
public PostLoansLoanIdResponse recoverGuaranteesLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse recoverGuaranteesLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "recoverGuarantees")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "recoverGuarantees"));
} }
public PostLoansLoanIdResponse assignDelinquencyLoan(String loanExternalId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse assignDelinquencyLoan(String loanExternalId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions1(loanExternalId, request, "assigndelinquency")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions1(loanExternalId, request, "assigndelinquency"));
} }
public PostLoansLoanIdTransactionsResponse closeRescheduledLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse closeRescheduledLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "close-rescheduled")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"close-rescheduled"));
} }
public PostLoansLoanIdTransactionsResponse closeRescheduledLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse closeRescheduledLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "close-rescheduled")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "close-rescheduled"));
} }
public PostLoansLoanIdTransactionsResponse closeLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse closeLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "close")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "close"));
} }
public PostLoansLoanIdTransactionsResponse closeLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse closeLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "close")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "close"));
} }
public PostLoansLoanIdTransactionsResponse forecloseLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse forecloseLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "foreclosure")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "foreclosure"));
} }
public PostLoansLoanIdTransactionsResponse forecloseLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse forecloseLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "foreclosure")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "foreclosure"));
} }
public PostLoansLoanIdTransactionsResponse chargeOffLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse chargeOffLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "charge-off")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "charge-off"));
} }
public PostLoansLoanIdTransactionsResponse chargeOffLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse chargeOffLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "charge-off")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "charge-off"));
} }
public PostLoansLoanIdTransactionsResponse undoChargeOffLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse undoChargeOffLoan(String loanExternalId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "undo-charge-off")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request,
"undo-charge-off"));
} }
public PostLoansLoanIdTransactionsResponse undoChargeOffLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse undoChargeOffLoan(Long loanId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "undo-charge-off")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "undo-charge-off"));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -2836,23 +2892,24 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public PutLoanProductsProductIdResponse updateLoanProduct(Long id, PutLoanProductsProductIdRequest requestModifyLoan) { public PutLoanProductsProductIdResponse updateLoanProduct(Long id, PutLoanProductsProductIdRequest requestModifyLoan) {
return ok(fineract().loanProducts.updateLoanProduct(id, requestModifyLoan)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.updateLoanProduct(id, requestModifyLoan));
} }
public PostLoanProductsResponse createLoanProduct(PostLoanProductsRequest request) { public PostLoanProductsResponse createLoanProduct(PostLoanProductsRequest request) {
return ok(fineract().loanProducts.createLoanProduct(request)); return Calls.ok(FineractClientHelper.getFineractClient().loanProducts.createLoanProduct(request));
} }
public PostLoansLoanIdTransactionsResponse makeLoanDownPayment(String loanExternalId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeLoanDownPayment(String loanExternalId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "downPayment")); return Calls.ok(
FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "downPayment"));
} }
public PostLoansLoanIdTransactionsResponse makeLoanDownPayment(Long loanId, PostLoansLoanIdTransactionsRequest request) { public PostLoansLoanIdTransactionsResponse makeLoanDownPayment(Long loanId, PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "downPayment")); return Calls.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction(loanId, request, "downPayment"));
} }
public List<AdvancedPaymentData> getAdvancedPaymentAllocationRules(final Integer loanId) { public List<AdvancedPaymentData> getAdvancedPaymentAllocationRules(final Integer loanId) {
return ok(fineract().legacy.getAdvancedPaymentAllocationRulesOfLoan(loanId.longValue())); return Calls.ok(FineractClientHelper.getFineractClient().legacy.getAdvancedPaymentAllocationRulesOfLoan(loanId.longValue()));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -2867,7 +2924,8 @@ public class LoanTransactionHelper extends IntegrationTest {
public PostLoansLoanIdTransactionsResponse writeOffLoanAccount(final String loanExternalId, public PostLoansLoanIdTransactionsResponse writeOffLoanAccount(final String loanExternalId,
final PostLoansLoanIdTransactionsRequest request) { final PostLoansLoanIdTransactionsRequest request) {
return ok(fineract().loanTransactions.executeLoanTransaction1(loanExternalId, request, "writeoff")); return Calls
.ok(FineractClientHelper.getFineractClient().loanTransactions.executeLoanTransaction1(loanExternalId, request, "writeoff"));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -2890,15 +2948,15 @@ public class LoanTransactionHelper extends IntegrationTest {
} }
public PostLoansLoanIdResponse undoApprovalForLoan(Long loanId, PostLoansLoanIdRequest request) { public PostLoansLoanIdResponse undoApprovalForLoan(Long loanId, PostLoansLoanIdRequest request) {
return ok(fineract().loans.stateTransitions(loanId, request, "undoapproval")); return Calls.ok(FineractClientHelper.getFineractClient().loans.stateTransitions(loanId, request, "undoapproval"));
} }
public PutLoansLoanIdResponse modifyApplicationForLoan(final Long loanId, final String command, final PutLoansLoanIdRequest request) { public PutLoansLoanIdResponse modifyApplicationForLoan(final Long loanId, final String command, final PutLoansLoanIdRequest request) {
return ok(fineract().loans.modifyLoanApplication(loanId, request, command)); return Calls.ok(FineractClientHelper.getFineractClient().loans.modifyLoanApplication(loanId, request, command));
} }
public PostLoansResponse calculateRepaymentScheduleForApplyLoan(PostLoansRequest request, String command) { public PostLoansResponse calculateRepaymentScheduleForApplyLoan(PostLoansRequest request, String command) {
return ok(fineract().loans.calculateLoanScheduleOrSubmitLoanApplication(request, command)); return Calls.ok(FineractClientHelper.getFineractClient().loans.calculateLoanScheduleOrSubmitLoanApplication(request, command));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -21,12 +21,13 @@ package org.apache.fineract.integrationtests.common.report;
import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.integrationtests.common.FineractClientHelper;
import retrofit2.Response; import retrofit2.Response;
public class ReportHelper extends IntegrationTest { public class ReportHelper {
public Response<ResponseBody> runReport(String reportName, Map<String, String> reportParameters) throws IOException { public Response<ResponseBody> runReport(String reportName, Map<String, String> reportParameters) throws IOException {
return fineract().reportsRun.runReportGetFile("Transaction Summary Report with Asset Owner", reportParameters, false).execute(); return FineractClientHelper.getFineractClient().reportsRun
.runReportGetFile("Transaction Summary Report with Asset Owner", reportParameters, false).execute();
} }
} }
@@ -45,9 +45,10 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import org.apache.fineract.client.models.PagedLocalRequestAdvancedQueryRequest; import org.apache.fineract.client.models.PagedLocalRequestAdvancedQueryRequest;
import org.apache.fineract.client.models.SavingsAccountTransactionsSearchResponse; import org.apache.fineract.client.models.SavingsAccountTransactionsSearchResponse;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.CommonConstants; import org.apache.fineract.integrationtests.common.CommonConstants;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
@@ -56,7 +57,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@SuppressWarnings({ "rawtypes" }) @SuppressWarnings({ "rawtypes" })
public class SavingsAccountHelper extends IntegrationTest { public class SavingsAccountHelper {
private final RequestSpecification requestSpec; private final RequestSpecification requestSpec;
private final ResponseSpecification responseSpec; private final ResponseSpecification responseSpec;
@@ -1043,7 +1044,8 @@ public class SavingsAccountHelper extends IntegrationTest {
} }
public Map<String, Object> querySavingsTransactions(Integer savingsId, PagedLocalRequestAdvancedQueryRequest request) { public Map<String, Object> querySavingsTransactions(Integer savingsId, PagedLocalRequestAdvancedQueryRequest request) {
String response = ok(fineract().savingsTransactions.advancedQuery1(savingsId.longValue(), request)); String response = Calls
.ok(FineractClientHelper.getFineractClient().savingsTransactions.advancedQuery1(savingsId.longValue(), request));
return JsonPath.from(response).get(""); return JsonPath.from(response).get("");
} }
@@ -30,10 +30,11 @@ import java.util.List;
import org.apache.fineract.client.models.GetCodesResponse; import org.apache.fineract.client.models.GetCodesResponse;
import org.apache.fineract.client.models.PostCodeValueDataResponse; import org.apache.fineract.client.models.PostCodeValueDataResponse;
import org.apache.fineract.client.models.PostCodeValuesDataRequest; import org.apache.fineract.client.models.PostCodeValuesDataRequest;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
public final class CodeHelper extends IntegrationTest { public final class CodeHelper {
private static final String COUNTRY_CODE_NAME = "COUNTRY"; private static final String COUNTRY_CODE_NAME = "COUNTRY";
private static final String STATE_CODE_NAME = "STATE"; private static final String STATE_CODE_NAME = "STATE";
@@ -381,10 +382,10 @@ public final class CodeHelper extends IntegrationTest {
} }
public PostCodeValueDataResponse createCodeValue(Long codeId, PostCodeValuesDataRequest request) { public PostCodeValueDataResponse createCodeValue(Long codeId, PostCodeValuesDataRequest request) {
return ok(fineract().codeValues.createCodeValue(codeId, request)); return Calls.ok(FineractClientHelper.getFineractClient().codeValues.createCodeValue(codeId, request));
} }
public List<GetCodesResponse> retrieveCodes() { public List<GetCodesResponse> retrieveCodes() {
return ok(fineract().codes.retrieveCodes()); return Calls.ok(FineractClientHelper.getFineractClient().codes.retrieveCodes());
} }
} }
@@ -42,13 +42,14 @@ import org.apache.fineract.client.models.PostDataTablesResponse;
import org.apache.fineract.client.models.PutDataTablesAppTableIdDatatableIdResponse; import org.apache.fineract.client.models.PutDataTablesAppTableIdDatatableIdResponse;
import org.apache.fineract.client.models.PutDataTablesRequest; import org.apache.fineract.client.models.PutDataTablesRequest;
import org.apache.fineract.client.models.PutDataTablesResponse; import org.apache.fineract.client.models.PutDataTablesResponse;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class DatatableHelper extends IntegrationTest { public class DatatableHelper {
private static final Gson GSON = new JSON().getGson(); private static final Gson GSON = new JSON().getGson();
@@ -100,7 +101,7 @@ public class DatatableHelper extends IntegrationTest {
} }
public PostDataTablesResponse createDatatable(PostDataTablesRequest request) { public PostDataTablesResponse createDatatable(PostDataTablesRequest request) {
return ok(fineract().dataTables.createDatatable(request)); return Calls.ok(FineractClientHelper.getFineractClient().dataTables.createDatatable(request));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -116,7 +117,7 @@ public class DatatableHelper extends IntegrationTest {
} }
public GetDataTablesResponse getDataTableDetails(final String dataTableName) { public GetDataTablesResponse getDataTableDetails(final String dataTableName) {
return ok(fineract().dataTables.getDatatable(dataTableName)); return Calls.ok(FineractClientHelper.getFineractClient().dataTables.getDatatable(dataTableName));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -134,12 +135,12 @@ public class DatatableHelper extends IntegrationTest {
// org.apache.fineract.client.models.PostLoansLoanIdRequest) // org.apache.fineract.client.models.PostLoansLoanIdRequest)
@Deprecated(forRemoval = true) @Deprecated(forRemoval = true)
public Map<String, Object> queryDatatable(String dataTableName, PagedLocalRequestAdvancedQueryData request) { public Map<String, Object> queryDatatable(String dataTableName, PagedLocalRequestAdvancedQueryData request) {
String response = ok(fineract().dataTables.advancedQuery(dataTableName, request)); String response = Calls.ok(FineractClientHelper.getFineractClient().dataTables.advancedQuery(dataTableName, request));
return JsonPath.from(response).get(""); return JsonPath.from(response).get("");
} }
public PutDataTablesResponse updateDatatable(String dataTableName, PutDataTablesRequest request) { public PutDataTablesResponse updateDatatable(String dataTableName, PutDataTablesRequest request) {
return ok(fineract().dataTables.updateDatatable(dataTableName, request)); return Calls.ok(FineractClientHelper.getFineractClient().dataTables.updateDatatable(dataTableName, request));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -332,7 +332,7 @@ public class DatatableIntegrationTest extends IntegrationTest {
for (String column : columnsToValidate) { for (String column : columnsToValidate) {
String valueFilter = column.equals(tst_tst_tst_cd_itsADropdown) ? createdCodeValueId.toString() String valueFilter = column.equals(tst_tst_tst_cd_itsADropdown) ? createdCodeValueId.toString()
: datatableEntryMap.get(column).toString(); : datatableEntryMap.get(column).toString();
String rows = Calls.ok(fineract().dataTables.queryValues(datatableName, column, valueFilter, column)); String rows = Calls.ok(fineractClient().dataTables.queryValues(datatableName, column, valueFilter, column));
JsonArray jsonArray = JsonParser.parseString(rows).getAsJsonArray(); JsonArray jsonArray = JsonParser.parseString(rows).getAsJsonArray();
if (itsADatetime.equals(column)) { if (itsADatetime.equals(column)) {
DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -24,11 +24,10 @@ import io.restassured.specification.ResponseSpecification;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
@Slf4j @Slf4j
public class InlineLoanCOBHelper extends IntegrationTest { public class InlineLoanCOBHelper {
private final RequestSpecification requestSpec; private final RequestSpecification requestSpec;
private final ResponseSpecification responseSpec; private final ResponseSpecification responseSpec;
@@ -25,12 +25,13 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.apache.fineract.client.models.GetTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse; import org.apache.fineract.client.models.GetTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse;
import org.apache.fineract.client.models.GetTellersTellerIdCashiersCashiersIdTransactionsResponse; import org.apache.fineract.client.models.GetTellersTellerIdCashiersCashiersIdTransactionsResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.client.util.Calls;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class CashierTransactionsHelper extends IntegrationTest { public class CashierTransactionsHelper {
private final ResponseSpecification responseSpecification; private final ResponseSpecification responseSpecification;
private final RequestSpecification requestSpecification; private final RequestSpecification requestSpecification;
@@ -50,13 +51,14 @@ public class CashierTransactionsHelper extends IntegrationTest {
public GetTellersTellerIdCashiersCashiersIdTransactionsResponse getTellersTellerIdCashiersCashiersIdTransactionsResponse(Long tellerId, public GetTellersTellerIdCashiersCashiersIdTransactionsResponse getTellersTellerIdCashiersCashiersIdTransactionsResponse(Long tellerId,
Long cashierId, String currencyCode, int offset, int limit, String orderBy, String sortOrder) { Long cashierId, String currencyCode, int offset, int limit, String orderBy, String sortOrder) {
return ok(fineract().tellers.getTransactionsForCashier(tellerId, cashierId, currencyCode, offset, limit, orderBy, sortOrder)); return Calls.ok(FineractClientHelper.getFineractClient().tellers.getTransactionsForCashier(tellerId, cashierId, currencyCode,
offset, limit, orderBy, sortOrder));
} }
public GetTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse getTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse( public GetTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse getTellersTellerIdCashiersCashiersIdSummaryAndTransactionsResponse(
Long tellerId, Long cashierId, String currencyCode, int offset, int limit, String orderBy, String sortOrder) { Long tellerId, Long cashierId, String currencyCode, int offset, int limit, String orderBy, String sortOrder) {
return ok(fineract().tellers.getTransactionsWithSummaryForCashier(tellerId, cashierId, currencyCode, offset, limit, orderBy, return Calls.ok(FineractClientHelper.getFineractClient().tellers.getTransactionsWithSummaryForCashier(tellerId, cashierId,
sortOrder)); currencyCode, offset, limit, orderBy, sortOrder));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!
@@ -28,12 +28,13 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.fineract.client.models.CommandProcessingResult; import org.apache.fineract.client.models.CommandProcessingResult;
import org.apache.fineract.client.models.PutPermissionsRequest; import org.apache.fineract.client.models.PutPermissionsRequest;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON; import org.apache.fineract.client.util.JSON;
import org.apache.fineract.integrationtests.client.IntegrationTest; import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils; import org.apache.fineract.integrationtests.common.Utils;
import org.apache.fineract.useradministration.data.PermissionData; import org.apache.fineract.useradministration.data.PermissionData;
public final class RolesHelper extends IntegrationTest { public final class RolesHelper {
public static final long SUPER_USER_ROLE_ID = 1L; // This is hardcoded into the initial Liquibase migration public static final long SUPER_USER_ROLE_ID = 1L; // This is hardcoded into the initial Liquibase migration
@@ -128,7 +129,7 @@ public final class RolesHelper extends IntegrationTest {
} }
public CommandProcessingResult updatePermissions(PutPermissionsRequest request) { public CommandProcessingResult updatePermissions(PutPermissionsRequest request) {
return ok(fineract().permissions.updatePermissionsDetails(request)); return Calls.ok(FineractClientHelper.getFineractClient().permissions.updatePermissionsDetails(request));
} }
// TODO: Rewrite to use fineract-client instead! // TODO: Rewrite to use fineract-client instead!