From 790ce48531de9f408f36cd9e229f80ee17e8ab37 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 6 Nov 2026 20:41:58 +0900 Subject: [PATCH] =?UTF-8?q?test(country-fixture):=20=EA=B0=95=EC=A0=9C=20?= =?UTF-8?q?=EA=B5=AD=EA=B0=80=20=EB=A7=A4=ED=95=91=20=ED=8C=90=EB=B3=84=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=EC=99=80=20=ED=9A=8C=EA=B7=80=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=B6=94=EA=B0=80=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/support/CountryMemberFixtures.kt | 10 +++++++++ .../support/CountryMemberFixturesTest.kt | 22 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixtures.kt create mode 100644 src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixturesTest.kt diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixtures.kt b/src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixtures.kt new file mode 100644 index 00000000..d0c5bf0f --- /dev/null +++ b/src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixtures.kt @@ -0,0 +1,10 @@ +package kr.co.vividnext.sodalive.support + +import kr.co.vividnext.sodalive.member.Member +import kr.co.vividnext.sodalive.member.contentpreference.resolveCountryCodeWithForcedMapping + +// Fixture selection only: two distinct headers detect forced countries without copying member IDs. +internal fun Member.hasForcedCountryMapping(): Boolean { + return resolveCountryCodeWithForcedMapping(this, "KR") != "KR" || + resolveCountryCodeWithForcedMapping(this, "JP") != "JP" +} diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixturesTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixturesTest.kt new file mode 100644 index 00000000..e8f3bf74 --- /dev/null +++ b/src/test/kotlin/kr/co/vividnext/sodalive/support/CountryMemberFixturesTest.kt @@ -0,0 +1,22 @@ +package kr.co.vividnext.sodalive.support + +import kr.co.vividnext.sodalive.member.Member +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.CsvSource + +class CountryMemberFixturesTest { + @ParameterizedTest + @CsvSource("16, true", "17958, true", "29721, true", "100, false") + @DisplayName("일반 회원 fixture는 강제 국가 매핑 회원과 기존 목록에서 누락된 회원을 제외한다") + fun shouldIdentifyForcedCountryMappingsForFixtureSelection(memberId: Long, expected: Boolean) { + val member = Member( + email = "member$memberId@test.com", + password = "password", + nickname = "member$memberId" + ).apply { id = memberId } + + assertEquals(expected, member.hasForcedCountryMapping()) + } +}