package org.robolectric.shadows; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; import org.robolectric.TestRunners; import static android.content.Context.WIFI_SERVICE; import static android.os.Build.VERSION_CODES.LOLLIPOP; import static org.assertj.core.api.Assertions.assertThat; import static org.robolectric.RuntimeEnvironment.application; import static org.robolectric.Shadows.shadowOf; @RunWith(TestRunners.MultiApiSelfTest.class) public class ShadowWifiInfoTest { @Test public void shouldReturnMacAddress() { WifiManager wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getMacAddress()) .isEqualTo("02:00:00:00:00:00"); // WifiInfo.DEFAULT_MAC_ADDRESS shadowOf(wifiInfo).setMacAddress("mac address"); wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getMacAddress()).isEqualTo("mac address"); } @Test public void shouldReturnSSID() { WifiManager wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getSSID()).isEqualTo("<unknown ssid>"); // WifiSsid.NONE shadowOf(wifiInfo).setSSID("SSID"); wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getSSID()).isEqualTo("SSID"); } @Test public void shouldReturnBSSID() { WifiManager wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getBSSID()).isEqualTo(null); shadowOf(wifiInfo).setBSSID("BSSID"); wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getBSSID()).isEqualTo("BSSID"); } @Test public void shouldReturnRssi() { WifiManager wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getRssi()).isEqualTo(-127); // WifiInfo.INVALID_RSSI shadowOf(wifiInfo).setRssi(10); wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getRssi()).isEqualTo(10); } @Test public void shouldReturnLinkSpeed() { WifiManager wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getLinkSpeed()).isEqualTo(-1); shadowOf(wifiInfo).setLinkSpeed(10); wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getLinkSpeed()).isEqualTo(10); } @Test @Config(minSdk = LOLLIPOP) public void shouldReturnFrequency() { WifiManager wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getFrequency()).isEqualTo(-1); shadowOf(wifiInfo).setFrequency(10); wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getFrequency()).isEqualTo(10); } @Test public void shouldReturnNetworkId() { WifiManager wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getNetworkId()).isEqualTo(-1); shadowOf(wifiInfo).setNetworkId(10); wifiManager = (WifiManager) application.getSystemService(WIFI_SERVICE); wifiInfo = wifiManager.getConnectionInfo(); assertThat(wifiInfo.getNetworkId()).isEqualTo(10); } }