test #426
@@ -4,12 +4,14 @@ import kr.co.vividnext.sodalive.member.Member
|
|||||||
import org.springframework.web.context.request.RequestContextHolder
|
import org.springframework.web.context.request.RequestContextHolder
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes
|
import org.springframework.web.context.request.ServletRequestAttributes
|
||||||
|
|
||||||
|
@Deprecated("Use MemberContentPreferenceService.canViewAdultContent(member)")
|
||||||
fun resolveCountryCodeByPolicy(member: Member): String {
|
fun resolveCountryCodeByPolicy(member: Member): String {
|
||||||
val requestAttributes = RequestContextHolder.getRequestAttributes() as? ServletRequestAttributes
|
val requestAttributes = RequestContextHolder.getRequestAttributes() as? ServletRequestAttributes
|
||||||
val requestCountryCode = requestAttributes?.request?.getHeader("CloudFront-Viewer-Country")
|
val requestCountryCode = requestAttributes?.request?.getHeader("CloudFront-Viewer-Country")
|
||||||
return resolveCountryCodeWithForcedMapping(member, requestCountryCode)
|
return resolveCountryCodeWithForcedMapping(member, requestCountryCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("Use MemberContentPreferenceService.canViewAdultContent(member)")
|
||||||
fun isAdultVisibleByPolicy(member: Member, isAdultContentVisible: Boolean): Boolean {
|
fun isAdultVisibleByPolicy(member: Member, isAdultContentVisible: Boolean): Boolean {
|
||||||
return if (resolveCountryCodeByPolicy(member) == "KR") {
|
return if (resolveCountryCodeByPolicy(member) == "KR") {
|
||||||
member.auth != null && isAdultContentVisible
|
member.auth != null && isAdultContentVisible
|
||||||
|
|||||||
@@ -153,6 +153,10 @@ class MemberContentPreferenceService(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun canViewAdultContent(member: Member): Boolean {
|
||||||
|
return getStoredPreference(member).isAdult
|
||||||
|
}
|
||||||
|
|
||||||
fun resolveCountryCode(member: Member): String {
|
fun resolveCountryCode(member: Member): String {
|
||||||
requireMemberId(member)
|
requireMemberId(member)
|
||||||
return resolveCountryCodeWithForcedMapping(member, countryContext.countryCode)
|
return resolveCountryCodeWithForcedMapping(member, countryContext.countryCode)
|
||||||
|
|||||||
@@ -449,6 +449,23 @@ class MemberContentPreferenceServiceTest {
|
|||||||
assertTrue(service.calculateIsAdultForQuery(noAuthMember, "US", true))
|
assertTrue(service.calculateIsAdultForQuery(noAuthMember, "US", true))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("성인 콘텐츠 조회 가능 여부는 저장 preference의 조회용 성인 정책 결과를 반환한다")
|
||||||
|
fun shouldReturnStoredPreferenceAdultPolicyForCanViewAdultContent() {
|
||||||
|
val member = createMember(id = 2200L)
|
||||||
|
val preference = MemberContentPreference(
|
||||||
|
isAdultContentVisible = true,
|
||||||
|
contentType = ContentType.ALL,
|
||||||
|
adultContentVisibilityChangedAt = LocalDateTime.now().minusDays(1),
|
||||||
|
contentTypeChangedAt = LocalDateTime.now().minusDays(1)
|
||||||
|
)
|
||||||
|
preference.member = member
|
||||||
|
countryContext.setCountryCode("KR")
|
||||||
|
Mockito.`when`(repository.findByMemberId(2200L)).thenReturn(preference)
|
||||||
|
|
||||||
|
assertFalse(service.canViewAdultContent(member))
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("직접 설정 API 입력이 모두 누락되면 예외를 발생시킨다")
|
@DisplayName("직접 설정 API 입력이 모두 누락되면 예외를 발생시킨다")
|
||||||
fun shouldThrowWhenAllPreferenceFieldsAreMissing() {
|
fun shouldThrowWhenAllPreferenceFieldsAreMissing() {
|
||||||
|
|||||||
Reference in New Issue
Block a user