1ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang/*
2ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * Copyright (C) 2014 The Android Open Source Project
3ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang *
4ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * Licensed under the Apache License, Version 2.0 (the "License");
5ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * you may not use this file except in compliance with the License.
6ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * You may obtain a copy of the License at
7ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang *
8ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang *      http://www.apache.org/licenses/LICENSE-2.0
9ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang *
10ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * Unless required by applicable law or agreed to in writing, software
11ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * distributed under the License is distributed on an "AS IS" BASIS,
12ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * See the License for the specific language governing permissions and
14ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * limitations under the License.
15ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang */
16ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
17ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wangpackage android.bluetooth.le;
18ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
19ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wangimport android.test.suitebuilder.annotation.SmallTest;
20ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
21ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wangimport junit.framework.TestCase;
22ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
23ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang/**
24ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang * Test for Bluetooth LE {@link ScanSettings}.
25ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang */
26ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wangpublic class ScanSettingsTest extends TestCase {
27ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
28ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang    @SmallTest
29ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang    public void testCallbackType() {
30ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        ScanSettings.Builder builder = new ScanSettings.Builder();
31ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        builder.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES);
32ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        builder.setCallbackType(ScanSettings.CALLBACK_TYPE_FIRST_MATCH);
33ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        builder.setCallbackType(ScanSettings.CALLBACK_TYPE_MATCH_LOST);
34ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        builder.setCallbackType(
35ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang                ScanSettings.CALLBACK_TYPE_FIRST_MATCH | ScanSettings.CALLBACK_TYPE_MATCH_LOST);
36ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        try {
37ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            builder.setCallbackType(
38ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang                    ScanSettings.CALLBACK_TYPE_ALL_MATCHES | ScanSettings.CALLBACK_TYPE_MATCH_LOST);
39ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            fail("should have thrown IllegalArgumentException!");
40ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        } catch (IllegalArgumentException e) {
41ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            // nothing to do
42ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        }
43ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
44ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        try {
45ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            builder.setCallbackType(
46ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang                    ScanSettings.CALLBACK_TYPE_ALL_MATCHES |
47ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang                    ScanSettings.CALLBACK_TYPE_FIRST_MATCH);
48ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            fail("should have thrown IllegalArgumentException!");
49ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        } catch (IllegalArgumentException e) {
50ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            // nothing to do
51ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        }
52ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
53ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        try {
54ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            builder.setCallbackType(
55ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang                    ScanSettings.CALLBACK_TYPE_ALL_MATCHES |
56ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang                    ScanSettings.CALLBACK_TYPE_FIRST_MATCH |
57ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang                    ScanSettings.CALLBACK_TYPE_MATCH_LOST);
58ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            fail("should have thrown IllegalArgumentException!");
59ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        } catch (IllegalArgumentException e) {
60ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang            // nothing to do
61ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang        }
62ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang
63ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang    }
64ec64dbfbc0c7ecf41e17f3872c2d0109096f1c7aWei Wang}
65