11dc52f076977039a6bf112885feca6638c05cd29Peter Qiu/*
21dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * Copyright (C) 2016 The Android Open Source Project
31dc52f076977039a6bf112885feca6638c05cd29Peter Qiu *
41dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * Licensed under the Apache License, Version 2.0 (the "License");
51dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * you may not use this file except in compliance with the License.
61dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * You may obtain a copy of the License at
71dc52f076977039a6bf112885feca6638c05cd29Peter Qiu *
81dc52f076977039a6bf112885feca6638c05cd29Peter Qiu *      http://www.apache.org/licenses/LICENSE-2.0
91dc52f076977039a6bf112885feca6638c05cd29Peter Qiu *
101dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * Unless required by applicable law or agreed to in writing, software
111dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * distributed under the License is distributed on an "AS IS" BASIS,
121dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * See the License for the specific language governing permissions and
141dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * limitations under the License.
151dc52f076977039a6bf112885feca6638c05cd29Peter Qiu */
161dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
171dc52f076977039a6bf112885feca6638c05cd29Peter Qiupackage com.android.server.wifi.hotspot2.anqp;
181dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
191dc52f076977039a6bf112885feca6638c05cd29Peter Qiuimport static org.junit.Assert.assertEquals;
201dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
211dc52f076977039a6bf112885feca6638c05cd29Peter Qiuimport android.test.suitebuilder.annotation.SmallTest;
221dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
231dc52f076977039a6bf112885feca6638c05cd29Peter Qiuimport org.junit.Test;
241dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
251dc52f076977039a6bf112885feca6638c05cd29Peter Qiuimport java.nio.ByteBuffer;
261dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
271dc52f076977039a6bf112885feca6638c05cd29Peter Qiu/**
281dc52f076977039a6bf112885feca6638c05cd29Peter Qiu * Unit tests for {@link com.android.server.wifi.hotspot2.anqp.RawByteElement}.
291dc52f076977039a6bf112885feca6638c05cd29Peter Qiu */
301dc52f076977039a6bf112885feca6638c05cd29Peter Qiu@SmallTest
311dc52f076977039a6bf112885feca6638c05cd29Peter Qiupublic class RawByteElementTest {
321dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    private static final Constants.ANQPElementType TEST_ELEMENT_ID =
331dc52f076977039a6bf112885feca6638c05cd29Peter Qiu            Constants.ANQPElementType.HSOSUProviders;
341dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
351dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    /**
361dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     * Verify that a RawByteElement with an empty payload will be returned when parsing
371dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     * an empty buffer.
381dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     *
391dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     * @throws Exception
401dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     */
411dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    @Test
421dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    public void parseEmptyBuffer() throws Exception {
431dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        byte[] data = new byte[0];
441dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        RawByteElement actual = RawByteElement.parse(TEST_ELEMENT_ID, ByteBuffer.wrap(data));
451dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        RawByteElement expected = new RawByteElement(TEST_ELEMENT_ID, data);
461dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        assertEquals(expected, actual);
471dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    }
481dc52f076977039a6bf112885feca6638c05cd29Peter Qiu
491dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    /**
501dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     * Verify that the expected RawByteElement will be returned when parsing a non-empty
511dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     * buffer.
521dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     *
531dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     * @throws Exception
541dc52f076977039a6bf112885feca6638c05cd29Peter Qiu     */
551dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    @Test
561dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    public void parseNonEmptyBuffer() throws Exception {
571dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        byte[] data = new byte[10];
581dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        RawByteElement actual = RawByteElement.parse(TEST_ELEMENT_ID, ByteBuffer.wrap(data));
591dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        RawByteElement expected = new RawByteElement(TEST_ELEMENT_ID, data);
601dc52f076977039a6bf112885feca6638c05cd29Peter Qiu        assertEquals(expected, actual);
611dc52f076977039a6bf112885feca6638c05cd29Peter Qiu    }
621dc52f076977039a6bf112885feca6638c05cd29Peter Qiu}
63