1fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein/* 2fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * Copyright (C) 2016 The Android Open Source Project 3fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * 4fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * Licensed under the Apache License, Version 2.0 (the "License"); 5fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * you may not use this file except in compliance with the License. 6fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * You may obtain a copy of the License at 7fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * 8fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * http://www.apache.org/licenses/LICENSE-2.0 9fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * 10fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * Unless required by applicable law or agreed to in writing, software 11fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * distributed under the License is distributed on an "AS IS" BASIS, 12fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * See the License for the specific language governing permissions and 14fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * limitations under the License. 15fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein */ 16fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 17fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinpackage com.android.server.wifi; 18fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 19fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinimport static org.mockito.Mockito.*; 20fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 21fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinimport android.content.Context; 22fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinimport android.test.suitebuilder.annotation.SmallTest; 23fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 24fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinimport org.junit.Before; 25fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinimport org.junit.Test; 26fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinimport org.mockito.Mock; 27fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinimport org.mockito.MockitoAnnotations; 28fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 29fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein/** Unit tests for {@link WifiInjector}. */ 30fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein@SmallTest 31fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silbersteinpublic class WifiInjectorTest { 32fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 33fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein @Mock private Context mContext; 34fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein private WifiInjector mInjector; 35fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 36fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein /** 37fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * Method to initialize mocks for tests. 38fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein */ 39fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein @Before 40fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein public void setUp() throws Exception { 41fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein MockitoAnnotations.initMocks(this); 42fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein } 43fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 44fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein /** 45fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * Test that attempting to get the instance of the WifiInjector throws an IllegalStateException 46fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * if it is not initialized. 47fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein */ 48fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein @Test(expected = IllegalStateException.class) 49fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein public void testGetInstanceWithUninitializedWifiInjector() { 50fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein WifiInjector.getInstance(); 51fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein } 52fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 53fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein /** 54fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * Test that attempting to call the WifiInjector a second time throws an exception. 55fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein */ 56fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein @Test(expected = IllegalStateException.class) 57fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein public void testShouldNotBeAbleToCreateMoreThanOneWifiInjector() { 58fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein try { 59fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein WifiInjector willThrowNullPointerException = new WifiInjector(mContext); 60fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein } catch (NullPointerException e) { 61fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein } 62fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein WifiInjector shouldThrowIllegalStateException = new WifiInjector(mContext); 63fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein } 64fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein 65fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein /** 66fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein * Test that a WifiInjector cannot be created with a null Context. 67fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein */ 68fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein @Test(expected = IllegalStateException.class) 69fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein public void testShouldNotCreateWifiInjectorWithNullContext() { 70fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein new WifiInjector(null); 71fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein } 72fca64fc16ec43befde2e7ac7c3bfd84ced1f7778Rebecca Silberstein} 73