feat: move Onnba MCI request conversion to use case
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 6m1s

This commit is contained in:
jade
2026-07-27 14:01:04 +09:00
parent 9b9159a605
commit 25f0d2bab5
3 changed files with 130 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
package io.shinhanlife.dap.mcc.biz.oth.converter;
import io.shinhanlife.dap.mcc.biz.oth.dto.Onnba3011Request;
import io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io.CLCNNB00001_I;
import org.mapstruct.Mapper;
/**
* @package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.converter
* @className Onnba3011Converter
* @description Converts ONNBA tool input into the CLCNNB00001 MCI payload
* @author 0986406
* @create 2026.07.27
* <pre>
* ---------- revision history ----------
* date author description
* ---------- --------- ---------------------------
* 2026.07.27 0986406 initial creation
* </pre>
*/
@Mapper(componentModel = "spring")
public interface Onnba3011Converter {
CLCNNB00001_I toMciRequest(Onnba3011Request source);
CLCNNB00001_I.UnfcPrbuIrcoAdduDto toUnfcPrbuIrcoAddu(
Onnba3011Request.UnfcPrbuIrcoAdduDto source);
CLCNNB00001_I.SucoIspaBasDto toSucoIspaBas(Onnba3011Request.SucoIspaBasDto source);
}

View File

@@ -0,0 +1,46 @@
package io.shinhanlife.dap.mcc.biz.oth.usecase.impl;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import io.shinhanlife.dap.mcc.biz.oth.converter.Onnba3011Converter;
import io.shinhanlife.dap.mcc.biz.oth.dto.Onnba3011Request;
import io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.MciCfpaClient;
import io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io.CLCNNB00001_I;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
/**
* @package io.shinhanlife.dap.mcc.biz.oth.usecase.impl
* @className OnnbaMciToolUseCaseImplTest
* @description ONNBA MCI tool use case test
* @author 0986406
* @create 2026.07.27
* <pre>
* ---------- revision history ----------
* date author description
* ---------- --------- ---------------------------
* 2026.07.27 0986406 initial creation
* </pre>
*/
class OnnbaMciToolUseCaseImplTest {
@Test
void convertsToolRequestBeforeCallingMciClient() throws Exception {
MciCfpaClient mciCfpaClient = Mockito.mock(MciCfpaClient.class);
Onnba3011Converter converter = Mockito.mock(Onnba3011Converter.class);
OnnbaMciToolUseCaseImpl useCase = new OnnbaMciToolUseCaseImpl(mciCfpaClient, converter);
Onnba3011Request request = new Onnba3011Request();
CLCNNB00001_I mciRequest = new CLCNNB00001_I();
when(converter.toMciRequest(request)).thenReturn(mciRequest);
when(mciCfpaClient.callCfpa0001(mciRequest)).thenReturn("success");
Object result = useCase.callOnnba3011(request);
assertEquals("success", result);
verify(converter).toMciRequest(request);
verify(mciCfpaClient).callCfpa0001(mciRequest);
}
}

View File

@@ -0,0 +1,55 @@
package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.converter;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import io.shinhanlife.dap.mcc.biz.oth.converter.Onnba3011Converter;
import io.shinhanlife.dap.mcc.biz.oth.dto.Onnba3011Request;
import io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io.CLCNNB00001_I;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
/**
* @package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.converter
* @className Onnba3011MciRequestConverterTest
* @description ONNBA 3011 request converter test
* @author 0986406
* @create 2026.07.27
* <pre>
* ---------- revision history ----------
* date author description
* ---------- --------- ---------------------------
* 2026.07.27 0986406 initial creation
* </pre>
*/
class Onnba3011MciRequestConverterTest {
private final Onnba3011Converter converter = Mappers.getMapper(Onnba3011Converter.class);
@Test
void mapsRootAndNestedRequestFieldsToMciPayload() {
Onnba3011Request source = request();
CLCNNB00001_I result = converter.toMciRequest(source);
assertEquals("A", result.getDalScCd());
assertEquals("123456", result.getCsNo());
assertNotNull(result.getUnfcPrbuIrcoAddu());
assertNotNull(result.getSucoIspaBasDto());
assertEquals("01", result.getSucoIspaBasDto().getCcnDalTypCd());
assertEquals("20260727", result.getSucoIspaBasDto().getSucoYmd());
}
private Onnba3011Request request() {
Onnba3011Request request = new Onnba3011Request();
request.setDalScCd("A");
request.setCsNo("123456");
request.setUnfcPrbuIrcoAddu(new Onnba3011Request.UnfcPrbuIrcoAdduDto());
Onnba3011Request.SucoIspaBasDto suco = new Onnba3011Request.SucoIspaBasDto();
suco.setCcnDalTypCd("01");
suco.setSucoYmd("20260727");
request.setSucoIspaBasDto(suco);
return request;
}
}