ANQPDataTest.java revision f1b7517b04fedc6fd81f34a8cb84ce583b8ea63e
1f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu/* 2f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * Copyright (C) 2016 The Android Open Source Project 3f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * 4f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * Licensed under the Apache License, Version 2.0 (the "License"); 5f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * you may not use this file except in compliance with the License. 6f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * You may obtain a copy of the License at 7f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * 8f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * http://www.apache.org/licenses/LICENSE-2.0 9f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * 10f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * Unless required by applicable law or agreed to in writing, software 11f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * distributed under the License is distributed on an "AS IS" BASIS, 12f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * See the License for the specific language governing permissions and 14f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * limitations under the License. 15f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu */ 16f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 17f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiupackage com.android.server.wifi.hotspot2; 18f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 19f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport static org.junit.Assert.assertFalse; 20f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport static org.junit.Assert.assertTrue; 21f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport static org.mockito.Mockito.when; 22f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport static org.mockito.MockitoAnnotations.initMocks; 23f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 24f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport android.test.suitebuilder.annotation.SmallTest; 25f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 26f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport com.android.server.wifi.Clock; 27f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport com.android.server.wifi.hotspot2.anqp.ANQPElement; 28f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport com.android.server.wifi.hotspot2.anqp.Constants; 29f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 30f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport org.junit.Before; 31f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport org.junit.Test; 32f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport org.mockito.Mock; 33f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 34f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiuimport java.util.Map; 35f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 36f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu/** 37f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * Unit tests for {@link com.android.server.wifi.hotspot2.ANQPData}. 38f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * 39f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * TODO(b/33000864): add more test once the ANQP elements cleanup are completed, which will 40f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * allow easy construction of ANQP elements for testing. 41f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu */ 42f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu@SmallTest 43f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiupublic class ANQPDataTest { 44f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu @Mock Clock mClock; 45f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 46f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu /** 47f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * Sets up test. 48f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu */ 49f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu @Before 50f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu public void setUp() throws Exception { 51f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu initMocks(this); 52f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu // Returning the initial timestamp. 53f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu when(mClock.getElapsedSinceBootMillis()).thenReturn(0L); 54f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu } 55f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 56f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu /** 57f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * Verify creation of ANQPData with null elements. 58f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * 59f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * @throws Exception 60f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu */ 61f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu @Test 62f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu public void createWithNullElements() throws Exception { 63f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu ANQPData data = new ANQPData(mClock, null); 64f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu Map<Constants.ANQPElementType, ANQPElement> elements = data.getElements(); 65f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu assertTrue(elements.isEmpty()); 66f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu } 67f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu 68f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu /** 69f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * Verify the data expiration behavior. 70f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * 71f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu * @throws Exception 72f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu */ 73f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu @Test 74f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu public void verifyExpiration() throws Exception { 75f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu ANQPData data = new ANQPData(mClock, null); 76f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu assertFalse(data.expired(ANQPData.DATA_LIFETIME_MILLISECONDS - 1)); 77f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu assertTrue(data.expired(ANQPData.DATA_LIFETIME_MILLISECONDS)); 78f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu } 79f1b7517b04fedc6fd81f34a8cb84ce583b8ea63ePeter Qiu} 80