From f781c01242744d4954dab49cc2a8076fedbf47ec Mon Sep 17 00:00:00 2001 From: Isaac Katzenelson Date: Fri, 24 Feb 2023 22:36:36 +0000 Subject: [PATCH] Change security types arrays to sets in network classes. Also fixed all test classes to support Truth and added hashcode verification too. Bug: 270700093, 270697412 Test: atest KnownNetworkTest TetherNetworkTest Change-Id: If01e72bffa3297c4d34a32639c4211c4d8ee191b --- core/api/system-current.txt | 8 +- .../sharedconnectivity/app/KnownNetwork.java | 41 +++++---- .../sharedconnectivity/app/TetherNetwork.java | 40 +++++---- .../app/DeviceInfoTest.java | 40 +++++---- .../app/KnownNetworkConnectionStatusTest.java | 40 +++++---- .../app/KnownNetworkTest.java | 51 +++++++---- .../app/SharedConnectivityManagerTest.java | 84 +++++++++---------- .../SharedConnectivitySettingsStateTest.java | 23 +++-- .../TetherNetworkConnectionStatusTest.java | 42 ++++++---- .../app/TetherNetworkTest.java | 66 +++++++++------ .../SharedConnectivityServiceTest.java | 37 ++++---- 11 files changed, 271 insertions(+), 201 deletions(-) diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 77fb8d09ed971..71bbd562294bb 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -10023,7 +10023,7 @@ package android.net.wifi.sharedconnectivity.app { method public int describeContents(); method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo getDeviceInfo(); method public int getNetworkSource(); - method @NonNull public int[] getSecurityTypes(); + method @NonNull public java.util.Set getSecurityTypes(); method @NonNull public String getSsid(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; @@ -10033,10 +10033,10 @@ package android.net.wifi.sharedconnectivity.app { public static final class KnownNetwork.Builder { ctor public KnownNetwork.Builder(); + method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder addSecurityType(int); method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork build(); method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setDeviceInfo(@NonNull android.net.wifi.sharedconnectivity.app.DeviceInfo); method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setNetworkSource(int); - method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setSecurityTypes(@NonNull int[]); method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setSsid(@NonNull String); } @@ -10105,7 +10105,7 @@ package android.net.wifi.sharedconnectivity.app { method public long getDeviceId(); method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo getDeviceInfo(); method @Nullable public String getHotspotBssid(); - method @Nullable public int[] getHotspotSecurityTypes(); + method @NonNull public java.util.Set getHotspotSecurityTypes(); method @Nullable public String getHotspotSsid(); method @NonNull public String getNetworkName(); method public int getNetworkType(); @@ -10119,11 +10119,11 @@ package android.net.wifi.sharedconnectivity.app { public static final class TetherNetwork.Builder { ctor public TetherNetwork.Builder(); + method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder addHotspotSecurityType(int); method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork build(); method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setDeviceId(long); method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setDeviceInfo(@NonNull android.net.wifi.sharedconnectivity.app.DeviceInfo); method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setHotspotBssid(@NonNull String); - method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setHotspotSecurityTypes(@NonNull int[]); method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setHotspotSsid(@NonNull String); method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setNetworkName(@NonNull String); method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setNetworkType(int); diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java b/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java index 161c83ce2fabb..1fb1c630304d0 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java @@ -24,11 +24,12 @@ import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; +import android.util.ArraySet; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -import java.util.Arrays; import java.util.Objects; +import java.util.Set; /** * A data class representing a known Wi-Fi network. @@ -59,7 +60,7 @@ public final class KnownNetwork implements Parcelable { @NetworkSource private final int mNetworkSource; private final String mSsid; - @SecurityType private final int[] mSecurityTypes; + @SecurityType private final ArraySet mSecurityTypes; private final DeviceInfo mDeviceInfo; /** @@ -68,11 +69,9 @@ public final class KnownNetwork implements Parcelable { public static final class Builder { @NetworkSource private int mNetworkSource = -1; private String mSsid; - @SecurityType private int[] mSecurityTypes; + @SecurityType private final ArraySet mSecurityTypes = new ArraySet<>(); private android.net.wifi.sharedconnectivity.app.DeviceInfo mDeviceInfo; - public Builder() {} - /** * Sets the indicated source of the known network. * @@ -98,14 +97,14 @@ public final class KnownNetwork implements Parcelable { } /** - * Sets the security types of the known network. + * Adds a security type of the known network. * - * @param securityTypes The array of security types supported by the known network. + * @param securityType A security type supported by the known network. * @return Returns the Builder object. */ @NonNull - public Builder setSecurityTypes(@NonNull @SecurityType int[] securityTypes) { - mSecurityTypes = securityTypes; + public Builder addSecurityType(@SecurityType int securityType) { + mSecurityTypes.add(securityType); return this; } @@ -136,7 +135,7 @@ public final class KnownNetwork implements Parcelable { } } - private static void validate(int networkSource, String ssid, int [] securityTypes) { + private static void validate(int networkSource, String ssid, Set securityTypes) { if (networkSource != NETWORK_SOURCE_CLOUD_SELF && networkSource != NETWORK_SOURCE_NEARBY_SELF) { throw new IllegalArgumentException("Illegal network source"); @@ -144,7 +143,7 @@ public final class KnownNetwork implements Parcelable { if (TextUtils.isEmpty(ssid)) { throw new IllegalArgumentException("SSID must be set"); } - if (securityTypes == null || securityTypes.length == 0) { + if (securityTypes.isEmpty()) { throw new IllegalArgumentException("SecurityTypes must be set"); } } @@ -152,12 +151,12 @@ public final class KnownNetwork implements Parcelable { private KnownNetwork( @NetworkSource int networkSource, @NonNull String ssid, - @NonNull @SecurityType int[] securityTypes, + @NonNull @SecurityType ArraySet securityTypes, @NonNull DeviceInfo deviceInfo) { validate(networkSource, ssid, securityTypes); mNetworkSource = networkSource; mSsid = ssid; - mSecurityTypes = securityTypes; + mSecurityTypes = new ArraySet<>(securityTypes); mDeviceInfo = deviceInfo; } @@ -184,11 +183,11 @@ public final class KnownNetwork implements Parcelable { /** * Gets the security types of the known network. * - * @return Returns the array of security types supported by the known network. + * @return Returns a set with security types supported by the known network. */ @NonNull @SecurityType - public int[] getSecurityTypes() { + public Set getSecurityTypes() { return mSecurityTypes; } @@ -208,14 +207,13 @@ public final class KnownNetwork implements Parcelable { KnownNetwork other = (KnownNetwork) obj; return mNetworkSource == other.getNetworkSource() && Objects.equals(mSsid, other.getSsid()) - && Arrays.equals(mSecurityTypes, other.getSecurityTypes()) + && Objects.equals(mSecurityTypes, other.getSecurityTypes()) && Objects.equals(mDeviceInfo, other.getDeviceInfo()); } @Override public int hashCode() { - return Objects.hash(mNetworkSource, mSsid, Arrays.hashCode(mSecurityTypes), - mDeviceInfo.hashCode()); + return Objects.hash(mNetworkSource, mSsid, mSecurityTypes, mDeviceInfo); } @Override @@ -227,7 +225,7 @@ public final class KnownNetwork implements Parcelable { public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mNetworkSource); dest.writeString(mSsid); - dest.writeIntArray(mSecurityTypes); + dest.writeArraySet(mSecurityTypes); mDeviceInfo.writeToParcel(dest, flags); } @@ -238,7 +236,8 @@ public final class KnownNetwork implements Parcelable { */ @NonNull public static KnownNetwork readFromParcel(@NonNull Parcel in) { - return new KnownNetwork(in.readInt(), in.readString(), in.createIntArray(), + return new KnownNetwork(in.readInt(), in.readString(), + (ArraySet) in.readArraySet(null), DeviceInfo.readFromParcel(in)); } @@ -260,7 +259,7 @@ public final class KnownNetwork implements Parcelable { return new StringBuilder("KnownNetwork[") .append("NetworkSource=").append(mNetworkSource) .append(", ssid=").append(mSsid) - .append(", securityTypes=").append(Arrays.toString(mSecurityTypes)) + .append(", securityTypes=").append(mSecurityTypes.toString()) .append(", deviceInfo=").append(mDeviceInfo.toString()) .append("]").toString(); } diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/app/TetherNetwork.java b/wifi/java/src/android/net/wifi/sharedconnectivity/app/TetherNetwork.java index af4fd4a2cc76f..7b591d3a45bd3 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/TetherNetwork.java +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/TetherNetwork.java @@ -25,12 +25,12 @@ import android.annotation.SystemApi; import android.net.wifi.sharedconnectivity.service.SharedConnectivityService; import android.os.Parcel; import android.os.Parcelable; - +import android.util.ArraySet; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -import java.util.Arrays; import java.util.Objects; +import java.util.Set; /** * A data class representing an Instant Tether network. @@ -79,7 +79,7 @@ public final class TetherNetwork implements Parcelable { private final String mNetworkName; @Nullable private final String mHotspotSsid; @Nullable private final String mHotspotBssid; - @Nullable @SecurityType private final int[] mHotspotSecurityTypes; + @Nullable @SecurityType private final ArraySet mHotspotSecurityTypes; /** * Builder class for {@link TetherNetwork}. @@ -91,9 +91,8 @@ public final class TetherNetwork implements Parcelable { private String mNetworkName; @Nullable private String mHotspotSsid; @Nullable private String mHotspotBssid; - @Nullable @SecurityType private int[] mHotspotSecurityTypes; - - public Builder() {} + @Nullable @SecurityType private final ArraySet mHotspotSecurityTypes = + new ArraySet<>(); /** * Set the remote device ID. @@ -168,15 +167,14 @@ public final class TetherNetwork implements Parcelable { } /** - * Sets the hotspot security types supported by the remote device, or null if hotspot is - * off. + * Adds a security type supported by the hotspot created by the remote device. * - * @param hotspotSecurityTypes The array of security types supported by the hotspot. + * @param hotspotSecurityType A security type supported by the hotspot. * @return Returns the Builder object. */ @NonNull - public Builder setHotspotSecurityTypes(@NonNull @SecurityType int[] hotspotSecurityTypes) { - mHotspotSecurityTypes = hotspotSecurityTypes; + public Builder addHotspotSecurityType(@SecurityType int hotspotSecurityType) { + mHotspotSecurityTypes.add(hotspotSecurityType); return this; } @@ -218,7 +216,7 @@ public final class TetherNetwork implements Parcelable { @NonNull String networkName, @Nullable String hotspotSsid, @Nullable String hotspotBssid, - @Nullable @SecurityType int[] hotspotSecurityTypes) { + @Nullable @SecurityType ArraySet hotspotSecurityTypes) { validate(deviceId, networkType, networkName); @@ -228,7 +226,7 @@ public final class TetherNetwork implements Parcelable { mNetworkName = networkName; mHotspotSsid = hotspotSsid; mHotspotBssid = hotspotBssid; - mHotspotSecurityTypes = hotspotSecurityTypes; + mHotspotSecurityTypes = new ArraySet<>(hotspotSecurityTypes); } /** @@ -293,11 +291,11 @@ public final class TetherNetwork implements Parcelable { /** * Gets the hotspot security types supported by the remote device. * - * @return Returns the array of security types supported by the hotspot. + * @return Returns a set of the security types supported by the hotspot. */ - @Nullable + @NonNull @SecurityType - public int[] getHotspotSecurityTypes() { + public Set getHotspotSecurityTypes() { return mHotspotSecurityTypes; } @@ -311,13 +309,13 @@ public final class TetherNetwork implements Parcelable { && Objects.equals(mNetworkName, other.getNetworkName()) && Objects.equals(mHotspotSsid, other.getHotspotSsid()) && Objects.equals(mHotspotBssid, other.getHotspotBssid()) - && Arrays.equals(mHotspotSecurityTypes, other.getHotspotSecurityTypes()); + && Objects.equals(mHotspotSecurityTypes, other.getHotspotSecurityTypes()); } @Override public int hashCode() { return Objects.hash(mDeviceId, mDeviceInfo, mNetworkName, mHotspotSsid, mHotspotBssid, - Arrays.hashCode(mHotspotSecurityTypes)); + mHotspotSecurityTypes); } @Override @@ -333,7 +331,7 @@ public final class TetherNetwork implements Parcelable { dest.writeString(mNetworkName); dest.writeString(mHotspotSsid); dest.writeString(mHotspotBssid); - dest.writeIntArray(mHotspotSecurityTypes); + dest.writeArraySet(mHotspotSecurityTypes); } /** @@ -345,7 +343,7 @@ public final class TetherNetwork implements Parcelable { public static TetherNetwork readFromParcel(@NonNull Parcel in) { return new TetherNetwork(in.readLong(), DeviceInfo.readFromParcel(in), in.readInt(), in.readString(), in.readString(), in.readString(), - in.createIntArray()); + (ArraySet) in.readArraySet(null)); } @NonNull @@ -370,7 +368,7 @@ public final class TetherNetwork implements Parcelable { .append(", networkName=").append(mNetworkName) .append(", hotspotSsid=").append(mHotspotSsid) .append(", hotspotBssid=").append(mHotspotBssid) - .append(", hotspotSecurityTypes=").append(Arrays.toString(mHotspotSecurityTypes)) + .append(", hotspotSecurityTypes=").append(mHotspotSecurityTypes.toString()) .append("]").toString(); } } diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/DeviceInfoTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/DeviceInfoTest.java index f8f07008e34b8..e6595eb2e2a39 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/DeviceInfoTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/DeviceInfoTest.java @@ -19,8 +19,7 @@ package android.net.wifi.sharedconnectivity.app; import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_LAPTOP; import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_PHONE; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static com.google.common.truth.Truth.assertThat; import android.os.Parcel; @@ -29,7 +28,7 @@ import androidx.test.filters.SmallTest; import org.junit.Test; /** - * Unit tests for {@link android.app.sharedconnectivity.DeviceInfo}. + * Unit tests for {@link DeviceInfo}. */ @SmallTest public class DeviceInfoTest { @@ -63,8 +62,8 @@ public class DeviceInfoTest { parcelR.setDataPosition(0); DeviceInfo fromParcel = DeviceInfo.CREATOR.createFromParcel(parcelR); - assertEquals(info, fromParcel); - assertEquals(info.hashCode(), fromParcel.hashCode()); + assertThat(fromParcel).isEqualTo(info); + assertThat(fromParcel.hashCode()).isEqualTo(info.hashCode()); } /** @@ -74,24 +73,24 @@ public class DeviceInfoTest { public void testEqualsOperation() { DeviceInfo info1 = buildDeviceInfoBuilder().build(); DeviceInfo info2 = buildDeviceInfoBuilder().build(); - assertEquals(info1, info2); + assertThat(info1).isEqualTo(info2); DeviceInfo.Builder builder = buildDeviceInfoBuilder().setDeviceType(DEVICE_TYPE_1); - assertNotEquals(info1, builder.build()); + assertThat(builder.build()).isNotEqualTo(info1); builder = buildDeviceInfoBuilder().setDeviceName(DEVICE_NAME_1); - assertNotEquals(info1, builder.build()); + assertThat(builder.build()).isNotEqualTo(info1); builder = buildDeviceInfoBuilder().setModelName(DEVICE_MODEL_1); - assertNotEquals(info1, builder.build()); + assertThat(builder.build()).isNotEqualTo(info1); builder = buildDeviceInfoBuilder() .setBatteryPercentage(BATTERY_PERCENTAGE_1); - assertNotEquals(info1, builder.build()); + assertThat(builder.build()).isNotEqualTo(info1); builder = buildDeviceInfoBuilder() .setConnectionStrength(CONNECTION_STRENGTH_1); - assertNotEquals(info1, builder.build()); + assertThat(builder.build()).isNotEqualTo(info1); } /** @@ -100,12 +99,19 @@ public class DeviceInfoTest { @Test public void testGetMethods() { DeviceInfo info = buildDeviceInfoBuilder().build(); - assertEquals(info.getDeviceType(), DEVICE_TYPE); - assertEquals(info.getDeviceName(), DEVICE_NAME); - assertEquals(info.getModelName(), DEVICE_MODEL); - assertEquals(info.getBatteryPercentage(), BATTERY_PERCENTAGE); - assertEquals(info.getConnectionStrength(), CONNECTION_STRENGTH); - assertEquals(info.getConnectionStrength(), CONNECTION_STRENGTH); + assertThat(info.getDeviceType()).isEqualTo(DEVICE_TYPE); + assertThat(info.getDeviceName()).isEqualTo(DEVICE_NAME); + assertThat(info.getModelName()).isEqualTo(DEVICE_MODEL); + assertThat(info.getBatteryPercentage()).isEqualTo(BATTERY_PERCENTAGE); + assertThat(info.getConnectionStrength()).isEqualTo(CONNECTION_STRENGTH); + } + + @Test + public void testHashCode() { + DeviceInfo info1 = buildDeviceInfoBuilder().build(); + DeviceInfo info2 = buildDeviceInfoBuilder().build(); + + assertThat(info1.hashCode()).isEqualTo(info2.hashCode()); } private DeviceInfo.Builder buildDeviceInfoBuilder() { diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkConnectionStatusTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkConnectionStatusTest.java index 37dca8def0bd8..8a0f21e5eea68 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkConnectionStatusTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkConnectionStatusTest.java @@ -22,8 +22,7 @@ import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURC import static android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus.CONNECTION_STATUS_SAVED; import static android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus.CONNECTION_STATUS_SAVE_FAILED; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static com.google.common.truth.Truth.assertThat; import android.os.Bundle; import android.os.Parcel; @@ -32,8 +31,10 @@ import androidx.test.filters.SmallTest; import org.junit.Test; +import java.util.Arrays; + /** - * Unit tests for {@link android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus}. + * Unit tests for {@link KnownNetworkConnectionStatus}. */ @SmallTest public class KnownNetworkConnectionStatusTest { @@ -45,6 +46,7 @@ public class KnownNetworkConnectionStatusTest { .setConnectionStrength(2).setBatteryPercentage(50).build(); private static final String SSID_1 = "TEST_SSID1"; private static final String BUNDLE_KEY = "INT-KEY"; + private static final int BUNDLE_VALUE = 1; /** * Verifies parcel serialization/deserialization. @@ -64,8 +66,8 @@ public class KnownNetworkConnectionStatusTest { KnownNetworkConnectionStatus fromParcel = KnownNetworkConnectionStatus.CREATOR.createFromParcel(parcelR); - assertEquals(status, fromParcel); - assertEquals(status.hashCode(), fromParcel.hashCode()); + assertThat(fromParcel).isEqualTo(status); + assertThat(fromParcel.hashCode()).isEqualTo(status.hashCode()); } /** @@ -75,15 +77,15 @@ public class KnownNetworkConnectionStatusTest { public void testEqualsOperation() { KnownNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build(); KnownNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build(); - assertEquals(status2, status2); + assertThat(status1).isEqualTo(status2); KnownNetworkConnectionStatus.Builder builder = buildConnectionStatusBuilder() .setStatus(CONNECTION_STATUS_SAVE_FAILED); - assertNotEquals(status1, builder.build()); + assertThat(builder.build()).isNotEqualTo(status1); builder = buildConnectionStatusBuilder() .setKnownNetwork(buildKnownNetworkBuilder().setSsid(SSID_1).build()); - assertNotEquals(status1, builder.build()); + assertThat(builder.build()).isNotEqualTo(status1); } /** @@ -92,9 +94,17 @@ public class KnownNetworkConnectionStatusTest { @Test public void testGetMethods() { KnownNetworkConnectionStatus status = buildConnectionStatusBuilder().build(); - assertEquals(status.getStatus(), CONNECTION_STATUS_SAVED); - assertEquals(status.getKnownNetwork(), buildKnownNetworkBuilder().build()); - assertEquals(status.getExtras().getInt(BUNDLE_KEY), buildBundle().getInt(BUNDLE_KEY)); + assertThat(status.getStatus()).isEqualTo(CONNECTION_STATUS_SAVED); + assertThat(status.getKnownNetwork()).isEqualTo(buildKnownNetworkBuilder().build()); + assertThat(status.getExtras().getInt(BUNDLE_KEY)).isEqualTo(BUNDLE_VALUE); + } + + @Test + public void testHashCode() { + KnownNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build(); + KnownNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build(); + + assertThat(status1.hashCode()).isEqualTo(status2.hashCode()); } private KnownNetworkConnectionStatus.Builder buildConnectionStatusBuilder() { @@ -106,13 +116,15 @@ public class KnownNetworkConnectionStatusTest { private Bundle buildBundle() { Bundle bundle = new Bundle(); - bundle.putInt(BUNDLE_KEY, 1); + bundle.putInt(BUNDLE_KEY, BUNDLE_VALUE); return bundle; } private KnownNetwork.Builder buildKnownNetworkBuilder() { - return new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE).setSsid(SSID) - .setSecurityTypes(SECURITY_TYPES).setDeviceInfo(DEVICE_INFO); + KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE) + .setSsid(SSID).setDeviceInfo(DEVICE_INFO); + Arrays.stream(SECURITY_TYPES).forEach(builder::addSecurityType); + return builder; } } diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkTest.java index 266afcc9a1a6a..872dd2e632274 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/KnownNetworkTest.java @@ -23,18 +23,19 @@ import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TAB import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_CLOUD_SELF; import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_NEARBY_SELF; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static com.google.common.truth.Truth.assertThat; import android.os.Parcel; +import android.util.ArraySet; import androidx.test.filters.SmallTest; import org.junit.Test; +import java.util.Arrays; + /** - * Unit tests for {@link android.app.sharedconnectivity.KnownNetwork}. + * Unit tests for {@link KnownNetwork}. */ @SmallTest public class KnownNetworkTest { @@ -69,8 +70,8 @@ public class KnownNetworkTest { parcelR.setDataPosition(0); KnownNetwork fromParcel = KnownNetwork.CREATOR.createFromParcel(parcelR); - assertEquals(network, fromParcel); - assertEquals(network.hashCode(), fromParcel.hashCode()); + assertThat(fromParcel).isEqualTo(network); + assertThat(fromParcel.hashCode()).isEqualTo(network.hashCode()); } /** @@ -80,20 +81,21 @@ public class KnownNetworkTest { public void testEqualsOperation() { KnownNetwork network1 = buildKnownNetworkBuilder().build(); KnownNetwork network2 = buildKnownNetworkBuilder().build(); - assertEquals(network1, network2); + assertThat(network1).isEqualTo(network2); KnownNetwork.Builder builder = buildKnownNetworkBuilder() .setNetworkSource(NETWORK_SOURCE_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); builder = buildKnownNetworkBuilder().setSsid(SSID_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); - builder = buildKnownNetworkBuilder().setSecurityTypes(SECURITY_TYPES_1); - assertNotEquals(network1, builder.build()); + builder = buildKnownNetworkBuilder(); + Arrays.stream(SECURITY_TYPES_1).forEach(builder::addSecurityType); + assertThat(builder.build()).isNotEqualTo(network1); builder = buildKnownNetworkBuilder().setDeviceInfo(DEVICE_INFO_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); } /** @@ -102,14 +104,27 @@ public class KnownNetworkTest { @Test public void testGetMethods() { KnownNetwork network = buildKnownNetworkBuilder().build(); - assertEquals(network.getNetworkSource(), NETWORK_SOURCE); - assertEquals(network.getSsid(), SSID); - assertArrayEquals(network.getSecurityTypes(), SECURITY_TYPES); - assertEquals(network.getDeviceInfo(), DEVICE_INFO); + ArraySet securityTypes = new ArraySet<>(); + Arrays.stream(SECURITY_TYPES).forEach(securityTypes::add); + + assertThat(network.getNetworkSource()).isEqualTo(NETWORK_SOURCE); + assertThat(network.getSsid()).isEqualTo(SSID); + assertThat(network.getSecurityTypes()).containsExactlyElementsIn(securityTypes); + assertThat(network.getDeviceInfo()).isEqualTo(DEVICE_INFO); + } + + @Test + public void testHashCode() { + KnownNetwork network1 = buildKnownNetworkBuilder().build(); + KnownNetwork network2 = buildKnownNetworkBuilder().build(); + + assertThat(network1.hashCode()).isEqualTo(network2.hashCode()); } private KnownNetwork.Builder buildKnownNetworkBuilder() { - return new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE).setSsid(SSID) - .setSecurityTypes(SECURITY_TYPES).setDeviceInfo(DEVICE_INFO); + KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE) + .setSsid(SSID).setDeviceInfo(DEVICE_INFO); + Arrays.stream(SECURITY_TYPES).forEach(builder::addSecurityType); + return builder; } } diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java index cdb438f8b96b5..7c0a8b65813c6 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java @@ -22,11 +22,8 @@ import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TAB import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_NEARBY_SELF; import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_CELLULAR; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; + import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doThrow; @@ -49,6 +46,7 @@ import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import java.util.Arrays; import java.util.List; import java.util.concurrent.Executor; @@ -110,7 +108,7 @@ public class SharedConnectivityManagerTest { public void resourcesNotDefined() { when(mResources.getString(anyInt())).thenThrow(new Resources.NotFoundException()); - assertNull(SharedConnectivityManager.create(mContext)); + assertThat(SharedConnectivityManager.create(mContext)).isNull(); } /** @@ -183,7 +181,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertFalse(manager.unregisterCallback(mClientCallback)); + assertThat(manager.unregisterCallback(mClientCallback)).isFalse(); } @Test @@ -191,7 +189,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(mService); - assertFalse(manager.unregisterCallback(mClientCallback)); + assertThat(manager.unregisterCallback(mClientCallback)).isFalse(); } @Test @@ -201,7 +199,7 @@ public class SharedConnectivityManagerTest { manager.registerCallback(mExecutor, mClientCallback); - assertTrue(manager.unregisterCallback(mClientCallback)); + assertThat(manager.unregisterCallback(mClientCallback)).isTrue(); verify(mService).unregisterCallback(any()); } @@ -213,7 +211,7 @@ public class SharedConnectivityManagerTest { manager.registerCallback(mExecutor, mClientCallback); manager.unregisterCallback(mClientCallback); - assertFalse(manager.unregisterCallback(mClientCallback)); + assertThat(manager.unregisterCallback(mClientCallback)).isFalse(); } @Test @@ -224,7 +222,7 @@ public class SharedConnectivityManagerTest { manager.registerCallback(mExecutor, mClientCallback); manager.unregisterCallback(mClientCallback); - assertFalse(manager.unregisterCallback(mClientCallback)); + assertThat(manager.unregisterCallback(mClientCallback)).isFalse(); } @Test @@ -234,7 +232,7 @@ public class SharedConnectivityManagerTest { doThrow(new RemoteException()).when(mService).unregisterCallback(any()); - assertFalse(manager.unregisterCallback(mClientCallback)); + assertThat(manager.unregisterCallback(mClientCallback)).isFalse(); } /** @@ -294,7 +292,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertFalse(manager.connectTetherNetwork(network)); + assertThat(manager.connectTetherNetwork(network)).isFalse(); } @Test @@ -315,7 +313,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).connectTetherNetwork(network); - assertFalse(manager.connectTetherNetwork(network)); + assertThat(manager.connectTetherNetwork(network)).isFalse(); } /** @@ -327,7 +325,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertFalse(manager.disconnectTetherNetwork(network)); + assertThat(manager.disconnectTetherNetwork(network)).isFalse(); } @Test @@ -348,7 +346,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).disconnectTetherNetwork(any()); - assertFalse(manager.disconnectTetherNetwork(network)); + assertThat(manager.disconnectTetherNetwork(network)).isFalse(); } /** @@ -360,7 +358,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertFalse(manager.connectKnownNetwork(network)); + assertThat(manager.connectKnownNetwork(network)).isFalse(); } @Test @@ -381,7 +379,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).connectKnownNetwork(network); - assertFalse(manager.connectKnownNetwork(network)); + assertThat(manager.connectKnownNetwork(network)).isFalse(); } /** @@ -393,7 +391,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertFalse(manager.forgetKnownNetwork(network)); + assertThat(manager.forgetKnownNetwork(network)).isFalse(); } @Test @@ -414,7 +412,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).forgetKnownNetwork(network); - assertFalse(manager.forgetKnownNetwork(network)); + assertThat(manager.forgetKnownNetwork(network)).isFalse(); } /** @@ -425,7 +423,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertArrayEquals(List.of().toArray(), manager.getTetherNetworks().toArray()); + assertThat(manager.getKnownNetworks()).isEmpty(); } @Test @@ -434,18 +432,17 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).getTetherNetworks(); - assertArrayEquals(List.of().toArray(), manager.getTetherNetworks().toArray()); + assertThat(manager.getKnownNetworks()).isEmpty(); } @Test public void getTetherNetworks_shouldReturnNetworksList() throws RemoteException { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); List networks = List.of(buildTetherNetwork()); - List expected = List.of(buildTetherNetwork()); manager.setService(mService); when(mService.getTetherNetworks()).thenReturn(networks); - assertArrayEquals(expected.toArray(), manager.getTetherNetworks().toArray()); + assertThat(manager.getTetherNetworks()).containsExactly(buildTetherNetwork()); } @Test @@ -454,7 +451,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertArrayEquals(List.of().toArray(), manager.getKnownNetworks().toArray()); + assertThat(manager.getKnownNetworks()).isEmpty(); } @Test @@ -463,18 +460,17 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).getKnownNetworks(); - assertArrayEquals(List.of().toArray(), manager.getKnownNetworks().toArray()); + assertThat(manager.getKnownNetworks()).isEmpty(); } @Test public void getKnownNetworks_shouldReturnNetworksList() throws RemoteException { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); List networks = List.of(buildKnownNetwork()); - List expected = List.of(buildKnownNetwork()); manager.setService(mService); when(mService.getKnownNetworks()).thenReturn(networks); - assertArrayEquals(expected.toArray(), manager.getKnownNetworks().toArray()); + assertThat(manager.getKnownNetworks()).containsExactly(buildKnownNetwork()); } @Test @@ -482,7 +478,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertNull(manager.getSettingsState()); + assertThat(manager.getSettingsState()).isNull(); } @Test @@ -491,7 +487,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).getSettingsState(); - assertNull(manager.getSettingsState()); + assertThat(manager.getSettingsState()).isNull(); } @Test @@ -502,7 +498,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); when(mService.getSettingsState()).thenReturn(state); - assertEquals(state, manager.getSettingsState()); + assertThat(manager.getSettingsState()).isEqualTo(state); } @Test @@ -511,7 +507,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertNull(manager.getTetherNetworkConnectionStatus()); + assertThat(manager.getTetherNetworkConnectionStatus()).isNull(); } @Test @@ -521,7 +517,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).getTetherNetworkConnectionStatus(); - assertNull(manager.getTetherNetworkConnectionStatus()); + assertThat(manager.getTetherNetworkConnectionStatus()).isNull(); } @Test @@ -534,7 +530,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); when(mService.getTetherNetworkConnectionStatus()).thenReturn(status); - assertEquals(status, manager.getTetherNetworkConnectionStatus()); + assertThat(manager.getTetherNetworkConnectionStatus()).isEqualTo(status); } @Test @@ -543,7 +539,7 @@ public class SharedConnectivityManagerTest { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); manager.setService(null); - assertNull(manager.getKnownNetworkConnectionStatus()); + assertThat(manager.getKnownNetworkConnectionStatus()).isNull(); } @Test @@ -553,7 +549,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); doThrow(new RemoteException()).when(mService).getKnownNetworkConnectionStatus(); - assertNull(manager.getKnownNetworkConnectionStatus()); + assertThat(manager.getKnownNetworkConnectionStatus()).isNull(); } @Test @@ -566,7 +562,7 @@ public class SharedConnectivityManagerTest { manager.setService(mService); when(mService.getKnownNetworkConnectionStatus()).thenReturn(status); - assertEquals(status, manager.getKnownNetworkConnectionStatus()); + assertThat(manager.getKnownNetworkConnectionStatus()).isEqualTo(status); } private void setResources(@Mock Context context) { @@ -576,18 +572,20 @@ public class SharedConnectivityManagerTest { } private TetherNetwork buildTetherNetwork() { - return new TetherNetwork.Builder() + TetherNetwork.Builder builder = new TetherNetwork.Builder() .setDeviceId(DEVICE_ID) .setDeviceInfo(DEVICE_INFO) .setNetworkType(NETWORK_TYPE) .setNetworkName(NETWORK_NAME) - .setHotspotSsid(HOTSPOT_SSID) - .setHotspotSecurityTypes(HOTSPOT_SECURITY_TYPES) - .build(); + .setHotspotSsid(HOTSPOT_SSID); + Arrays.stream(HOTSPOT_SECURITY_TYPES).forEach(builder::addHotspotSecurityType); + return builder.build(); } private KnownNetwork buildKnownNetwork() { - return new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE).setSsid(SSID) - .setSecurityTypes(SECURITY_TYPES).build(); + KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE) + .setSsid(SSID).setDeviceInfo(DEVICE_INFO); + Arrays.stream(SECURITY_TYPES).forEach(builder::addSecurityType); + return builder.build(); } } diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsStateTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsStateTest.java index 3137c7268ae02..752b74905c97b 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsStateTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsStateTest.java @@ -16,8 +16,7 @@ package android.net.wifi.sharedconnectivity.app; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static com.google.common.truth.Truth.assertThat; import android.os.Parcel; @@ -26,7 +25,7 @@ import androidx.test.filters.SmallTest; import org.junit.Test; /** - * Unit tests for {@link android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState}. + * Unit tests for {@link SharedConnectivitySettingsState}. */ @SmallTest public class SharedConnectivitySettingsStateTest { @@ -51,8 +50,8 @@ public class SharedConnectivitySettingsStateTest { SharedConnectivitySettingsState fromParcel = SharedConnectivitySettingsState.CREATOR.createFromParcel(parcelR); - assertEquals(state, fromParcel); - assertEquals(state.hashCode(), fromParcel.hashCode()); + assertThat(fromParcel).isEqualTo(state); + assertThat(fromParcel.hashCode()).isEqualTo(state.hashCode()); } /** @@ -62,11 +61,11 @@ public class SharedConnectivitySettingsStateTest { public void testEqualsOperation() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder().build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder().build(); - assertEquals(state1, state2); + assertThat(state1).isEqualTo(state2); SharedConnectivitySettingsState.Builder builder = buildSettingsStateBuilder() .setInstantTetherEnabled(INSTANT_TETHER_STATE_1); - assertNotEquals(state1, builder.build()); + assertThat(builder.build()).isNotEqualTo(state1); } /** @@ -75,7 +74,15 @@ public class SharedConnectivitySettingsStateTest { @Test public void testGetMethods() { SharedConnectivitySettingsState state = buildSettingsStateBuilder().build(); - assertEquals(state.isInstantTetherEnabled(), INSTANT_TETHER_STATE); + assertThat(state.isInstantTetherEnabled()).isEqualTo(INSTANT_TETHER_STATE); + } + + @Test + public void testHashCode() { + SharedConnectivitySettingsState state1 = buildSettingsStateBuilder().build(); + SharedConnectivitySettingsState state2 = buildSettingsStateBuilder().build(); + + assertThat(state1.hashCode()).isEqualTo(state2.hashCode()); } private SharedConnectivitySettingsState.Builder buildSettingsStateBuilder() { diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkConnectionStatusTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkConnectionStatusTest.java index 1d9c2e6df38a4..0844364e7a63d 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkConnectionStatusTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkConnectionStatusTest.java @@ -23,8 +23,7 @@ import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE import static android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT; import static android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.CONNECTION_STATUS_TETHERING_TIMEOUT; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static com.google.common.truth.Truth.assertThat; import android.os.Bundle; import android.os.Parcel; @@ -33,8 +32,10 @@ import androidx.test.filters.SmallTest; import org.junit.Test; +import java.util.Arrays; + /** - * Unit tests for {@link android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus}. + * Unit tests for {@link TetherNetworkConnectionStatus}. */ @SmallTest public class TetherNetworkConnectionStatusTest { @@ -49,6 +50,7 @@ public class TetherNetworkConnectionStatusTest { private static final int[] HOTSPOT_SECURITY_TYPES = {SECURITY_TYPE_WEP, SECURITY_TYPE_EAP}; private static final long DEVICE_ID_1 = 111L; private static final String BUNDLE_KEY = "INT-KEY"; + private static final int BUNDLE_VALUE = 1; /** * Verifies parcel serialization/deserialization. @@ -68,8 +70,8 @@ public class TetherNetworkConnectionStatusTest { TetherNetworkConnectionStatus fromParcel = TetherNetworkConnectionStatus.CREATOR.createFromParcel(parcelR); - assertEquals(status, fromParcel); - assertEquals(status.hashCode(), fromParcel.hashCode()); + assertThat(fromParcel).isEqualTo(status); + assertThat(fromParcel.hashCode()).isEqualTo(status.hashCode()); } /** @@ -79,15 +81,15 @@ public class TetherNetworkConnectionStatusTest { public void testEqualsOperation() { TetherNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build(); TetherNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build(); - assertEquals(status2, status2); + assertThat(status1).isEqualTo(status2); TetherNetworkConnectionStatus.Builder builder = buildConnectionStatusBuilder() .setStatus(CONNECTION_STATUS_TETHERING_TIMEOUT); - assertNotEquals(status1, builder.build()); + assertThat(builder.build()).isNotEqualTo(status1); builder = buildConnectionStatusBuilder() .setTetherNetwork(buildTetherNetworkBuilder().setDeviceId(DEVICE_ID_1).build()); - assertNotEquals(status1, builder.build()); + assertThat(builder.build()).isNotEqualTo(status1); } /** @@ -96,13 +98,20 @@ public class TetherNetworkConnectionStatusTest { @Test public void testGetMethods() { TetherNetworkConnectionStatus status = buildConnectionStatusBuilder().build(); - assertEquals(status.getStatus(), CONNECTION_STATUS_ENABLING_HOTSPOT); - assertEquals(status.getTetherNetwork(), buildTetherNetworkBuilder().build()); - assertEquals(status.getExtras().getInt(BUNDLE_KEY), buildBundle().getInt(BUNDLE_KEY)); + assertThat(status.getStatus()).isEqualTo(CONNECTION_STATUS_ENABLING_HOTSPOT); + assertThat(status.getTetherNetwork()).isEqualTo(buildTetherNetworkBuilder().build()); + assertThat(status.getExtras().getInt(BUNDLE_KEY)).isEqualTo(BUNDLE_VALUE); + } + + @Test + public void testHashCode() { + TetherNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build(); + TetherNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build(); + + assertThat(status1.hashCode()).isEqualTo(status2.hashCode()); } private TetherNetworkConnectionStatus.Builder buildConnectionStatusBuilder() { - return new TetherNetworkConnectionStatus.Builder() .setStatus(CONNECTION_STATUS_ENABLING_HOTSPOT) .setTetherNetwork(buildTetherNetworkBuilder().build()) @@ -111,18 +120,19 @@ public class TetherNetworkConnectionStatusTest { private Bundle buildBundle() { Bundle bundle = new Bundle(); - bundle.putInt(BUNDLE_KEY, 1); + bundle.putInt(BUNDLE_KEY, BUNDLE_VALUE); return bundle; } private TetherNetwork.Builder buildTetherNetworkBuilder() { - return new TetherNetwork.Builder() + TetherNetwork.Builder builder = new TetherNetwork.Builder() .setDeviceId(DEVICE_ID) .setDeviceInfo(DEVICE_INFO) .setNetworkType(NETWORK_TYPE) .setNetworkName(NETWORK_NAME) .setHotspotSsid(HOTSPOT_SSID) - .setHotspotBssid(HOTSPOT_BSSID) - .setHotspotSecurityTypes(HOTSPOT_SECURITY_TYPES); + .setHotspotBssid(HOTSPOT_BSSID); + Arrays.stream(HOTSPOT_SECURITY_TYPES).forEach(builder::addHotspotSecurityType); + return builder; } } diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkTest.java index b01aec4ad1c1a..a50d76782c4ad 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/app/TetherNetworkTest.java @@ -24,18 +24,19 @@ import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TAB import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_CELLULAR; import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_WIFI; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static com.google.common.truth.Truth.assertThat; import android.os.Parcel; +import android.util.ArraySet; import androidx.test.filters.SmallTest; import org.junit.Test; +import java.util.Arrays; + /** - * Unit tests for {@link android.net.wifi.sharedconnectivity.app.TetherNetwork}. + * Unit tests for {@link TetherNetwork}. */ @SmallTest public class TetherNetworkTest { @@ -76,8 +77,8 @@ public class TetherNetworkTest { parcelR.setDataPosition(0); TetherNetwork fromParcel = TetherNetwork.CREATOR.createFromParcel(parcelR); - assertEquals(network, fromParcel); - assertEquals(network.hashCode(), fromParcel.hashCode()); + assertThat(fromParcel).isEqualTo(network); + assertThat(fromParcel.hashCode()).isEqualTo(network.hashCode()); } /** @@ -87,28 +88,31 @@ public class TetherNetworkTest { public void testEqualsOperation() { TetherNetwork network1 = buildTetherNetworkBuilder().build(); TetherNetwork network2 = buildTetherNetworkBuilder().build(); - assertEquals(network1, network2); + assertThat(network1).isEqualTo(network2); TetherNetwork.Builder builder = buildTetherNetworkBuilder().setDeviceId(DEVICE_ID_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); builder = buildTetherNetworkBuilder().setDeviceInfo(DEVICE_INFO_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); builder = buildTetherNetworkBuilder().setNetworkType(NETWORK_TYPE_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); builder = buildTetherNetworkBuilder().setNetworkName(NETWORK_NAME_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); builder = buildTetherNetworkBuilder().setHotspotSsid(HOTSPOT_SSID_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); builder = buildTetherNetworkBuilder().setHotspotBssid(HOTSPOT_BSSID_1); - assertNotEquals(network1, builder.build()); + assertThat(builder.build()).isNotEqualTo(network1); - builder = buildTetherNetworkBuilder().setHotspotSecurityTypes(HOTSPOT_SECURITY_TYPES_1); - assertNotEquals(network1, builder.build()); + builder = buildTetherNetworkBuilder(); + TetherNetwork.Builder builder1 = buildTetherNetworkBuilder(); + Arrays.stream(HOTSPOT_SECURITY_TYPES_1).forEach(builder1::addHotspotSecurityType); + + assertThat(builder1.build()).isNotEqualTo(builder.build()); } /** @@ -117,23 +121,35 @@ public class TetherNetworkTest { @Test public void testGetMethods() { TetherNetwork network = buildTetherNetworkBuilder().build(); - assertEquals(network.getDeviceId(), DEVICE_ID); - assertEquals(network.getDeviceInfo(), DEVICE_INFO); - assertEquals(network.getNetworkType(), NETWORK_TYPE); - assertEquals(network.getNetworkName(), NETWORK_NAME); - assertEquals(network.getHotspotSsid(), HOTSPOT_SSID); - assertEquals(network.getHotspotBssid(), HOTSPOT_BSSID); - assertArrayEquals(network.getHotspotSecurityTypes(), HOTSPOT_SECURITY_TYPES); + ArraySet securityTypes = new ArraySet<>(); + Arrays.stream(HOTSPOT_SECURITY_TYPES).forEach(securityTypes::add); + + assertThat(network.getDeviceId()).isEqualTo(DEVICE_ID); + assertThat(network.getDeviceInfo()).isEqualTo(DEVICE_INFO); + assertThat(network.getNetworkType()).isEqualTo(NETWORK_TYPE); + assertThat(network.getNetworkName()).isEqualTo(NETWORK_NAME); + assertThat(network.getHotspotSsid()).isEqualTo(HOTSPOT_SSID); + assertThat(network.getHotspotBssid()).isEqualTo(HOTSPOT_BSSID); + assertThat(network.getHotspotSecurityTypes()).containsExactlyElementsIn(securityTypes); + } + + @Test + public void testHashCode() { + TetherNetwork network1 = buildTetherNetworkBuilder().build(); + TetherNetwork network2 = buildTetherNetworkBuilder().build(); + + assertThat(network1.hashCode()).isEqualTo(network2.hashCode()); } private TetherNetwork.Builder buildTetherNetworkBuilder() { - return new TetherNetwork.Builder() + TetherNetwork.Builder builder = new TetherNetwork.Builder() .setDeviceId(DEVICE_ID) .setDeviceInfo(DEVICE_INFO) .setNetworkType(NETWORK_TYPE) .setNetworkName(NETWORK_NAME) .setHotspotSsid(HOTSPOT_SSID) - .setHotspotBssid(HOTSPOT_BSSID) - .setHotspotSecurityTypes(HOTSPOT_SECURITY_TYPES); + .setHotspotBssid(HOTSPOT_BSSID); + Arrays.stream(HOTSPOT_SECURITY_TYPES).forEach(builder::addHotspotSecurityType); + return builder; } } diff --git a/wifi/tests/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityServiceTest.java b/wifi/tests/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityServiceTest.java index a04526a61bcb6..81efa79f6df89 100644 --- a/wifi/tests/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityServiceTest.java +++ b/wifi/tests/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityServiceTest.java @@ -24,9 +24,8 @@ import static android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStat import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_CELLULAR; import static android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static com.google.common.truth.Truth.assertThat; + import static org.mockito.Mockito.when; import android.content.Context; @@ -52,11 +51,10 @@ import org.mockito.MockitoAnnotations; import java.util.List; /** - * Unit tests for {@link android.net.wifi.sharedconnectivity.service.SharedConnectivityService}. + * Unit tests for {@link SharedConnectivityService}. */ @SmallTest public class SharedConnectivityServiceTest { - private static final int[] SECURITY_TYPES = {SECURITY_TYPE_WEP, SECURITY_TYPE_EAP}; private static final DeviceInfo DEVICE_INFO = new DeviceInfo.Builder() .setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName("TEST_MODEL") .setConnectionStrength(2).setBatteryPercentage(50).build(); @@ -64,12 +62,13 @@ public class SharedConnectivityServiceTest { new TetherNetwork.Builder().setDeviceId(1).setDeviceInfo(DEVICE_INFO) .setNetworkType(NETWORK_TYPE_CELLULAR).setNetworkName("TEST_NETWORK") .setHotspotSsid("TEST_SSID").setHotspotBssid("TEST_BSSID") - .setHotspotSecurityTypes(SECURITY_TYPES).build(); + .addHotspotSecurityType(SECURITY_TYPE_WEP) + .addHotspotSecurityType(SECURITY_TYPE_EAP).build(); private static final List TETHER_NETWORKS = List.of(TETHER_NETWORK); private static final KnownNetwork KNOWN_NETWORK = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE_NEARBY_SELF) - .setSsid("TEST_SSID").setSecurityTypes(SECURITY_TYPES) - .setDeviceInfo(DEVICE_INFO).build(); + .setSsid("TEST_SSID").addSecurityType(SECURITY_TYPE_WEP) + .addSecurityType(SECURITY_TYPE_EAP).setDeviceInfo(DEVICE_INFO).build(); private static final List KNOWN_NETWORKS = List.of(KNOWN_NETWORK); private static final SharedConnectivitySettingsState SETTINGS_STATE = new SharedConnectivitySettingsState.Builder().setInstantTetherEnabled(true) @@ -111,7 +110,8 @@ public class SharedConnectivityServiceTest { @Test public void onBind_isNotNull() { SharedConnectivityService service = createService(); - assertNotNull(service.onBind(new Intent())); + + assertThat(service.onBind(new Intent())).isNotNull(); } @Test @@ -121,7 +121,9 @@ public class SharedConnectivityServiceTest { (ISharedConnectivityService.Stub) service.onBind(new Intent()); service.setTetherNetworks(TETHER_NETWORKS); - assertArrayEquals(TETHER_NETWORKS.toArray(), binder.getTetherNetworks().toArray()); + + assertThat(binder.getTetherNetworks()) + .containsExactlyElementsIn(List.copyOf(TETHER_NETWORKS)); } @Test @@ -131,7 +133,9 @@ public class SharedConnectivityServiceTest { (ISharedConnectivityService.Stub) service.onBind(new Intent()); service.setKnownNetworks(KNOWN_NETWORKS); - assertArrayEquals(KNOWN_NETWORKS.toArray(), binder.getKnownNetworks().toArray()); + + assertThat(binder.getKnownNetworks()) + .containsExactlyElementsIn(List.copyOf(KNOWN_NETWORKS)); } @Test @@ -141,7 +145,8 @@ public class SharedConnectivityServiceTest { (ISharedConnectivityService.Stub) service.onBind(new Intent()); service.setSettingsState(SETTINGS_STATE); - assertEquals(SETTINGS_STATE, binder.getSettingsState()); + + assertThat(binder.getSettingsState()).isEqualTo(SETTINGS_STATE); } @Test @@ -151,7 +156,9 @@ public class SharedConnectivityServiceTest { (ISharedConnectivityService.Stub) service.onBind(new Intent()); service.updateTetherNetworkConnectionStatus(TETHER_NETWORK_CONNECTION_STATUS); - assertEquals(TETHER_NETWORK_CONNECTION_STATUS, binder.getTetherNetworkConnectionStatus()); + + assertThat(binder.getTetherNetworkConnectionStatus()) + .isEqualTo(TETHER_NETWORK_CONNECTION_STATUS); } @Test @@ -161,7 +168,9 @@ public class SharedConnectivityServiceTest { (ISharedConnectivityService.Stub) service.onBind(new Intent()); service.updateKnownNetworkConnectionStatus(KNOWN_NETWORK_CONNECTION_STATUS); - assertEquals(KNOWN_NETWORK_CONNECTION_STATUS, binder.getKnownNetworkConnectionStatus()); + + assertThat(binder.getKnownNetworkConnectionStatus()) + .isEqualTo(KNOWN_NETWORK_CONNECTION_STATUS); } private SharedConnectivityService createService() {