diff --git a/example/src/test/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStoreTest.kt b/example/src/test/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStoreTest.kt index 2997a7bc54..1c6c1a0353 100644 --- a/example/src/test/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStoreTest.kt +++ b/example/src/test/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStoreTest.kt @@ -235,6 +235,27 @@ class BlazeCampaignsStoreTest { verify(blazeCampaignsDao).replaceObjectives(any()) } + @Test + fun `when observing campaign objectives, then return data from DB`() = test { + whenever(blazeCampaignsDao.observeObjectives(any())).thenReturn( + flowOf( + List(4) { + BlazeCampaignObjectiveEntity( + id = it.toString(), + title = "Title $it", + description = "Description $it", + locale = "en" + ) + } + ) + ) + + val objectives = store.observeBlazeCampaignObjectives().first() + + assertThat(objectives).isNotNull + assertThat(objectives.size).isEqualTo(4) + } + @Test fun `when fetching targeting locations, then locations are returned`() = test { whenever(creationRestClient.fetchTargetingLocations(any(), any(), any())).thenReturn( diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStore.kt b/fluxc/src/main/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStore.kt index 9cb4b98622..f30ef72e60 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStore.kt +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/store/blaze/BlazeCampaignsStore.kt @@ -144,6 +144,10 @@ class BlazeCampaignsStore @Inject constructor( } } + fun observeBlazeCampaignObjectives( + locale: String = Locale.getDefault().language + ) = campaignsDao.observeObjectives(locale).map { objectives -> objectives.map { it.toDomainModel() } } + suspend fun fetchBlazeTargetingLocations( site: SiteModel, query: String,