FINERACT-1724: Improve reliability of integration tests

This commit is contained in:
Adam Saghy
2023-04-12 17:43:14 +02:00
parent ace0786024
commit fb6e78fa2b
66 changed files with 1934 additions and 1556 deletions
@@ -24,6 +24,7 @@ import static org.apache.fineract.infrastructure.core.domain.AuditableFieldsCons
import static org.apache.fineract.infrastructure.core.domain.AuditableFieldsConstants.LAST_MODIFIED_DATE;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -55,7 +56,8 @@ public class InternalLoanInformationApiResource implements InitializingBean {
private final LoanRepositoryWrapper loanRepositoryWrapper;
private final LoanTransactionRepository loanTransactionRepository;
private final ToApiJsonSerializer<Map> toApiJsonSerializer;
private final ToApiJsonSerializer<Map> toApiJsonSerializerForMap;
private final ToApiJsonSerializer<List> toApiJsonSerializerForList;
private final ApiRequestParameterHelper apiRequestParameterHelper;
@Override
@@ -86,7 +88,7 @@ public class InternalLoanInformationApiResource implements InitializingBean {
Map.of(CREATED_BY, loan.getCreatedBy().orElse(null), CREATED_DATE, loan.getCreatedDate().orElse(null), LAST_MODIFIED_BY,
loan.getLastModifiedBy().orElse(null), LAST_MODIFIED_DATE, loan.getLastModifiedDate().orElse(null)));
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, auditFields);
return this.toApiJsonSerializerForMap.serialize(settings, auditFields);
}
@GET
@@ -106,6 +108,22 @@ public class InternalLoanInformationApiResource implements InitializingBean {
transaction.getCreatedDate().orElse(null), LAST_MODIFIED_BY, transaction.getLastModifiedBy().orElse(null),
LAST_MODIFIED_DATE, transaction.getLastModifiedDate().orElse(null)));
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, auditFields);
return this.toApiJsonSerializerForMap.serialize(settings, auditFields);
}
@GET
@Path("status/{statusId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public String getLoansByStatus(@Context final UriInfo uriInfo, @PathParam("statusId") Integer statusId) {
log.warn("------------------------------------------------------------");
log.warn(" ");
log.warn("Fetching loans by status {}", statusId);
log.warn(" ");
log.warn("------------------------------------------------------------");
final List<Long> loanIds = loanRepositoryWrapper.findLoanIdsByStatusId(statusId);
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializerForList.serialize(settings, loanIds);
}
}
@@ -421,7 +421,7 @@ final class LoansApiResourceSwagger {
@Schema(example = "1")
public Integer id;
@Schema(example = "000000001")
public Long accountNo;
public String accountNo;
}
static final class GetLoansLoanIdOverdueCharges {
@@ -993,7 +993,7 @@ final class LoansApiResourceSwagger {
@Schema(example = "95174ff9-1a75-4d72-a413-6f9b1cb988b7")
public String externalId;
@Schema(example = "000000001")
public Long accountNo;
public String accountNo;
public GetLoansLoanIdStatus status;
@Schema(example = "false")
public boolean disallowExpectedDisbursements;
@@ -98,6 +98,8 @@ public interface LoanRepository extends JpaRepository<Loan, Long>, JpaSpecificat
String FIND_ALL_STAYED_LOCKED_BY_COB_BUSINESS_DATE = "select loan.id, loan.externalId, loan.accountNumber from LoanAccountLock lock left join Loan loan on lock.loanId = loan.id where lock.lockPlacedOnCobBusinessDate = :cobBusinessDate";
String FIND_ALL_LOAN_IDS_BY_STATUS_ID = "SELECT loan.id FROM Loan loan WHERE loan.loanStatus = :statusId";
@Query(FIND_GROUP_LOANS_DISBURSED_AFTER)
List<Loan> getGroupLoansDisbursedAfter(@Param("disbursementDate") LocalDate disbursementDate, @Param("groupId") Long groupId,
@Param("loanType") Integer loanType);
@@ -215,4 +217,6 @@ public interface LoanRepository extends JpaRepository<Loan, Long>, JpaSpecificat
@Query(FIND_ALL_STAYED_LOCKED_BY_COB_BUSINESS_DATE)
List<LoanIdAndExternalIdAndAccountNo> findAllStayedLockedByCobBusinessDate(@Param("cobBusinessDate") LocalDate cobBusinessDate);
@Query(FIND_ALL_LOAN_IDS_BY_STATUS_ID)
List<Long> findLoanIdByStatusId(@Param("statusId") Integer statusId);
}
@@ -258,4 +258,8 @@ public class LoanRepositoryWrapper {
public Long findIdByExternalId(ExternalId externalId) {
return this.repository.findIdByExternalId(externalId);
}
public List<Long> findLoanIdsByStatusId(Integer statusId) {
return repository.findLoanIdByStatusId(statusId);
}
}