forked from kimhyungsik/ax_hub_mcp_tool
feat: update MCP contracts and integrations
All checks were successful
Deploy Tools / deploy (push) Successful in 1m34s
All checks were successful
Deploy Tools / deploy (push) Successful in 1m34s
This commit is contained in:
@@ -4,6 +4,7 @@ import io.shinhanlife.dat.mcc.biz.cmm.dto.ClaimSearchRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.cmm.dto.ClaimSearchResponse;
|
||||
import io.shinhanlife.dat.mcc.biz.cmm.usecase.ClaimSearchUseCase;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
import io.shinhanlife.glow.BizException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -57,7 +58,7 @@ public class ClaimSearchUseCaseImpl implements ClaimSearchUseCase {
|
||||
? "MCI call completed."
|
||||
: "MCI call completed without a response body.");
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
} catch (BizException e) {
|
||||
log.error("[MCI Tool] 연동 중 오류 발생: {}", e.getMessage(), e);
|
||||
ClaimSearchResponse response = new ClaimSearchResponse();
|
||||
response.setResultCode("ERROR");
|
||||
|
||||
@@ -24,7 +24,7 @@ import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
public class MciNclaClient {
|
||||
private final AxhubMciComponent mci;
|
||||
|
||||
public <O> Transfer<O> callTo(String interfaceId, String dummy, Object mciReq, Class<O> resType) throws Exception {
|
||||
public <O> Transfer<O> callTo(String interfaceId, String dummy, Object mciReq, Class<O> resType) {
|
||||
return mci.callTo(interfaceId, dummy, mciReq, resType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package io.shinhanlife.dat.mcc.biz.cmm.usecase.impl;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import io.shinhanlife.dat.mcc.biz.cmm.converter.ClaimSearchConverter;
|
||||
import io.shinhanlife.dat.mcc.biz.cmm.dto.ClaimSearchRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.cmm.dto.ClaimSearchResponse;
|
||||
import io.shinhanlife.dat.mcc.infra.itrf.mci.ncla.MciNclaClient;
|
||||
import io.shinhanlife.dat.mcc.infra.itrf.mci.ncla.io.CLCNNB00001_O;
|
||||
import io.shinhanlife.glow.BizException;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class ClaimSearchUseCaseImplTest {
|
||||
|
||||
@Test
|
||||
void returnsErrorResponseWhenMciReportsABusinessCommunicationFailure() {
|
||||
MciNclaClient mci = mock(MciNclaClient.class);
|
||||
when(mci.callTo(eq("CLCNNB00001"), any(), any(), eq(CLCNNB00001_O.class)))
|
||||
.thenThrow(bizException());
|
||||
ClaimSearchUseCaseImpl useCase = new ClaimSearchUseCaseImpl(mci, mock(ClaimSearchConverter.class));
|
||||
|
||||
ClaimSearchResponse response = useCase.searchClaim(mock(ClaimSearchRequest.class));
|
||||
|
||||
assertEquals("ERROR", response.getResultCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
void doesNotHideUnexpectedRuntimeFailures() {
|
||||
MciNclaClient mci = mock(MciNclaClient.class);
|
||||
when(mci.callTo(eq("CLCNNB00001"), any(), any(), eq(CLCNNB00001_O.class)))
|
||||
.thenThrow(new IllegalStateException("unexpected defect"));
|
||||
ClaimSearchUseCaseImpl useCase = new ClaimSearchUseCaseImpl(mci, mock(ClaimSearchConverter.class));
|
||||
|
||||
assertThrows(IllegalStateException.class,
|
||||
() -> useCase.searchClaim(mock(ClaimSearchRequest.class)));
|
||||
}
|
||||
|
||||
private BizException bizException() {
|
||||
return new BizException("CST00477", new String[]{"MCI communication failure"},
|
||||
new RuntimeException("connection closed"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user