다양한 연령 신호 및 연령 공유
상태에 대한 앱의 처리를 확인하려면 SDK 테스트 아티팩트에 제공된 FakeAgeSignalsManager를 사용하세요.
FakeAgeSignalsManager 를 사용하면 프로덕션 AgeSignalsManager 인스턴스를 대체하여 단위 테스트 및 통합 테스트를 위한 API 응답을 시뮬레이션할 수 있습니다.
Play Age Signals API SDK 버전 0.0.4를 사용하여 다양한 응답 유형을 시뮬레이션하려면 다음 예를 참고하세요.
예 1: 액세스 요청 (사용자가 연령을 공유함)
Kotlin
val fakeAccessResult = AgeSignalsAccessResult.builder()
.setAgeSignalsStatus(AgeSignalsStatus.SHARED) // or NOT_SHARED
.build()
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsAccessResult(fakeAccessResult)
manager.requestAgeSignalsAccess(
AgeSignalsAccessRequest.builder()
.setActivity(fakeActivity)
.build()
)
.addOnSuccessListener { /* handle success */ }
Java
AgeSignalsAccessResult fakeAccessResult = AgeSignalsAccessResult.builder()
.setAgeSignalsStatus(AgeSignalsStatus.SHARED) // or NOT_SHARED
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsAccessResult(fakeAccessResult);
manager.requestAgeSignalsAccess(
AgeSignalsAccessRequest.builder()
.setActivity(fakeActivity)
.build())
.addOnSuccessListener(/* handle success */);
예 2: 액세스 요청 (사용자가 연령을 공유하지 않음)
Kotlin
val fakeAccessResult = AgeSignalsAccessResult.builder()
.setAgeSignalsStatus(AgeSignalsStatus.NOT_SHARED)
.build()
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsAccessResult(fakeAccessResult)
manager.requestAgeSignalsAccess(
AgeSignalsAccessRequest.builder()
.setActivity(fakeActivity)
.build()
)
.addOnSuccessListener { /* handle success */ }
Java
AgeSignalsAccessResult fakeAccessResult = AgeSignalsAccessResult.builder()
.setAgeSignalsStatus(AgeSignalsStatus.NOT_SHARED)
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsAccessResult(fakeAccessResult);
manager.requestAgeSignalsAccess(
AgeSignalsAccessRequest.builder()
.setActivity(fakeActivity)
.build())
.addOnSuccessListener(/* handle success */);
예 3: 인증된 성인 (18세 이상)
Kotlin
val fakeVerifiedUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_D)
.setAgeLower(18)
.build()
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakeVerifiedUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener { /* handle success */ }
Java
AgeSignalsResult fakeVerifiedUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_D)
.setAgeLower(18)
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeVerifiedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success */);
예 4: 감독 대상 미성년자 (13~15세)
Kotlin
val fakeSupervisedUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_B)
.setAgeLower(13)
.setAgeUpper(15)
.setInstallId("fake_install_id_123")
.build()
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakeSupervisedUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener { /* handle success */ }
Java
AgeSignalsResult fakeSupervisedUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_B)
.setAgeLower(13)
.setAgeUpper(15)
.setInstallId("fake_install_id_123")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success */);
예 5: 중요한 변경사항이 보류 중인 감독 대상 미성년자
Kotlin
val fakePendingChangeUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_B)
.setAgeLower(13)
.setAgeUpper(15)
.setSignificantChangeStatus(SignificantChangeStatus.PENDING)
.setInstallId("fake_install_id_123")
.build()
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakePendingChangeUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener { /* handle success */ }
Java
AgeSignalsResult fakePendingChangeUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_B)
.setAgeLower(13)
.setAgeUpper(15)
.setSignificantChangeStatus(SignificantChangeStatus.PENDING)
.setInstallId("fake_install_id_123")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakePendingChangeUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success */);
예 6: 중요한 변경사항이 승인된 감독 대상 미성년자
Kotlin
val fakeApprovedChangeUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_B)
.setAgeLower(13)
.setAgeUpper(15)
.setSignificantChangeStatus(SignificantChangeStatus.APPROVED)
.setSignificantChangeApprovalDate(Date(1777939200000L)) // e.g., 2026-05-01
.setInstallId("fake_install_id_123")
.build()
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakeApprovedChangeUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener { /* handle success */ }
Java
AgeSignalsResult fakeApprovedChangeUser = AgeSignalsResult.builder()
.setAgeRangeSource(AgeRangeSource.TIER_B)
.setAgeLower(13)
.setAgeUpper(15)
.setSignificantChangeStatus(SignificantChangeStatus.APPROVED)
.setSignificantChangeApprovalDate(new Date(1777939200000L)) // e.g., 2026-05-01
.setInstallId("fake_install_id_123")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeApprovedChangeUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success */);
예 7: API 예외 시뮬레이션
Kotlin
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsException(AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR))
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnFailureListener { /* handle error */ }
자바
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsException(new AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR));
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnFailureListener(/* handle error */);