FINERACT-2169: Provision category definition api refactor;

This commit is contained in:
viktorpavlenko
2025-03-05 22:39:49 +00:00
committed by Adam Saghy
parent bd66037910
commit f8e5d6c9fc
7 changed files with 50 additions and 86 deletions
@@ -18,10 +18,10 @@
*/ */
package org.apache.fineract.organisation.provisioning.service; package org.apache.fineract.organisation.provisioning.service;
import java.util.Collection; import java.util.List;
import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData; import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData;
public interface ProvisioningCategoryReadPlatformService { public interface ProvisioningCategoryReadPlatformService {
Collection<ProvisioningCategoryData> retrieveAllProvisionCategories(); List<ProvisioningCategoryData> retrieveAllProvisionCategories();
} }
@@ -27,18 +27,13 @@ import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path; import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam; import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces; import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.UriInfo; import java.util.List;
import java.util.Collection;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.domain.CommandWrapper;
import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.CommandWrapperBuilder;
import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService; import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData; import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData;
import org.apache.fineract.organisation.provisioning.service.ProvisioningCategoryReadPlatformService; import org.apache.fineract.organisation.provisioning.service.ProvisioningCategoryReadPlatformService;
@@ -52,52 +47,44 @@ public class ProvisioningCategoryApiResource {
private final PlatformSecurityContext platformSecurityContext; private final PlatformSecurityContext platformSecurityContext;
private final ProvisioningCategoryReadPlatformService provisioningCategoryReadPlatformService; private final ProvisioningCategoryReadPlatformService provisioningCategoryReadPlatformService;
private final ApiRequestParameterHelper apiRequestParameterHelper;
private final DefaultToApiJsonSerializer<ProvisioningCategoryData> toApiJsonSerializer;
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService; private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
@GET @GET
@Consumes({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
public String retrieveAll(@Context final UriInfo uriInfo) { public List<ProvisioningCategoryData> retrieveAll() {
this.platformSecurityContext.authenticatedUser(); platformSecurityContext.authenticatedUser();
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); return provisioningCategoryReadPlatformService.retrieveAllProvisionCategories();
Collection<ProvisioningCategoryData> provisionCategoriesSet = null;
provisionCategoriesSet = this.provisioningCategoryReadPlatformService.retrieveAllProvisionCategories();
return this.toApiJsonSerializer.serialize(settings, provisionCategoriesSet);
} }
@POST @POST
@Consumes({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
public String createProvisioningCategory(final String apiRequestBodyAsJson) { public CommandProcessingResult createProvisioningCategory(final String apiRequestBodyAsJson) {
CommandWrapper commandWrapper = null; platformSecurityContext.authenticatedUser();
this.platformSecurityContext.authenticatedUser(); CommandWrapper commandWrapper = new CommandWrapperBuilder().createProvisioningCategory().withJson(apiRequestBodyAsJson).build();
commandWrapper = new CommandWrapperBuilder().createProvisioningCategory().withJson(apiRequestBodyAsJson).build(); return commandsSourceWritePlatformService.logCommandSource(commandWrapper);
final CommandProcessingResult commandProcessingResult = this.commandsSourceWritePlatformService.logCommandSource(commandWrapper);
return this.toApiJsonSerializer.serialize(commandProcessingResult);
} }
@PUT @PUT
@Path("{categoryId}") @Path("{categoryId}")
@Consumes({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
public String updateProvisioningCategory(@PathParam("categoryId") final Long categoryId, final String apiRequestBodyAsJson) { public CommandProcessingResult updateProvisioningCategory(@PathParam("categoryId") final Long categoryId,
this.platformSecurityContext.authenticatedUser(); final String apiRequestBodyAsJson) {
platformSecurityContext.authenticatedUser();
final CommandWrapper commandRequest = new CommandWrapperBuilder().updateProvisioningCategory(categoryId) final CommandWrapper commandRequest = new CommandWrapperBuilder().updateProvisioningCategory(categoryId)
.withJson(apiRequestBodyAsJson).build(); .withJson(apiRequestBodyAsJson).build();
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); return commandsSourceWritePlatformService.logCommandSource(commandRequest);
return this.toApiJsonSerializer.serialize(result);
} }
@DELETE @DELETE
@Path("{categoryId}") @Path("{categoryId}")
@Consumes({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
public String deleteProvisioningCategory(@PathParam("categoryId") final Long categoryId) { public CommandProcessingResult deleteProvisioningCategory(@PathParam("categoryId") final Long categoryId) {
this.platformSecurityContext.authenticatedUser(); platformSecurityContext.authenticatedUser();
final CommandWrapper commandRequest = new CommandWrapperBuilder().deleteProvisioningCategory(categoryId).build(); final CommandWrapper commandRequest = new CommandWrapperBuilder().deleteProvisioningCategory(categoryId).build();
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); return commandsSourceWritePlatformService.logCommandSource(commandRequest);
return this.toApiJsonSerializer.serialize(result);
} }
} }
@@ -38,10 +38,7 @@ import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context; import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.UriInfo; import jakarta.ws.rs.core.UriInfo;
import java.util.Arrays; import java.util.List;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.domain.CommandWrapper;
import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.CommandWrapperBuilder;
@@ -51,7 +48,6 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings; import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer; import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.organisation.provisioning.constants.ProvisioningCriteriaConstants;
import org.apache.fineract.organisation.provisioning.data.ProvisioningCriteriaData; import org.apache.fineract.organisation.provisioning.data.ProvisioningCriteriaData;
import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteriaReadPlatformService; import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteriaReadPlatformService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -68,27 +64,13 @@ public class ProvisioningCriteriaApiResource {
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService; private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
private final DefaultToApiJsonSerializer<ProvisioningCriteriaData> toApiJsonSerializer; private final DefaultToApiJsonSerializer<ProvisioningCriteriaData> toApiJsonSerializer;
private static final Set<String> PROVISIONING_CRITERIA_TEMPLATE_PARAMETER = new HashSet<>(
Arrays.asList(ProvisioningCriteriaConstants.DEFINITIONS_PARAM, ProvisioningCriteriaConstants.LOANPRODUCTS_PARAM,
ProvisioningCriteriaConstants.GLACCOUNTS_PARAM));
private static final Set<String> PROVISIONING_CRITERIA_PARAMETERS = new HashSet<>(
Arrays.asList(ProvisioningCriteriaConstants.CRITERIA_PARAM, ProvisioningCriteriaConstants.LOANPRODUCTS_PARAM,
ProvisioningCriteriaConstants.DEFINITIONS_PARAM));
private static final Set<String> ALL_PROVISIONING_CRITERIA_PARAMETERS = new HashSet<>(
Arrays.asList(ProvisioningCriteriaConstants.CRITERIA_ID_PARAM, ProvisioningCriteriaConstants.CRITERIA_NAME_PARAM,
ProvisioningCriteriaConstants.CREATED_BY_PARAM));
@GET @GET
@Path("template") @Path("template")
@Consumes({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
public String retrieveTemplate(@Context final UriInfo uriInfo) { public ProvisioningCriteriaData retrieveTemplate() {
this.platformSecurityContext.authenticatedUser(); platformSecurityContext.authenticatedUser();
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); return provisioningCriteriaReadPlatformService.retrievePrivisiongCriteriaTemplate();
ProvisioningCriteriaData data = this.provisioningCriteriaReadPlatformService.retrievePrivisiongCriteriaTemplate();
return this.toApiJsonSerializer.serialize(settings, data, PROVISIONING_CRITERIA_TEMPLATE_PARAMETER);
} }
@GET @GET
@@ -98,15 +80,15 @@ public class ProvisioningCriteriaApiResource {
@Operation(summary = "Retrieves a Provisioning Criteria", description = "Retrieves a Provisioning Criteria") @Operation(summary = "Retrieves a Provisioning Criteria", description = "Retrieves a Provisioning Criteria")
@ApiResponses({ @ApiResponses({
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.GetProvisioningCriteriaCriteriaIdResponse.class))) }) @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.GetProvisioningCriteriaCriteriaIdResponse.class))) })
public String retrieveProvisioningCriteria(@PathParam("criteriaId") @Parameter(description = "criteriaId") final Long criteriaId, public ProvisioningCriteriaData retrieveProvisioningCriteria(
@Context final UriInfo uriInfo) { @PathParam("criteriaId") @Parameter(description = "criteriaId") final Long criteriaId, @Context final UriInfo uriInfo) {
platformSecurityContext.authenticatedUser(); platformSecurityContext.authenticatedUser();
ProvisioningCriteriaData criteria = this.provisioningCriteriaReadPlatformService.retrieveProvisioningCriteria(criteriaId); ProvisioningCriteriaData criteria = provisioningCriteriaReadPlatformService.retrieveProvisioningCriteria(criteriaId);
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
if (settings.isTemplate()) { if (settings.isTemplate()) {
criteria = this.provisioningCriteriaReadPlatformService.retrievePrivisiongCriteriaTemplate(criteria); criteria = provisioningCriteriaReadPlatformService.retrievePrivisiongCriteriaTemplate(criteria);
} }
return this.toApiJsonSerializer.serialize(settings, criteria, PROVISIONING_CRITERIA_PARAMETERS); return criteria;
} }
@GET @GET
@@ -115,11 +97,9 @@ public class ProvisioningCriteriaApiResource {
@Operation(summary = "Retrieves all created Provisioning Criterias", description = "Retrieves all created Provisioning Criterias") @Operation(summary = "Retrieves all created Provisioning Criterias", description = "Retrieves all created Provisioning Criterias")
@ApiResponses({ @ApiResponses({
@ApiResponse(responseCode = "200", description = "OK", content = @Content(array = @ArraySchema(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.GetProvisioningCriteriaResponse.class)))) }) @ApiResponse(responseCode = "200", description = "OK", content = @Content(array = @ArraySchema(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.GetProvisioningCriteriaResponse.class)))) })
public String retrieveAllProvisioningCriterias(@Context final UriInfo uriInfo) { public List<ProvisioningCriteriaData> retrieveAllProvisioningCriterias() {
platformSecurityContext.authenticatedUser(); platformSecurityContext.authenticatedUser();
Collection<ProvisioningCriteriaData> data = this.provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias(); return provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias();
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, data, ALL_PROVISIONING_CRITERIA_PARAMETERS);
} }
@POST @POST
@@ -130,12 +110,10 @@ public class ProvisioningCriteriaApiResource {
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PostProvisioningCriteriaRequest.class))) @RequestBody(required = true, content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PostProvisioningCriteriaRequest.class)))
@ApiResponses({ @ApiResponses({
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PostProvisioningCriteriaResponse.class))) }) @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PostProvisioningCriteriaResponse.class))) })
public String createProvisioningCriteria(@Parameter(hidden = true) final String apiRequestBodyAsJson) { public CommandProcessingResult createProvisioningCriteria(@Parameter(hidden = true) final String apiRequestBodyAsJson) {
CommandWrapper commandWrapper = null; platformSecurityContext.authenticatedUser();
this.platformSecurityContext.authenticatedUser(); CommandWrapper commandWrapper = new CommandWrapperBuilder().createProvisioningCriteria().withJson(apiRequestBodyAsJson).build();
commandWrapper = new CommandWrapperBuilder().createProvisioningCriteria().withJson(apiRequestBodyAsJson).build(); return commandsSourceWritePlatformService.logCommandSource(commandWrapper);
final CommandProcessingResult commandProcessingResult = this.commandsSourceWritePlatformService.logCommandSource(commandWrapper);
return this.toApiJsonSerializer.serialize(commandProcessingResult);
} }
@PUT @PUT
@@ -147,13 +125,13 @@ public class ProvisioningCriteriaApiResource {
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PutProvisioningCriteriaRequest.class))) @RequestBody(required = true, content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PutProvisioningCriteriaRequest.class)))
@ApiResponses({ @ApiResponses({
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PutProvisioningCriteriaResponse.class))) }) @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.PutProvisioningCriteriaResponse.class))) })
public String updateProvisioningCriteria(@PathParam("criteriaId") @Parameter(description = "criteriaId") final Long criteriaId, public CommandProcessingResult updateProvisioningCriteria(
@PathParam("criteriaId") @Parameter(description = "criteriaId") final Long criteriaId,
@Parameter(hidden = true) final String apiRequestBodyAsJson) { @Parameter(hidden = true) final String apiRequestBodyAsJson) {
this.platformSecurityContext.authenticatedUser(); platformSecurityContext.authenticatedUser();
final CommandWrapper commandRequest = new CommandWrapperBuilder().updateProvisioningCriteria(criteriaId) final CommandWrapper commandRequest = new CommandWrapperBuilder().updateProvisioningCriteria(criteriaId)
.withJson(apiRequestBodyAsJson).build(); .withJson(apiRequestBodyAsJson).build();
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); return commandsSourceWritePlatformService.logCommandSource(commandRequest);
return this.toApiJsonSerializer.serialize(result);
} }
@DELETE @DELETE
@@ -163,10 +141,10 @@ public class ProvisioningCriteriaApiResource {
@Operation(summary = "Deletes Provisioning Criteria", description = "Deletes Provisioning Criteria") @Operation(summary = "Deletes Provisioning Criteria", description = "Deletes Provisioning Criteria")
@ApiResponses({ @ApiResponses({
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.DeleteProvisioningCriteriaResponse.class))) }) @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ProvisioningCriteriaApiResourceSwagger.DeleteProvisioningCriteriaResponse.class))) })
public String deleteProvisioningCriteria(@PathParam("criteriaId") @Parameter(description = "criteriaId") final Long criteriaId) { public CommandProcessingResult deleteProvisioningCriteria(
this.platformSecurityContext.authenticatedUser(); @PathParam("criteriaId") @Parameter(description = "criteriaId") final Long criteriaId) {
platformSecurityContext.authenticatedUser();
final CommandWrapper commandRequest = new CommandWrapperBuilder().deleteProvisioningCriteria(criteriaId).build(); final CommandWrapper commandRequest = new CommandWrapperBuilder().deleteProvisioningCriteria(criteriaId).build();
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); return commandsSourceWritePlatformService.logCommandSource(commandRequest);
return this.toApiJsonSerializer.serialize(result);
} }
} }
@@ -20,7 +20,7 @@ package org.apache.fineract.organisation.provisioning.service;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Collection; import java.util.List;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport; import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData; import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData;
@@ -34,7 +34,7 @@ public class ProvisioningCategoryReadPlatformServiceImpl implements Provisioning
private final ProvisioningCategoryRowMapper provisionCategoryRowMapper = new ProvisioningCategoryRowMapper(); private final ProvisioningCategoryRowMapper provisionCategoryRowMapper = new ProvisioningCategoryRowMapper();
@Override @Override
public Collection<ProvisioningCategoryData> retrieveAllProvisionCategories() { public List<ProvisioningCategoryData> retrieveAllProvisionCategories() {
// User is already authenticated by API. So we no need to check again // User is already authenticated by API. So we no need to check again
// here // here
final String sql = "select " + this.provisionCategoryRowMapper.schema() + " from m_provision_category pc order by pc.id"; final String sql = "select " + this.provisionCategoryRowMapper.schema() + " from m_provision_category pc order by pc.id";
@@ -18,7 +18,7 @@
*/ */
package org.apache.fineract.organisation.provisioning.service; package org.apache.fineract.organisation.provisioning.service;
import java.util.Collection; import java.util.List;
import org.apache.fineract.organisation.provisioning.data.ProvisioningCriteriaData; import org.apache.fineract.organisation.provisioning.data.ProvisioningCriteriaData;
public interface ProvisioningCriteriaReadPlatformService { public interface ProvisioningCriteriaReadPlatformService {
@@ -27,7 +27,7 @@ public interface ProvisioningCriteriaReadPlatformService {
ProvisioningCriteriaData retrieveProvisioningCriteria(Long criteriaId); ProvisioningCriteriaData retrieveProvisioningCriteria(Long criteriaId);
Collection<ProvisioningCriteriaData> retrieveAllProvisioningCriterias(); List<ProvisioningCriteriaData> retrieveAllProvisioningCriterias();
ProvisioningCriteriaData retrievePrivisiongCriteriaTemplate(ProvisioningCriteriaData data); ProvisioningCriteriaData retrievePrivisiongCriteriaTemplate(ProvisioningCriteriaData data);
} }
@@ -77,7 +77,7 @@ public class ProvisioningCriteriaReadPlatformServiceImpl implements Provisioning
} }
@Override @Override
public Collection<ProvisioningCriteriaData> retrieveAllProvisioningCriterias() { public List<ProvisioningCriteriaData> retrieveAllProvisioningCriterias() {
ProvisioningCriteriaRowMapper mapper = new ProvisioningCriteriaRowMapper(); ProvisioningCriteriaRowMapper mapper = new ProvisioningCriteriaRowMapper();
final String sql = "select " + mapper.schema(); final String sql = "select " + mapper.schema();
return this.jdbcTemplate.query(sql, mapper); // NOSONAR return this.jdbcTemplate.query(sql, mapper); // NOSONAR
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.verifyNoInteractions;
import static org.springframework.batch.repeat.RepeatStatus.FINISHED; import static org.springframework.batch.repeat.RepeatStatus.FINISHED;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -75,7 +74,7 @@ class GenerateLoanlossProvisioningTaskletTest {
@Test @Test
public void testExecuteShouldCreateProvisioningEntry() throws Exception { public void testExecuteShouldCreateProvisioningEntry() throws Exception {
// given // given
Collection<ProvisioningCriteriaData> provisioningCriterias = List.of(new ProvisioningCriteriaData()); List<ProvisioningCriteriaData> provisioningCriterias = List.of(new ProvisioningCriteriaData());
given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias); given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias);
// when // when
RepeatStatus result = underTest.execute(stepContribution, chunkContext); RepeatStatus result = underTest.execute(stepContribution, chunkContext);
@@ -87,7 +86,7 @@ class GenerateLoanlossProvisioningTaskletTest {
@Test @Test
public void testExecuteShouldNotCreateProvisioningEntryWhenNoProvisioningCriteriasArePresent() throws Exception { public void testExecuteShouldNotCreateProvisioningEntryWhenNoProvisioningCriteriasArePresent() throws Exception {
// given // given
Collection<ProvisioningCriteriaData> provisioningCriterias = List.of(); List<ProvisioningCriteriaData> provisioningCriterias = List.of();
given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias); given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias);
// when // when
RepeatStatus result = underTest.execute(stepContribution, chunkContext); RepeatStatus result = underTest.execute(stepContribution, chunkContext);
@@ -110,7 +109,7 @@ class GenerateLoanlossProvisioningTaskletTest {
@Test @Test
public void testExecuteShouldNotFailWhenProvisioningEntryIsAlreadyCreated() throws Exception { public void testExecuteShouldNotFailWhenProvisioningEntryIsAlreadyCreated() throws Exception {
// given // given
Collection<ProvisioningCriteriaData> provisioningCriterias = List.of(new ProvisioningCriteriaData()); List<ProvisioningCriteriaData> provisioningCriterias = List.of(new ProvisioningCriteriaData());
given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias); given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias);
given(provisioningEntriesWritePlatformService.createProvisioningEntry(BUSINESS_DATE, true)) given(provisioningEntriesWritePlatformService.createProvisioningEntry(BUSINESS_DATE, true))
.willThrow(new ProvisioningEntryAlreadyCreatedException(1L, BUSINESS_DATE)); .willThrow(new ProvisioningEntryAlreadyCreatedException(1L, BUSINESS_DATE));
@@ -124,7 +123,7 @@ class GenerateLoanlossProvisioningTaskletTest {
@Test @Test
public void testExecuteShouldNotFailWhenExceptionIsThrownInProvisioningEntryCreation() throws Exception { public void testExecuteShouldNotFailWhenExceptionIsThrownInProvisioningEntryCreation() throws Exception {
// given // given
Collection<ProvisioningCriteriaData> provisioningCriterias = List.of(new ProvisioningCriteriaData()); List<ProvisioningCriteriaData> provisioningCriterias = List.of(new ProvisioningCriteriaData());
given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias); given(provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias()).willReturn(provisioningCriterias);
given(provisioningEntriesWritePlatformService.createProvisioningEntry(BUSINESS_DATE, true)).willThrow(new RuntimeException("Test")); given(provisioningEntriesWritePlatformService.createProvisioningEntry(BUSINESS_DATE, true)).willThrow(new RuntimeException("Test"));
// when // when