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