106b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi/*
206b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * Copyright (C) 2017 The Android Open Source Project
306b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi *
406b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * Licensed under the Apache License, Version 2.0 (the "License");
506b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * you may not use this file except in compliance with the License.
606b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * You may obtain a copy of the License at
706b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi *
806b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi *      http://www.apache.org/licenses/LICENSE-2.0
906b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi *
1006b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * Unless required by applicable law or agreed to in writing, software
1106b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * distributed under the License is distributed on an "AS IS" BASIS,
1206b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1306b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * See the License for the specific language governing permissions and
1406b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * limitations under the License.
1506b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi */
1606b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
1706b1f2b1737a63967bef19801d7f013812dba70fHugo Benichipackage android.net.ip;
1806b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
1906b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport static org.junit.Assert.assertEquals;
2006b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport static org.junit.Assert.fail;
2184714bffa1a58fe1f6a114ae015f8e38be46f32dErik Klineimport static org.mockito.Mockito.anyString;
2284714bffa1a58fe1f6a114ae015f8e38be46f32dErik Klineimport static org.mockito.Mockito.when;
2306b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
248bd00d5f7ced34a45173e45537dc3100d62ee6a5Erik Klineimport android.net.util.InterfaceParams;
2506b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport android.net.util.SharedLog;
2684714bffa1a58fe1f6a114ae015f8e38be46f32dErik Klineimport android.os.Handler;
2784714bffa1a58fe1f6a114ae015f8e38be46f32dErik Klineimport android.os.Looper;
2806b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport android.support.test.filters.SmallTest;
2906b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport android.support.test.runner.AndroidJUnit4;
3006b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
3106b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport org.junit.Before;
3206b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport org.junit.Test;
3306b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport org.junit.runner.RunWith;
3406b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport org.mockito.Mock;
3506b1f2b1737a63967bef19801d7f013812dba70fHugo Benichiimport org.mockito.MockitoAnnotations;
3606b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
3706b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
3806b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi/**
3906b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi * Tests for IpReachabilityMonitor.
4006b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi */
4106b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi@RunWith(AndroidJUnit4.class)
4206b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi@SmallTest
4306b1f2b1737a63967bef19801d7f013812dba70fHugo Benichipublic class IpReachabilityMonitorTest {
4406b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
4506b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    @Mock IpReachabilityMonitor.Callback mCallback;
4606b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    @Mock IpReachabilityMonitor.Dependencies mDependencies;
4706b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    @Mock SharedLog mLog;
4884714bffa1a58fe1f6a114ae015f8e38be46f32dErik Kline    Handler mHandler;
4906b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
5006b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    @Before
5106b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    public void setUp() {
5206b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi        MockitoAnnotations.initMocks(this);
5384714bffa1a58fe1f6a114ae015f8e38be46f32dErik Kline        when(mLog.forSubComponent(anyString())).thenReturn(mLog);
5484714bffa1a58fe1f6a114ae015f8e38be46f32dErik Kline        mHandler = new Handler(Looper.getMainLooper());
5506b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    }
5606b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
5706b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    IpReachabilityMonitor makeMonitor() {
588bd00d5f7ced34a45173e45537dc3100d62ee6a5Erik Kline        final InterfaceParams ifParams = new InterfaceParams("fake0", 1, null);
598bd00d5f7ced34a45173e45537dc3100d62ee6a5Erik Kline        return new IpReachabilityMonitor(ifParams, mHandler, mLog, mCallback, null, mDependencies);
6006b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    }
6106b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi
6206b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    @Test
6306b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    public void testNothing() {
6406b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi        IpReachabilityMonitor monitor = makeMonitor();
6506b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi    }
6606b1f2b1737a63967bef19801d7f013812dba70fHugo Benichi}
67