blob: bb3a9eab20303f59feecc432f21ecc355a98442d [file] [log] [blame]
/*
* Copyright (C) 2018 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 android.telephony.euicc.cts;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import android.os.Parcel;
import android.os.Parcelable;
import android.telephony.euicc.DownloadableSubscription;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class DownloadableSubscriptionTest {
private static final String ACTIVATION_CODE =
"1$SMDP.GSMA.COM$04386-AGYFT-A74Y8-3F815$1.3.6.1.4.1.31746";
private DownloadableSubscription mDownloadableSubscription;
@Before
public void setUp() throws Exception {
mDownloadableSubscription = DownloadableSubscription.forActivationCode(ACTIVATION_CODE);
}
@Test
public void testDownloadableSubscriptionBuilder() {
final String confirmationCode = "fake confirmation code";
DownloadableSubscription downloadableSubscription =
new DownloadableSubscription.Builder(ACTIVATION_CODE)
.setConfirmationCode(confirmationCode)
.build();
assertNotNull(downloadableSubscription);
assertEquals(ACTIVATION_CODE, downloadableSubscription.getEncodedActivationCode());
assertEquals(confirmationCode, downloadableSubscription.getConfirmationCode());
}
@Test
public void testGetEncodedActivationCode() {
assertNotNull(mDownloadableSubscription);
assertEquals(ACTIVATION_CODE, mDownloadableSubscription.getEncodedActivationCode());
}
@Test
public void testDescribeContents() {
assertNotNull(mDownloadableSubscription);
int bitmask = mDownloadableSubscription.describeContents();
assertTrue(bitmask == 0 || bitmask == Parcelable.CONTENTS_FILE_DESCRIPTOR);
}
@Test
public void testGetConfirmationCode() throws NoSuchFieldException, IllegalAccessException {
// There is no way to set DownloadableSubscription#confirmationCode from here because
// Android P doesn't allow accessing a platform class's @hide methods or private fields
// through reflection.. so let's just verify confirmationCode is null.
assertNotNull(mDownloadableSubscription);
assertNull(mDownloadableSubscription.getConfirmationCode());
}
@Test
public void testWriteToParcel() {
assertNotNull(mDownloadableSubscription);
// write object to parcel
Parcel parcel = Parcel.obtain();
mDownloadableSubscription.writeToParcel(
parcel, mDownloadableSubscription.describeContents());
// extract object from parcel
parcel.setDataPosition(0 /* pos */);
DownloadableSubscription downloadableSubscriptionFromParcel =
DownloadableSubscription.CREATOR.createFromParcel(parcel);
assertEquals(
ACTIVATION_CODE, downloadableSubscriptionFromParcel.getEncodedActivationCode());
// There is no way to set DownloadableSubscription#confirmationCode from here because
// Android P doesn't allow accessing a platform class's @hide methods or private fields
// through reflection.. so let's just verify confirmationCode is null.
assertNull(downloadableSubscriptionFromParcel.getConfirmationCode());
// Similarly there is no way to get DownloadableSubscription#carrierName or
// DownloadableSubscription#accessRules on Android P so we can't verify them here.
}
}