Skip to content

Commit

Permalink
Merge pull request #2947 from wordpress-mobile/feature/blaze-ad-sugge…
Browse files Browse the repository at this point in the history
…stions

Add Blaze ad suggestion network/persistence layer
  • Loading branch information
JorgeMucientes committed Jan 25, 2024
2 parents 03f3d9c + 0c33636 commit bf45b08
Show file tree
Hide file tree
Showing 6 changed files with 1,145 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import org.wordpress.android.fluxc.network.rest.wpcom.blaze.CampaignStats
import org.wordpress.android.fluxc.network.rest.wpcom.blaze.ContentConfig
import org.wordpress.android.fluxc.network.rest.wpcom.blaze.FakeBlazeTargetingRestClient
import org.wordpress.android.fluxc.persistence.blaze.BlazeCampaignsDao
import org.wordpress.android.fluxc.persistence.blaze.BlazeCampaignsDao.BlazeAdSuggestionEntity
import org.wordpress.android.fluxc.persistence.blaze.BlazeCampaignsDao.BlazeCampaignEntity
import org.wordpress.android.fluxc.persistence.blaze.BlazeTargetingDao
import org.wordpress.android.fluxc.persistence.blaze.BlazeTargetingDeviceEntity
Expand Down Expand Up @@ -338,4 +339,39 @@ class BlazeCampaignsStoreTest {
assertThat(devices).isNotNull
assertThat(devices.size).isEqualTo(10)
}

@Test
fun `when fetching targeting ad suggestions, then persist data in DB`() = test {
whenever(targetingRestClient.fetchBlazeAdSuggestions(any(), any())).thenReturn(
BlazeTargetingPayload(
generateAdSuggestions()
)
)

store.fetchBlazeAdSuggestions(siteModel, 1L)

verify(blazeCampaignsDao).replaceAdSuggestions(any())
}

@Test
fun `when getting ad suggestions, then return data from DB`() = test {
whenever(blazeCampaignsDao.getBlazeAdSuggestions(any(), any())).thenReturn(
generateAdSuggestions()
)

val adSuggestions = store.getBlazeAdSuggestions(siteModel, 1L)

assertThat(adSuggestions).isNotNull
assertThat(adSuggestions.size).isEqualTo(3)
}

private fun generateAdSuggestions() = List(3) {
BlazeAdSuggestionEntity(
id = it.toString(),
siteId = 1L,
productId = 1L,
tagLine = "Tag line $it",
description = "Description $it"
)
}
}
Loading

0 comments on commit bf45b08

Please sign in to comment.