From 2d17387defc73c00cf749496135c65030b7c4e66 Mon Sep 17 00:00:00 2001 From: curry772 Date: Tue, 21 Apr 2026 13:13:55 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20EZDATA=20size=3D0=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=ED=95=98=EC=97=AC=20=EB=B9=84ERP=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20=EC=8B=9C=20=EC=A7=81=EB=A0=AC=ED=99=94=20=EC=A0=9C?= =?UTF-8?q?=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- src/main/resources/standard-layout-djb.csv | 2 +- .../StandardMessageEzdataJsonFlowTest.java | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/resources/standard-layout-djb.csv b/src/main/resources/standard-layout-djb.csv index 11621d0..cc371f5 100644 --- a/src/main/resources/standard-layout-djb.csv +++ b/src/main/resources/standard-layout-djb.csv @@ -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,,, diff --git a/src/test/java/com/eactive/eai/custom/message/StandardMessageEzdataJsonFlowTest.java b/src/test/java/com/eactive/eai/custom/message/StandardMessageEzdataJsonFlowTest.java index d3e8567..74cf19d 100644 --- a/src/test/java/com/eactive/eai/custom/message/StandardMessageEzdataJsonFlowTest.java +++ b/src/test/java/com/eactive/eai/custom/message/StandardMessageEzdataJsonFlowTest.java @@ -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