FINERACT-2009: Upgrade latest framework libs

This commit is contained in:
Aleksandar Vidakovic
2024-01-06 14:13:33 +01:00
committed by Aleksandar Vidakovic
parent 1f3bb34e13
commit e4944c44d6
193 changed files with 1567 additions and 1390 deletions
@@ -25,6 +25,7 @@ import com.zaxxer.hikari.HikariDataSource;
import java.util.List;
import javax.sql.DataSource;
import liquibase.change.custom.CustomTaskChange;
import okhttp3.OkHttpClient;
import org.apache.fineract.infrastructure.core.config.FineractProperties;
import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;
import org.apache.fineract.infrastructure.core.service.database.DatabaseIndependentQueryService;
@@ -188,4 +189,10 @@ public class TestConfiguration {
public JobOperator jobOperator() {
return mock(JobOperator.class, RETURNS_MOCKS);
}
@Primary
@Bean
public OkHttpClient okHttpClient() {
return mock(OkHttpClient.class, RETURNS_MOCKS);
}
}
@@ -26,10 +26,9 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import com.google.common.base.Splitter;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.cucumber.java8.En;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.TreeMap;
@@ -44,12 +43,12 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
import org.apache.fineract.infrastructure.core.domain.ActionContext;
import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import org.apache.fineract.mix.data.MixTaxonomyData;
import org.mockito.Mockito;
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.context.ApplicationContext;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class COBBusinessStepServiceStepDefinitions implements En {
private ApplicationContext applicationContext = mock(ApplicationContext.class);
@@ -68,10 +67,6 @@ public class COBBusinessStepServiceStepDefinitions implements En {
private AbstractAuditableCustom outputItem = mock(AbstractAuditableCustom.class);
private AbstractAuditableCustom resultItem;
private HashMap<MixTaxonomyData, BigDecimal> data = new HashMap<>();
private String result;
private Class clazz;
private String jobName;
private BatchBusinessStep batchBusinessStep = mock(BatchBusinessStep.class);
@@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.cucumber.java8.En;
import java.time.LocalDate;
import java.time.ZoneId;
@@ -41,6 +42,7 @@ import org.springframework.batch.core.scope.context.StepContext;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.security.core.context.SecurityContextHolder;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class InitialisationTaskletStepDefinitions implements En {
private static final LocalDate TODAY = LocalDate.now(ZoneId.systemDefault());
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.cucumber.java8.En;
import java.time.LocalDate;
import java.time.ZoneId;
@@ -50,6 +51,7 @@ import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.support.TransactionTemplate;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class ApplyLoanLockTaskletStepDefinitions implements En {
ArgumentCaptor<List> valueCaptor = ArgumentCaptor.forClass(List.class);
@@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.cucumber.java8.En;
import java.time.LocalDate;
import java.time.ZoneId;
@@ -36,6 +37,7 @@ import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.item.ExecutionContext;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class LoanItemProcessorStepDefinitions implements En {
private COBBusinessStepService cobBusinessStepService = mock(COBBusinessStepService.class);
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import com.google.common.base.Splitter;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.cucumber.java8.En;
import java.time.LocalDate;
import java.time.ZoneId;
@@ -47,6 +48,7 @@ import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.item.ExecutionContext;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class LoanItemReaderStepDefinitions implements En {
private LoanRepository loanRepository = mock(LoanRepository.class);
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.HashMap;
@@ -54,6 +55,7 @@ import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.context.ApplicationContext;
@ExtendWith(MockitoExtension.class)
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class COBBulkEventConfigurationTest {
@Mock
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.time.LocalDate;
@@ -52,6 +53,7 @@ import org.springframework.transaction.support.TransactionTemplate;
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
class InlineLoanCOBExecutorServiceImplTest {
@InjectMocks
@@ -20,10 +20,12 @@ package org.apache.fineract.commands.provider;
import static org.junit.jupiter.api.Assertions.assertThrows;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.cucumber.java8.En;
import org.apache.fineract.commands.exception.UnsupportedCommandException;
import org.springframework.beans.factory.annotation.Autowired;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class CommandHandlerExceptionStepDefinitions implements En {
@Autowired
@@ -21,6 +21,7 @@ package org.apache.fineract.commands.service;
import static org.apache.fineract.commands.domain.CommandProcessingResultType.UNDER_PROCESSING;
import static org.mockito.ArgumentMatchers.any;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.time.ZoneId;
import java.util.Optional;
import org.apache.fineract.batch.exception.ErrorInfo;
@@ -44,6 +45,7 @@ import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class CommandSourceServiceTest {
@Mock
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import jakarta.servlet.http.HttpServletRequest;
import java.util.Map;
import org.apache.fineract.commands.domain.CommandProcessingResultType;
@@ -48,6 +49,7 @@ import org.springframework.context.ApplicationContext;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class SynchronousCommandProcessingServiceTest {
@Mock
@@ -25,6 +25,7 @@ import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Optional;
@@ -55,6 +56,7 @@ import org.mockito.quality.Strictness;
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class BusinessDateWritePlatformServiceTest {
@InjectMocks
@@ -105,7 +105,7 @@ public class LiquibaseStepDefinitions implements En {
});
Then("The database migration did not do anything", () -> {
verify(databaseStateVerifier).isLiquibaseDisabled();
assertThat(verify(databaseStateVerifier).isLiquibaseDisabled()).isFalse();
verifyNoMoreInteractions(databaseStateVerifier);
verifyNoInteractions(tenantDetailsService, tenantStoreDataSource, liquibaseFactory, tenantDataSourceFactory);
});
@@ -20,18 +20,18 @@ package org.apache.fineract.infrastructure.core;
import static org.junit.jupiter.api.Assertions.assertThrows;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.cucumber.java8.En;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.fineract.infrastructure.core.exception.MultiException;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class MultiExceptionStepDefinitions implements En {
private List<Throwable> exceptions = new ArrayList<>();
private MultiException multiException;
public MultiExceptionStepDefinitions() {
Given("/^A multi exception with exceptions (.*) and (.*)$/", (String exception1, String exception2) -> {
if (!StringUtils.isBlank(exception1)) {
@@ -32,8 +32,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.gson.JsonParser;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.ZoneId;
@@ -71,25 +73,26 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class ThitsaWorksCreditBureauIntegrationWritePlatformServiceImplTest {
@Spy
private FromJsonHelper fromJsonHelper = new FromJsonHelper();
@Spy
private CreditBureauTokenCommandFromApiJsonDeserializer fromApiJsonDeserializer = new CreditBureauTokenCommandFromApiJsonDeserializer(
fromJsonHelper);
@Mock
private OkHttpClient okHttpClient;
@Mock
private CreditBureauConfigurationRepositoryWrapper configurationRepositoryWrapper;
@Mock
private TokenRepositoryWrapper tokenRepositoryWrapper;
@Mock
private PlatformSecurityContext platformSecurityContext;
@Mock
private TokenRepositoryWrapper tokenRepositoryWrapper;
private CreditBureauTokenCommandFromApiJsonDeserializer fromApiJsonDeserializer;
private final ObjectMapper mapper = new ObjectMapper();
@@ -261,7 +264,7 @@ public class ThitsaWorksCreditBureauIntegrationWritePlatformServiceImplTest {
String jsonResponse = createResponseObjectArrayData(() -> "UPLOADED", data -> data);
Path temp = Files.createTempFile("upload_test" + System.currentTimeMillis(), ".data");
Files.writeString(temp, "test");
Files.writeString(temp, "test", StandardCharsets.UTF_8);
mockOkHttpCall(request -> {
assertEquals(request.header("Authorization"), "Bearer AccessToken");
@@ -474,7 +477,7 @@ public class ThitsaWorksCreditBureauIntegrationWritePlatformServiceImplTest {
String jsonResponse = createResponseObjectArrayData(() -> "ADD_CREDIT_RESPONSE", data -> data);
Path temp = Files.createTempFile("add_credit_report" + System.currentTimeMillis(), ".data");
Files.writeString(temp, "test");
Files.writeString(temp, "test", StandardCharsets.UTF_8);
mockOkHttpCall(request -> {
if (request.url().host().equals("addcredit.report.url")) {
@@ -29,6 +29,7 @@ import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.when;
import com.google.gson.JsonObject;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.List;
import java.util.stream.Stream;
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
@@ -49,6 +50,7 @@ import org.mockito.MockitoAnnotations;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class ReadWriteNonCoreDataServiceImplTest {
@Mock
@@ -20,6 +20,7 @@ package org.apache.fineract.infrastructure.event.external.producer.kafka;
import static org.mockito.Mockito.times;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
@@ -36,6 +37,7 @@ import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.SendResult;
@ExtendWith(MockitoExtension.class)
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
class KafkaExternalEventProducerTest {
public static final String TOPIC_NAME = "unit-test";
@@ -23,6 +23,7 @@ import static org.hamcrest.Matchers.equalTo;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import jakarta.persistence.EntityManager;
import org.apache.fineract.infrastructure.event.external.exception.ExternalEventConfigurationNotFoundException;
import org.apache.fineract.infrastructure.event.external.repository.CustomExternalEventConfigurationRepositoryImpl;
@@ -35,6 +36,7 @@ import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
@ExtendWith(MockitoExtension.class)
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class CustomExternalEventConfigurationRepositoryImplTest {
@Mock
@@ -53,7 +53,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
import org.apache.fineract.portfolio.loanaccount.domain.LoanSummary;
import org.apache.fineract.portfolio.loanaccount.service.LoanCalculateRepaymentPastDueService;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -153,7 +152,6 @@ public class LoanRepaymentBusinessEventSerializerTest {
LocalDate loanInstallmentRepaymentDueDate = DateUtils.getBusinessLocalDate().plusDays(1);
Loan loanForProcessing = Mockito.mock(Loan.class);
LoanProduct loanProduct = Mockito.mock(LoanProduct.class);
LoanSummary loanSummary = Mockito.mock(LoanSummary.class);
MonetaryCurrency loanCurrency = Mockito.mock(MonetaryCurrency.class);
@@ -53,7 +53,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.GLIMAccountInfoRepositor
import org.apache.fineract.portfolio.loanaccount.domain.GroupLoanIndividualMonitoringAccount;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository;
import org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest;
import org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequestRepository;
import org.apache.fineract.useradministration.domain.AppUser;
import org.apache.http.HttpStatus;
@@ -254,7 +253,6 @@ class LoanCOBApiFilterTest {
given(loanAccountLockService.isLoanHardLocked(2L)).willReturn(false);
given(fineractProperties.getQuery()).willReturn(fineractQueryProperties);
given(fineractQueryProperties.getInClauseParameterSizeLimit()).willReturn(65000);
LoanRescheduleRequest rescheduleRequest = mock(LoanRescheduleRequest.class);
given(loanRescheduleRequestRepository.getLoanIdByRescheduleRequestId(resourceId)).willReturn(Optional.of(2L));
given(context.authenticatedUser()).willReturn(appUser);
@@ -18,10 +18,12 @@
*/
package org.apache.fineract.infrastructure.security.utils;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Arrays;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
public class SQLInjectionValidatorTest {
private static final String[] DDL_COMMANDS = { "create", "drop", "alter", "truncate", "comment", "sleep" };
@@ -53,16 +53,16 @@ import org.mockito.junit.jupiter.MockitoExtension;
@ExtendWith(MockitoExtension.class)
public class EnricherTest {
private final LocalDate actualDate = LocalDate.now(ZoneId.systemDefault());
private static final LocalDate ACTUAL_DATE = LocalDate.now(ZoneId.systemDefault());
private final String purchasePriceRatio = "100.123";
private final String settlementDate = DateTimeFormatter.ISO_LOCAL_DATE.format(LocalDate.now(ZoneId.systemDefault()));
private static final String PURCHASE_PRICE_RATIO = "100.123";
private static final String SETTLEMENT_DATE = DateTimeFormatter.ISO_LOCAL_DATE.format(LocalDate.now(ZoneId.systemDefault()));
@BeforeEach
public void setUp() {
ThreadLocalContextUtil.setTenant(new FineractPlatformTenant(1L, "default", "Default", "Asia/Kolkata", null));
ThreadLocalContextUtil.setActionContext(ActionContext.DEFAULT);
ThreadLocalContextUtil.setBusinessDates(new HashMap<>(Map.of(BusinessDateType.BUSINESS_DATE, actualDate)));
ThreadLocalContextUtil.setBusinessDates(new HashMap<>(Map.of(BusinessDateType.BUSINESS_DATE, ACTUAL_DATE)));
}
@@ -73,8 +73,8 @@ public class EnricherTest {
doAnswer(a -> {
LoanAccountDataV1 data = a.getArgument(0, LoanAccountDataV1.class);
data.setExternalOwnerId("1");
data.setSettlementDate(settlementDate);
data.setPurchasePriceRatio(purchasePriceRatio);
data.setSettlementDate(SETTLEMENT_DATE);
data.setPurchasePriceRatio(PURCHASE_PRICE_RATIO);
return null;
}).when(loanAccountDataV1Enricher).enrich(any(LoanAccountDataV1.class));
@@ -86,8 +86,8 @@ public class EnricherTest {
verify(loanAccountDataV1Enricher, times(1)).enrich(any(LoanAccountDataV1.class));
assertEquals("1", original.getExternalOwnerId());
assertEquals(settlementDate, original.getSettlementDate());
assertEquals(purchasePriceRatio, original.getPurchasePriceRatio());
assertEquals(SETTLEMENT_DATE, original.getSettlementDate());
assertEquals(PURCHASE_PRICE_RATIO, original.getPurchasePriceRatio());
}
@Test
@@ -143,8 +143,8 @@ public class EnricherTest {
doAnswer(a -> {
LoanAccountDataV1 data = a.getArgument(0, LoanAccountDataV1.class);
data.setExternalOwnerId("1");
data.setSettlementDate(settlementDate);
data.setPurchasePriceRatio(purchasePriceRatio);
data.setSettlementDate(SETTLEMENT_DATE);
data.setPurchasePriceRatio(PURCHASE_PRICE_RATIO);
return null;
}).when(loanAccountDataV1Enricher).enrich(any(LoanAccountDataV1.class));
@@ -174,8 +174,8 @@ public class EnricherTest {
verify(loanTransactionDataV1Enricher, times(1)).isDataTypeSupported(any());
assertEquals("1", data.getExternalOwnerId());
assertEquals(settlementDate, data.getSettlementDate());
assertEquals(purchasePriceRatio, data.getPurchasePriceRatio());
assertEquals(SETTLEMENT_DATE, data.getSettlementDate());
assertEquals(PURCHASE_PRICE_RATIO, data.getPurchasePriceRatio());
}
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.verify;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Optional;
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAdjustTransactionBusinessEvent;
import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
@@ -37,6 +38,7 @@ import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
@ExtendWith(MockitoExtension.class)
@SuppressFBWarnings(value = "RV_EXCEPTION_NOT_THROWN", justification = "False positive")
class ReplayedTransactionBusinessEventServiceIntegrationTest {
@Mock