1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.server.wifi; 18 19import static org.mockito.Mockito.*; 20 21import android.os.IBinder; 22import android.os.RemoteException; 23import android.test.suitebuilder.annotation.SmallTest; 24 25import com.android.internal.app.IBatteryStats; 26 27import static org.junit.Assert.*; 28 29import org.junit.Before; 30import org.junit.Test; 31 32import org.mockito.Mock; 33import org.mockito.MockitoAnnotations; 34 35/** 36 * Unit tests for {@link com.android.server.wifi.WifiConfigStoreData}. 37 */ 38@SmallTest 39public class WifiMulticastLockManagerTest { 40 @Mock WifiMulticastLockManager.FilterController mHandler; 41 @Mock IBatteryStats mBatteryStats; 42 WifiMulticastLockManager mManager; 43 44 /** 45 * Initialize |WifiMulticastLockManager| instance before each test. 46 */ 47 @Before 48 public void setUp() throws Exception { 49 MockitoAnnotations.initMocks(this); 50 mManager = new WifiMulticastLockManager(mHandler, mBatteryStats); 51 } 52 53 /** 54 * Test behavior when no locks are held. 55 */ 56 @Test 57 public void noLocks() { 58 assertFalse(mManager.isMulticastEnabled()); 59 mManager.initializeFiltering(); 60 verify(mHandler, times(1)).startFilteringMulticastPackets(); 61 } 62 63 /** 64 * Test behavior when one lock is aquired then released. 65 */ 66 @Test 67 public void oneLock() throws RemoteException { 68 IBinder binder = mock(IBinder.class); 69 mManager.acquireLock(binder, "Test"); 70 assertTrue(mManager.isMulticastEnabled()); 71 verify(mHandler).stopFilteringMulticastPackets(); 72 mManager.initializeFiltering(); 73 verify(mHandler, times(0)).startFilteringMulticastPackets(); 74 verify(mBatteryStats).noteWifiMulticastEnabled(anyInt()); 75 verify(mBatteryStats, times(0)).noteWifiMulticastDisabled(anyInt()); 76 77 mManager.releaseLock(); 78 verify(mBatteryStats).noteWifiMulticastDisabled(anyInt()); 79 assertFalse(mManager.isMulticastEnabled()); 80 } 81} 82 83