[PhysicalChannelConfig] Add testcase for PhysicalChannelConfig
Test: atest CtsTelephonyTestCases:android.telephony.cts.PhysicalChannelConfigTest
Bug: 162300897
Change-Id: I8b7a55878a7ffc3075a14334e5432427beff785b
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/PhysicalChannelConfigTest.java b/tests/tests/telephony/current/src/android/telephony/cts/PhysicalChannelConfigTest.java
new file mode 100644
index 0000000..cc534f7
--- /dev/null
+++ b/tests/tests/telephony/current/src/android/telephony/cts/PhysicalChannelConfigTest.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2020 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.cts;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.telephony.AccessNetworkConstants;
+import android.telephony.PhysicalChannelConfig;
+import android.telephony.ServiceState;
+import android.telephony.TelephonyManager;
+
+import org.junit.Before;
+import org.junit.Test;
+
+
+public class PhysicalChannelConfigTest {
+
+ private static final int[] CONTEXT_IDS = new int[] {123, 555, 1, 0};
+ private static final int BAND = 1;
+ private static final int CONNECTION_STATUS = PhysicalChannelConfig.CONNECTION_PRIMARY_SERVING;
+ private static final int CELL_BANDWIDTH = 12345;
+ private static final int CHANNEL_NUMBER = 1234;
+ private static final int FREQUENCY_RANGE = 1;
+ private static final int PHYSICAL_CELL_ID = 502;
+ private static final int PHYSICAL_INVALID_CELL_ID = 1008;
+ private static final int NETWORK_TYPE_NR = TelephonyManager.NETWORK_TYPE_NR;
+ private static final int NETWORK_TYPE_LTE = TelephonyManager.NETWORK_TYPE_LTE;
+ private static final int NETWORK_TYPE_UMTS = TelephonyManager.NETWORK_TYPE_UMTS;
+ private static final int NETWORK_TYPE_GSM = TelephonyManager.NETWORK_TYPE_GSM;
+
+
+ private PhysicalChannelConfig mPhysicalChannelConfig;
+
+ @Before
+ public void setUp() throws Exception {
+ mPhysicalChannelConfig = new PhysicalChannelConfig.Builder()
+ .setPhysicalCellId(PHYSICAL_CELL_ID)
+ .setNetworkType(NETWORK_TYPE_LTE)
+ .setCellConnectionStatus(CONNECTION_STATUS)
+ .setCellBandwidthDownlinkKhz(CELL_BANDWIDTH)
+ .setCellBandwidthUplinkKhz(CELL_BANDWIDTH)
+ .setContextIds(CONTEXT_IDS)
+ .setFrequencyRange(FREQUENCY_RANGE)
+ .setDownlinkChannelNumber(CHANNEL_NUMBER)
+ .setUplinkChannelNumber(CHANNEL_NUMBER)
+ .setBand(BAND)
+ .build();
+ }
+
+ @Test
+ public void testInvalidPhysicalChannelConfig() {
+ try {
+ mPhysicalChannelConfig = new PhysicalChannelConfig.Builder()
+ .setNetworkType(NETWORK_TYPE_LTE)
+ .setPhysicalCellId(PHYSICAL_INVALID_CELL_ID)
+ .setCellConnectionStatus(CONNECTION_STATUS)
+ .setCellBandwidthDownlinkKhz(CELL_BANDWIDTH)
+ .setCellBandwidthUplinkKhz(CELL_BANDWIDTH)
+ .setContextIds(CONTEXT_IDS)
+ .setFrequencyRange(FREQUENCY_RANGE)
+ .setDownlinkChannelNumber(CHANNEL_NUMBER)
+ .setUplinkChannelNumber(CHANNEL_NUMBER)
+ .setBand(BAND)
+ .build();
+ fail("Physical cell Id: 1008 is over limit");
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ @Test
+ public void testGetCellBandwidthDownlinkKhz() {
+ assertEquals(CELL_BANDWIDTH, mPhysicalChannelConfig.getCellBandwidthDownlinkKhz());
+ }
+
+ @Test
+ public void testGetCellBandwidthUplinkKhz() {
+ assertEquals(CELL_BANDWIDTH, mPhysicalChannelConfig.getCellBandwidthUplinkKhz());
+ }
+
+ @Test
+ public void testGetConnectionStatus() {
+ assertEquals(CONNECTION_STATUS, mPhysicalChannelConfig.getConnectionStatus());
+ }
+
+ @Test
+ public void testGetNetworkType() {
+ assertEquals(NETWORK_TYPE_LTE, mPhysicalChannelConfig.getNetworkType());
+ }
+
+ @Test
+ public void testGetPhysicalCellId() {
+ assertEquals(PHYSICAL_CELL_ID, mPhysicalChannelConfig.getPhysicalCellId());
+ }
+
+ @Test
+ public void testGetBand() {
+ assertEquals(BAND, mPhysicalChannelConfig.getBand());
+ }
+
+ @Test
+ public void testGetDownlinkChannelNumber() {
+ assertEquals(CHANNEL_NUMBER, mPhysicalChannelConfig.getDownlinkChannelNumber());
+ }
+
+ @Test
+ public void testGetUpChannelNumber() {
+ assertEquals(CHANNEL_NUMBER, mPhysicalChannelConfig.getUplinkChannelNumber());
+ }
+
+ @Test
+ public void testGetContextId() {
+ assertEquals(CONTEXT_IDS, mPhysicalChannelConfig.getContextIds());
+ }
+
+ @Test
+ public void testFrequencyRange() {
+ assertEquals(FREQUENCY_RANGE, mPhysicalChannelConfig.getFrequencyRange());
+ }
+
+ @Test
+ public void testFrequencyRangeForNrArfcnFromBand() {
+ mPhysicalChannelConfig = new PhysicalChannelConfig.Builder()
+ .setPhysicalCellId(PHYSICAL_CELL_ID)
+ .setNetworkType(NETWORK_TYPE_NR)
+ .setCellConnectionStatus(CONNECTION_STATUS)
+ .setCellBandwidthDownlinkKhz(CELL_BANDWIDTH)
+ .setCellBandwidthUplinkKhz(CELL_BANDWIDTH)
+ .setContextIds(CONTEXT_IDS)
+ .setDownlinkChannelNumber(4500)
+ .setUplinkChannelNumber(4500)
+ .setBand(AccessNetworkConstants.NgranBands.BAND_79)
+ .build();
+
+ assertThat(mPhysicalChannelConfig.getFrequencyRange()).isEqualTo(
+ ServiceState.FREQUENCY_RANGE_HIGH);
+ }
+
+ @Test
+ public void testFrequencyRangeForNrArfcnFromChannelNumber() {
+ mPhysicalChannelConfig = new PhysicalChannelConfig.Builder()
+ .setPhysicalCellId(PHYSICAL_CELL_ID)
+ .setNetworkType(NETWORK_TYPE_NR)
+ .setCellConnectionStatus(CONNECTION_STATUS)
+ .setCellBandwidthDownlinkKhz(CELL_BANDWIDTH)
+ .setCellBandwidthUplinkKhz(CELL_BANDWIDTH)
+ .setContextIds(CONTEXT_IDS)
+ .setDownlinkChannelNumber(4500)
+ .setUplinkChannelNumber(4500)
+ .setBand(100)
+ .build();
+
+ assertThat(mPhysicalChannelConfig.getFrequencyRange()).isEqualTo(
+ ServiceState.FREQUENCY_RANGE_LOW);
+ }
+}