اختبار عملية دمج واجهة Play Age Signals API (إصدار تجريبي)

لاختبار عملية دمج واجهة Play Age Signals API (الإصدار التجريبي) مع تطبيقك، استخدِم عملية تنفيذ FakeAgeSignalsManager المتاحة في عنصر age signals. يتيح لك تنفيذ FakeAgeSignalsManager محاكاة سلوك واجهة برمجة التطبيقات.

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 عامًا، مع الموافقة على جميع التغييرات المهمة حتى التغيير المهم الذي سيسري اعتبارًا من 2025-02-01:

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 عامًا، مع الموافقة على جميع التغييرات المهمة حتى التغيير المهم الذي تم تفعيله اعتبارًا من 2025-02-01:

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 */);