Чтобы протестировать интеграцию Play Age Signals API (бета) с вашим приложением, используйте реализацию FakeAgeSignalsManager , доступную в артефакте age signals. Реализация FakeAgeSignalsManager
позволяет имитировать поведение API.
FakeAgeSignalsManager
предназначен исключительно для модульного или интеграционного тестирования, чтобы проверить поведение вашего приложения. Чтобы протестировать интеграцию, замените экземпляр AgeSignalsManager
на экземпляр FakeAgeSignalsManager
.
Следующий пример имитирует ответ для подтвержденного взрослого:
AgeSignalsResult fakeVerifiedUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.VERIFIED)
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeVerifiedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
В следующем примере имитируется реакция контролируемого пользователя в возрасте от 13 до 17 лет:
AgeSignalsResult fakeSupervisedUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED)
.setAgeLower(13)
.setAgeUpper(17)
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
В следующем примере имитируется ответ на ожидающее одобрение существенного изменения для контролируемого пользователя в возрасте от 13 до 17 лет, у которого ранее не было одобрено существенное изменение:
AgeSignalsResult fakeSupervisedApprovalPendingUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING)
.setAgeLower(13)
.setAgeUpper(17)
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedApprovalPendingUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
В следующем примере моделируется ответ на ожидающее одобрение существенного изменения для контролируемого пользователя в возрасте от 13 до 17 лет со всеми существенными изменениями, одобренными вплоть до существенного изменения, вступившего в силу с 01.02.2025.
AgeSignalsResult fakeSupervisedApprovalPendingUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING)
.setAgeLower(13)
.setAgeUpper(17)
.setMostRecentApprovalDate(
Date.from(LocalDate.of(2025, 2, 1).atStartOfDay(ZoneOffset.UTC).toInstant()))
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedApprovalPendingUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
В следующем примере имитируется отказ в одобрении существенного изменения для контролируемого пользователя в возрасте от 13 до 17 лет, при этом все существенные изменения были одобрены вплоть до существенного изменения, вступившего в силу с 01.02.2025, включая это изменение:
AgeSignalsResult fakeSupervisedApprovalDeniedUser =
AgeSignalsResult.builder()
.setUserStatus(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED)
.setAgeLower(13)
.setAgeUpper(17)
.setMostRecentApprovalDate(
Date.from(LocalDate.of(2025, 2, 1).atStartOfDay(ZoneOffset.UTC).toInstant()))
.setInstallId("fake_install_id")
.build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedApprovalDeniedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
Следующий пример имитирует ответ для неизвестного статуса пользователя:
AgeSignalsResult fakeUnknownUser =
AgeSignalsResult.builder().setUserStatus(AgeSignalsVerificationStatus.UNKNOWN).build();
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeUnknownUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);
Следующий пример имитирует ответ с кодом сетевой ошибки:
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsException(
new AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR));
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(/* handle success case */)
.addOnFailureListener(/* handle failure case */);