| /* |
| * Copyright (C) 2015 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 com.android.settingslib.wifi; |
| |
| import android.net.wifi.ScanResult; |
| import android.net.wifi.WifiConfiguration; |
| import android.net.wifi.WifiInfo; |
| |
| import com.android.settingslib.BaseTest; |
| import com.android.settingslib.wifi.AccessPoint.AccessPointListener; |
| |
| import org.mockito.ArgumentCaptor; |
| import org.mockito.Mockito; |
| |
| // TODO: Add some coverage |
| public class AccessPointTest extends BaseTest { |
| |
| private static final String TEST_SSID = "TestSsid"; |
| private static final int NETWORK_ID = 0; |
| |
| private AccessPointListener mAccessPointListener; |
| private AccessPoint mAccessPoint; |
| |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| mAccessPointListener = Mockito.mock(AccessPointListener.class); |
| |
| WifiConfiguration wifiConfig = new WifiConfiguration(); |
| wifiConfig.networkId = NETWORK_ID; |
| wifiConfig.SSID = TEST_SSID; |
| |
| mAccessPoint = new AccessPoint(mContext, wifiConfig); |
| mAccessPoint.setListener(mAccessPointListener); |
| } |
| |
| public void testOnLevelChanged() { |
| ScanResult result = new ScanResult(); |
| result.capabilities = ""; |
| result.SSID = TEST_SSID; |
| |
| // Give it a level. |
| result.level = WifiTrackerTest.levelToRssi(1); |
| mAccessPoint.update(result); |
| verifyOnLevelChangedCallback(1); |
| |
| // Give it a better level. |
| result.level = WifiTrackerTest.levelToRssi(2); |
| mAccessPoint.update(result); |
| verifyOnLevelChangedCallback(1); |
| } |
| |
| public void testOnAccessPointChangedCallback() { |
| WifiInfo wifiInfo = Mockito.mock(WifiInfo.class); |
| Mockito.when(wifiInfo.getNetworkId()).thenReturn(NETWORK_ID); |
| |
| mAccessPoint.update(wifiInfo, null); |
| verifyOnAccessPointsCallback(1); |
| |
| mAccessPoint.update(null, null); |
| verifyOnAccessPointsCallback(2); |
| |
| ScanResult result = new ScanResult(); |
| result.capabilities = ""; |
| result.SSID = TEST_SSID; |
| mAccessPoint.update(result); |
| verifyOnAccessPointsCallback(3); |
| } |
| |
| private void verifyOnLevelChangedCallback(int num) { |
| ArgumentCaptor<AccessPoint> accessPoint = ArgumentCaptor.forClass(AccessPoint.class); |
| Mockito.verify(mAccessPointListener, Mockito.atLeast(num)) |
| .onLevelChanged(accessPoint.capture()); |
| assertEquals(mAccessPoint, accessPoint.getValue()); |
| } |
| |
| private void verifyOnAccessPointsCallback(int num) { |
| ArgumentCaptor<AccessPoint> accessPoint = ArgumentCaptor.forClass(AccessPoint.class); |
| Mockito.verify(mAccessPointListener, Mockito.atLeast(num)) |
| .onAccessPointChanged(accessPoint.capture()); |
| assertEquals(mAccessPoint, accessPoint.getValue()); |
| } |
| |
| } |