summaryrefslogtreecommitdiff
path: root/robotests/src/com/android/networkrecommendation/PlatformTestObjectFactory.java
blob: fcc93557e982a33681580076c5ad17ecf7a2de8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.networkrecommendation;

import android.net.NetworkKey;
import android.net.WifiKey;
import android.net.wifi.ScanResult;

/** Creates platform objects which can be used for testing. */
public class PlatformTestObjectFactory {

    private PlatformTestObjectFactory() {} // do not instantiate

    /** Use reflection to create a ScanResult. */
    public static ScanResult createScanResult(
            String unquotedSsid, String bssid, int level, boolean open) {
        try {
            ScanResult scanResult = ScanResult.class.getConstructor().newInstance();
            scanResult.capabilities = open ? "[ESS]" : "[WEP]";
            scanResult.SSID = unquotedSsid;
            scanResult.BSSID = bssid;
            scanResult.level = level;
            return scanResult;
        } catch (Exception e) {
            return null;
        }
    }

    /** Use reflection to create an open network ScanResult. */
    public static ScanResult createOpenNetworkScanResult(String ssid, String bssid) {
        return createScanResult(ssid, bssid, 1, true);
    }

    /** Use reflection to create a closed network ScanResult. */
    public static ScanResult createClosedNetworkScanResult(String unquotedSsid, String bssid) {
        return createScanResult(unquotedSsid, bssid, 1, false);
    }
    /** Create a NetworkKey based on the given Wifi SSID/BSSID. */
    public static NetworkKey createNetworkKey(String ssid, String bssid) {
        return new NetworkKey(new WifiKey(ssid, bssid));
    }
}