fix: EZDATA size=0으로 변경하여 비ERP 요청 시 직렬화 제외
- standard-layout-djb.csv: EZDATA size 1→0 변경 FlatReader가 refPath/refValue 조건(HEAD.corp_tlwn_virt_brcd=ERP)을 평가하여 비ERP 파싱 시 EZDATA 블록을 자동으로 size=0 유지 → 직렬화 제외 - StandardMessageEzdataJsonFlowTest: 비ERP 검증 강화 ERP 전용 필드 빈값 검증 → size=0 확인 + JSON 직렬화 제외 직접 검증으로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -95,7 +95,7 @@ rprs_msg_cd,2,2,1,1,12,1,,,
|
||||
# ============================================================
|
||||
# EZDATA - 전자금융공통영역 (corp_tlwn_virt_brcd=ERP 조건부)
|
||||
# ============================================================
|
||||
EZDATA,1,3,1,1,0,1,HEAD.corp_tlwn_virt_brcd,ERP,
|
||||
EZDATA,1,3,0,1,0,1,HEAD.corp_tlwn_virt_brcd,ERP,
|
||||
login_mhod_dvcd,2,2,1,1,1,1,,,
|
||||
elfn_bnkn_dvcd,2,2,1,1,2,1,,,01
|
||||
usr_no,2,2,1,1,16,1,,,
|
||||
|
||||
|
+11
-11
@@ -17,6 +17,7 @@ import com.eactive.eai.common.monitor.EAIServiceMonitor;
|
||||
import com.eactive.eai.common.property.PropManager;
|
||||
import com.eactive.eai.common.server.EAIServerManager;
|
||||
import com.eactive.eai.common.util.ApplicationContextProvider;
|
||||
import com.eactive.eai.message.StandardItem;
|
||||
import com.eactive.eai.message.StandardMessage;
|
||||
import com.eactive.eai.message.manager.StandardMessageManager;
|
||||
import com.eactive.eai.message.parser.JsonReader;
|
||||
@@ -243,27 +244,26 @@ class StandardMessageEzdataJsonFlowTest {
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
// 3. EZDATA 조건 미충족(비ERP) — 입력값 미설정 검증
|
||||
// EZDATA 블록은 기본값으로 직렬화되므로, 입력 JSON에 없는 ERP 전용
|
||||
// 필드(usr_no, rgsr_id 등)는 파싱 후 빈 값(기본값)이어야 함
|
||||
// 3. EZDATA 조건 미충족(비ERP) — EZDATA 블록 직렬화 제외 검증
|
||||
// size=0 + refPath/refValue 조건 미충족 → isHidden=true → JSON 제외
|
||||
// ================================================================
|
||||
|
||||
@Test
|
||||
void 비ERP요청_파싱_EZDATA_usr_no_미설정() throws Exception {
|
||||
void 비ERP요청_파싱_EZDATA_size_0() throws Exception {
|
||||
StandardMessage msg = parseNonErpReq();
|
||||
|
||||
String usrNo = msg.findItemValue("EZDATA.usr_no");
|
||||
assertTrue(usrNo == null || usrNo.trim().isEmpty(),
|
||||
"비ERP 요청에서 EZDATA.usr_no는 빈 값이어야 함: [" + usrNo + "]");
|
||||
StandardItem ezdataItem = msg.findItem("EZDATA");
|
||||
assertTrue(ezdataItem == null || ezdataItem.getSize() == 0,
|
||||
"비ERP 요청에서 EZDATA 블록 size는 0이어야 함");
|
||||
}
|
||||
|
||||
@Test
|
||||
void 비ERP요청_파싱_EZDATA_rgsr_id_미설정() throws Exception {
|
||||
void 비ERP요청_파싱_JSON_직렬화_EZDATA_제외() throws Exception {
|
||||
StandardMessage msg = parseNonErpReq();
|
||||
|
||||
String rgsrId = msg.findItemValue("EZDATA.rgsr_id");
|
||||
assertTrue(rgsrId == null || rgsrId.trim().isEmpty(),
|
||||
"비ERP 요청에서 EZDATA.rgsr_id는 빈 값이어야 함: [" + rgsrId + "]");
|
||||
String json = msg.toJson(false, false);
|
||||
JsonNode root = jacksonMapper.readTree(json);
|
||||
assertFalse(root.has("EZDATA"), "비ERP 요청 직렬화 JSON에 EZDATA 블록이 없어야 함");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user