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:
curry772
2026-04-21 13:13:55 +09:00
parent 1508d01afb
commit 2d17387def
2 changed files with 12 additions and 12 deletions
+1 -1
View File
@@ -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,,,
1 #-----------------------------------------------------------------------------
95 # ============================================================
96 # EZDATA - 전자금융공통영역 (corp_tlwn_virt_brcd=ERP 조건부)
97 # ============================================================
98 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,
99 login_mhod_dvcd,2,2,1,1,1,1,,,
100 elfn_bnkn_dvcd,2,2,1,1,2,1,,,01
101 usr_no,2,2,1,1,16,1,,,
@@ -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