Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit afa40877 authored by James Mattis's avatar James Mattis Committed by Android Build Cherrypicker Worker
Browse files

Added flag and tests for SubscriptionPlan changes

Adding a flag and supporting tests for changes to SubscriptionPlan to
provide a subscription status and the plan's end date if available.

Flag: com.android.internal.telephony.flags.subscription_plan_allow_status_and_end_date

NOTE FOR REVIEWERS - original patch and result patch are not identical.
PLEASE REVIEW CAREFULLY.
Diffs between the patches:
 # OWNER=jmattis TARGET=25Q2
> +flag {
> +  name: "subscription_plan_allow_status_and_end_date"
> +  namespace: "telephony"
> +  description: "Provide APIs to retrieve the status and recurrence rule info on a subscription plan"
> +  bug: "357272015"
> +}
> +
> --- /dev/null
> +++ tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionPlanTest.java
> +/*
> + * Copyright (C) 2024 The Android Open Source Project
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + *      http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +package com.android.internal.telephony.subscription;
> +
> +import static android.telephony.SubscriptionPlan.SUBSCRIPTION_STATUS_ACTIVE;
> +
> +import static com.google.common.truth.Truth.assertThat;
> +
> +import static org.junit.Assert.assertNull;
> +import static org.junit.Assert.assertThrows;
> +
> +import android.platform.test.annotations.RequiresFlagsEnabled;
> +import android.telephony.SubscriptionPlan;
> +import android.testing.AndroidTestingRunner;
> +
> +import com.android.internal.telephony.flags.Flags;
> +
> +import org.junit.Test;
> +import org.junit.runner.RunWith;
> +
> +import java.time.Period;
> +import java.time.ZonedDateTime;
> +
> +@RunWith(AndroidTestingRunner.class)
> +public class SubscriptionPlanTest {
> +    private static final ZonedDateTime ZONED_DATE_TIME_START =
> +            ZonedDateTime.parse("2007-03-14T00:00:00.000Z");
> +
> +    @Test
> +    @RequiresFlagsEnabled(Flags.FLAG_SUBSCRIPTION_PLAN_ALLOW_STATUS_AND_END_DATE)
> +    public void testBuilderExpirationDateSetsCorrectly() {
> +        ZonedDateTime endDate = ZonedDateTime.parse("2024-11-07T00:00:00.000Z");
> +
> +        SubscriptionPlan planNonRecurring = SubscriptionPlan.Builder
> +                .createNonrecurring(ZONED_DATE_TIME_START, endDate)
> +                .setTitle("unit test")
> +                .build();
> +        SubscriptionPlan planRecurring = SubscriptionPlan.Builder
> +                .createRecurring(ZONED_DATE_TIME_START, Period.ofMonths(1))
> +                .setTitle("unit test")
> +                .build();
> +
> +        assertThat(planNonRecurring.getPlanEndDate()).isEqualTo(endDate);
> +        assertNull(planRecurring.getPlanEndDate());
> +    }
> +
> +    @Test
> +    @RequiresFlagsEnabled(Flags.FLAG_SUBSCRIPTION_PLAN_ALLOW_STATUS_AND_END_DATE)
> +    public void testBuilderValidSubscriptionStatusSetsCorrectly() {
> +        @SubscriptionPlan.SubscriptionStatus int status = SUBSCRIPTION_STATUS_ACTIVE;
> +
> +        SubscriptionPlan plan = SubscriptionPlan.Builder
> +                .createRecurring(ZONED_DATE_TIME_START, Period.ofMonths(1))
> +                .setSubscriptionStatus(status)
> +                .setTitle("unit test")
> +                .build();
> +
> +        assertThat(plan.getSubscriptionStatus()).isEqualTo(status);
> +    }
> +
> +    @Test
> +    @RequiresFlagsEnabled(Flags.FLAG_SUBSCRIPTION_PLAN_ALLOW_STATUS_AND_END_DATE)
> +    public void testBuilderInvalidSubscriptionStatusThrowsError() {
> +        int minInvalid = -1;
> +        int maxInvalid = 5;
> +
> +        assertThrows(IllegalArgumentException.class, () -> {
> +            SubscriptionPlan.Builder
> +                    .createRecurring(ZONED_DATE_TIME_START, Period.ofMonths(1))
> +                    .setSubscriptionStatus(minInvalid)
> +                    .setTitle("unit test")
> +                    .build();
> +        });
> +
> +        assertThrows(IllegalArgumentException.class, () -> {
> +            SubscriptionPlan.Builder
> +                    .createRecurring(ZONED_DATE_TIME_START, Period.ofMonths(1))
> +                    .setSubscriptionStatus(maxInvalid)
> +                    .setTitle("unit test")
> +                    .build();
> +        });
> +    }
> +}

Original patch:
 From 52a56a8a Mon Sep 17 00:00:00 2001
From: James Mattis <jmattis@google.com>
Date: Fri, 08 Nov 2024 15:22:25 -0800
Subject: [PATCH] Added flag and tests for SubscriptionPlan changes

Adding a flag and supporting tests for changes to SubscriptionPlan to
provide a subscription status and the plan's end date if available.

Flag: com.android.internal.telephony.flags.subscription_plan_allow_status_and_end_date

Test: atest phone FrameworksTelephonyTests:SubscriptionPlanTest
Bug: 357272015
Change-Id: I25b70907eda6b3bcbf34f786ed86d64432c7331f
---

Result patch:
 diff --git a/flags/subscription.aconfig b/flags/subscription.aconfig
index 9a5dabc..986c1ff 100644
--- a/flags/subscription.aconfig
+++ b/flags/subscription.aconfig
@@ -66,6 +66,14 @@
   }
 }
 
+# OWNER=jmattis TARGET=25Q2
+flag {
+  name: "subscription_plan_allow_status_and_end_date"
+  namespace: "telephony"
+  description: "Provide APIs to retrieve the status and recurrence rule info on a subscription plan"
+  bug: "357272015"
+}
+
 # OWNER=songferngwang TARGET=24Q3
 flag {
   name: "reset_primary_sim_default_values"
diff --git a/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionPlanTest.java b/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionPlanTest.java
new file mode 100644
index 0000000..2c13d3b
--- /dev/null
+++ b/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionPlanTest.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (th
[[[Result patch trimmed due to size. Decoded string size: 4627. Decoded string SHA1: 113ac5bf92fb7e337643f59287d57cbf1f65914d.]]]

Test: atest phone FrameworksTelephonyTests:SubscriptionPlanTest
Bug: 357272015
Merged-In: I25b70907eda6b3bcbf34f786ed86d64432c7331f
Change-Id: I25b70907eda6b3bcbf34f786ed86d64432c7331f
parent 7ccac500
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment