• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.settings.connecteddevice
18 
19 import android.bluetooth.BluetoothAdapter
20 import android.content.Context
21 import android.platform.test.flag.junit.SetFlagsRule
22 import androidx.test.core.app.ApplicationProvider
23 import androidx.test.ext.junit.runners.AndroidJUnit4
24 import com.google.common.truth.Truth.assertThat
25 import org.junit.Before
26 import org.junit.Rule
27 import org.junit.Test
28 import org.junit.runner.RunWith
29 import org.mockito.kotlin.spy
30 import org.mockito.kotlin.verify
31 import org.mockito.kotlin.whenever
32 
33 @RunWith(AndroidJUnit4::class)
34 class BluetoothPreferenceTest {
35     @get:Rule val setFlagsRule = SetFlagsRule()
36     private val context: Context = ApplicationProvider.getApplicationContext()
37     private lateinit var bluetoothAdapter: BluetoothAdapter
38     private lateinit var bluetoothPreference: BluetoothPreference
39 
40     @Before
setUpnull41     fun setUp() {
42         bluetoothAdapter = spy(BluetoothAdapter.getDefaultAdapter())
43         whenever(bluetoothAdapter.state).thenReturn(BluetoothAdapter.STATE_ON)
44         bluetoothPreference =
45             BluetoothPreference(BluetoothPreference.createDataStore(context, bluetoothAdapter))
46     }
47 
48     @Test
isEnabled_bluetoothOn_returnTruenull49     fun isEnabled_bluetoothOn_returnTrue() {
50         assertThat(bluetoothPreference.isEnabled(context)).isTrue()
51     }
52 
53     @Test
isEnabled_bluetoothTurningOn_returnFalsenull54     fun isEnabled_bluetoothTurningOn_returnFalse() {
55         whenever(bluetoothAdapter.state).thenReturn(BluetoothAdapter.STATE_TURNING_ON)
56 
57         assertThat(bluetoothPreference.isEnabled(context)).isFalse()
58     }
59 
60     @Test
storageSetOff_turnOffnull61     fun storageSetOff_turnOff() {
62         bluetoothPreference.storage(context).setBoolean(bluetoothPreference.key, false)
63 
64         verify(bluetoothAdapter).disable()
65     }
66 
67     @Test
storageSetOn_turnOnnull68     fun storageSetOn_turnOn() {
69         bluetoothPreference.storage(context).setBoolean(bluetoothPreference.key, true)
70 
71         verify(bluetoothAdapter).enable()
72     }
73 }
74