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()) + } +}