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