diff options
Diffstat (limited to 'tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel')
3 files changed, 18 insertions, 98 deletions
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt index ca6f8c79..46afe35d 100644 --- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt +++ b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt @@ -16,11 +16,15 @@ package com.android.customization.picker.clock.ui.viewmodel import androidx.test.filters.SmallTest +import androidx.test.platform.app.InstrumentationRegistry +import com.android.customization.module.logging.TestThemesUserEventLogger import com.android.customization.picker.clock.data.repository.ClockPickerRepository import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer import com.android.customization.picker.clock.shared.model.ClockMetadataModel +import com.android.customization.picker.clock.ui.FakeClockViewFactory +import com.android.customization.picker.clock.ui.view.ClockViewFactory import com.android.wallpaper.testing.FakeSnapshotStore import com.android.wallpaper.testing.collectLastValue import com.google.common.truth.Truth.assertThat @@ -48,8 +52,7 @@ class ClockCarouselViewModelTest { FakeClockPickerRepository( listOf( ClockMetadataModel( - clockId = "clock0", - name = "clock0", + clockId = FakeClockPickerRepository.CLOCK_ID_0, isSelected = true, selectedColorId = null, colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS, @@ -58,13 +61,16 @@ class ClockCarouselViewModelTest { ) ) } + private lateinit var testDispatcher: CoroutineDispatcher private lateinit var underTest: ClockCarouselViewModel private lateinit var interactor: ClockPickerInteractor + private lateinit var clockViewFactory: ClockViewFactory @Before fun setUp() { testDispatcher = StandardTestDispatcher() + clockViewFactory = FakeClockViewFactory() Dispatchers.setMain(testDispatcher) } @@ -78,7 +84,10 @@ class ClockCarouselViewModelTest { underTest = ClockCarouselViewModel( getClockPickerInteractor(repositoryWithMultipleClocks), - testDispatcher + backgroundDispatcher = testDispatcher, + clockViewFactory = clockViewFactory, + resources = InstrumentationRegistry.getInstrumentation().targetContext.resources, + logger = TestThemesUserEventLogger(), ) val observedSelectedIndex = collectLastValue(underTest.selectedIndex) advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS) diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt deleted file mode 100644 index 19a704c9..00000000 --- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2023 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.customization.picker.clock.ui.viewmodel - -import androidx.test.filters.SmallTest -import androidx.test.platform.app.InstrumentationRegistry -import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository -import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor -import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer -import com.android.customization.picker.clock.shared.ClockSize -import com.android.customization.picker.clock.shared.model.ClockMetadataModel -import com.android.wallpaper.testing.FakeSnapshotStore -import com.android.wallpaper.testing.collectLastValue -import com.google.common.truth.Truth.assertThat -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.resetMain -import kotlinx.coroutines.test.runTest -import kotlinx.coroutines.test.setMain -import org.junit.After -import org.junit.Before -import org.junit.Test -import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner - -@OptIn(ExperimentalCoroutinesApi::class) -@SmallTest -@RunWith(RobolectricTestRunner::class) -class ClockSectionViewModelTest { - - private lateinit var clockColorMap: Map<String, ClockColorViewModel> - private lateinit var interactor: ClockPickerInteractor - private lateinit var underTest: ClockSectionViewModel - - @Before - fun setUp() { - val testDispatcher = StandardTestDispatcher() - Dispatchers.setMain(testDispatcher) - val context = InstrumentationRegistry.getInstrumentation().targetContext - clockColorMap = ClockColorViewModel.getPresetColorMap(context.resources) - interactor = - ClockPickerInteractor( - repository = FakeClockPickerRepository(), - snapshotRestorer = { - ClockPickerSnapshotRestorer(interactor = interactor).apply { - runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) } - } - }, - ) - underTest = - ClockSectionViewModel( - context, - interactor, - ) - } - - @After - fun tearDown() { - Dispatchers.resetMain() - } - - @Test - fun setSelectedClock() = runTest { - val colorGrey = clockColorMap.values.first() - val observedSelectedClockColorAndSizeText = - collectLastValue(underTest.selectedClockColorAndSizeText) - - interactor.setClockColor( - colorGrey.colorId, - ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS, - ClockSettingsViewModel.blendColorWithTone( - colorGrey.color, - colorGrey.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS), - ) - ) - interactor.setClockSize(ClockSize.DYNAMIC) - - assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Grey, dynamic") - } -} diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt index f09e9779..d3ae9cba 100644 --- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt +++ b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt @@ -1,8 +1,10 @@ package com.android.customization.picker.clock.ui.viewmodel import android.content.Context +import android.stats.style.StyleEnums import androidx.test.filters.SmallTest import androidx.test.platform.app.InstrumentationRegistry +import com.android.customization.module.logging.TestThemesUserEventLogger import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer @@ -35,6 +37,7 @@ import org.robolectric.RobolectricTestRunner @RunWith(RobolectricTestRunner::class) class ClockSettingsViewModelTest { + private val logger = TestThemesUserEventLogger() private lateinit var context: Context private lateinit var testScope: TestScope private lateinit var colorPickerInteractor: ColorPickerInteractor @@ -81,6 +84,7 @@ class ClockSettingsViewModelTest { context = context, clockPickerInteractor = clockPickerInteractor, colorPickerInteractor = colorPickerInteractor, + logger = logger, getIsReactiveToTone = getIsReactiveToTone, ) .create(ClockSettingsViewModel::class.java) @@ -186,9 +190,11 @@ class ClockSettingsViewModelTest { val observedClockSize = collectLastValue(underTest.selectedClockSize) underTest.setClockSize(ClockSize.DYNAMIC) assertThat(observedClockSize()).isEqualTo(ClockSize.DYNAMIC) + assertThat(logger.getLoggedClockSize()).isEqualTo(StyleEnums.CLOCK_SIZE_DYNAMIC) underTest.setClockSize(ClockSize.SMALL) assertThat(observedClockSize()).isEqualTo(ClockSize.SMALL) + assertThat(logger.getLoggedClockSize()).isEqualTo(StyleEnums.CLOCK_SIZE_SMALL) } @Test |