Nfc: Change TechListParcel to use public Parcel->readStringArray()

Implement unit tests for TechListParcel to validate the change.

Test: atest NfcManagerTests
Bug: 244264995
Change-Id: Ic84936e09cb0f88ef4e1f873bf28411c20a46d08
This commit is contained in:
Henri Chataing 2022-12-23 16:10:19 +00:00
parent b658e2dff0
commit 268f2b902e
3 changed files with 84 additions and 1 deletions

View File

@ -53,7 +53,7 @@ public class TechListParcel implements Parcelable {
int count = source.readInt();
String[][] techLists = new String[count][];
for (int i = 0; i < count; i++) {
techLists[i] = source.readStringArray();
techLists[i] = source.createStringArray();
}
return new TechListParcel(techLists);
}

View File

@ -27,6 +27,7 @@ android_test {
"androidx.test.ext.junit",
"androidx.test.rules",
"mockito-target-minus-junit4",
"truth-prebuilt",
],
libs: [
"android.test.runner",

View File

@ -0,0 +1,82 @@
/*
* Copyright (C) 2022 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.nfc;
import static com.google.common.truth.Truth.assertThat;
import android.os.Parcel;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Arrays;
@RunWith(AndroidJUnit4.class)
public class TechListParcelTest {
private static final String[] TECH_LIST_1 = new String[] { "tech1.1", "tech1.2" };
private static final String[] TECH_LIST_2 = new String[] { "tech2.1" };
private static final String[] TECH_LIST_EMPTY = new String[] {};
@Test
public void testWriteParcel() {
TechListParcel techListParcel = new TechListParcel(TECH_LIST_1, TECH_LIST_2);
Parcel parcel = Parcel.obtain();
techListParcel.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
TechListParcel actualTechList =
TechListParcel.CREATOR.createFromParcel(parcel);
parcel.recycle();
assertThat(actualTechList.getTechLists().length).isEqualTo(2);
assertThat(Arrays.equals(actualTechList.getTechLists()[0], TECH_LIST_1)).isTrue();
assertThat(Arrays.equals(actualTechList.getTechLists()[1], TECH_LIST_2)).isTrue();
}
@Test
public void testWriteParcelArrayEmpty() {
TechListParcel techListParcel = new TechListParcel();
Parcel parcel = Parcel.obtain();
techListParcel.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
TechListParcel actualTechList =
TechListParcel.CREATOR.createFromParcel(parcel);
parcel.recycle();
assertThat(actualTechList.getTechLists().length).isEqualTo(0);
}
@Test
public void testWriteParcelElementEmpty() {
TechListParcel techListParcel = new TechListParcel(TECH_LIST_EMPTY);
Parcel parcel = Parcel.obtain();
techListParcel.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
TechListParcel actualTechList =
TechListParcel.CREATOR.createFromParcel(parcel);
parcel.recycle();
assertThat(actualTechList.getTechLists().length).isEqualTo(1);
assertThat(Arrays.equals(actualTechList.getTechLists()[0], TECH_LIST_EMPTY)).isTrue();
}
}