Skip to content

Commit

Permalink
Fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hichamboushaba committed Oct 9, 2024
1 parent 7fd9747 commit 342fd28
Show file tree
Hide file tree
Showing 6 changed files with 305 additions and 295 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import org.assertj.core.api.Assertions.assertThat
import org.junit.Test
import org.wordpress.android.fluxc.model.WCProductModel
import org.wordpress.android.fluxc.model.metadata.WCMetaData
import java.math.BigDecimal

@OptIn(ExperimentalCoroutinesApi::class)
class SubscriptionDetailsMapperTest : BaseUnitTest() {

@Test
fun `when metadata is valid then a SubscriptionDetails is returned`() {
val result = SubscriptionDetailsMapper.toAppModel(successMetadata)
Expand Down Expand Up @@ -112,77 +112,74 @@ class SubscriptionDetailsMapperTest : BaseUnitTest() {
* trialLength = 2,
* oneTimeShipping = yes
*/
private val successMetadata = """ [ {
"id": 5182,
"key": "_subscription_payment_sync_date",
"value": "0"
},
{
"id": 5183,
"key": "_subscription_price",
"value": "60"
},
{
"id": 5187,
"key": "_subscription_trial_length",
"value": "2"
},
{
"id": 5188,
"key": "_subscription_sign_up_fee",
"value": "5"
},
{
"id": 5189,
"key": "_subscription_period",
"value": "month"
},
{
"id": 5190,
"key": "_subscription_period_interval",
"value": "1"
},
{
"id": 5191,
"key": "_subscription_length",
"value": "0"
},
{
"id": 5192,
"key": "_subscription_trial_period",
"value": "day"
},
{
"id": 5193,
"key": "_subscription_limit",
"value": "no"
},
{
"id": 5194,
"key": "_subscription_one_time_shipping",
"value": "yes"
} ]
"""
private val successMetadata = listOf(
WCMetaData(
id = 5182,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_PAYMENT_SYNC_DATE,
value = "0"
),
WCMetaData(
id = 5183,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_PRICE,
value = "60"
),
WCMetaData(
id = 5187,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_TRIAL_LENGTH,
value = "2"
),
WCMetaData(
id = 5188,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_SIGN_UP_FEE,
value = "5"
),
WCMetaData(
id = 5189,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_PERIOD,
value = "month"
),
WCMetaData(
id = 5190,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_PERIOD_INTERVAL,
value = "1"
),
WCMetaData(
id = 5191,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_LENGTH,
value = "0"
),
WCMetaData(
id = 5192,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_TRIAL_PERIOD,
value = "day"
),
WCMetaData(
id = 5194,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_ONE_TIME_SHIPPING,
value = "yes"
)
)

/**
* Metadata with no subscription key
*/
private val noSubscriptionKeysMetadata = """ [ {
"id": 5182,
"key": "sync_date",
"value": "0"
},
{
"id": 5183,
"key": "price",
"value": "60"
},
{
"id": 5187,
"key": "trial_length",
"value": "2"
}]
"""
private val noSubscriptionKeysMetadata = listOf(
WCMetaData(
id = 5182,
key = "sync_date",
value = "0"
),
WCMetaData(
id = 5183,
key = "price",
value = "60"
),
WCMetaData(
id = 5187,
key = "trial_length",
value = "2"
)
)

/**
* price = 60,
Expand All @@ -194,25 +191,26 @@ class SubscriptionDetailsMapperTest : BaseUnitTest() {
* trialLength = 2,
* oneTimeShipping =
*/
private val successMetadataPartial = """ [ {
"id": 5182,
"key": "_subscription_payment_sync_date",
"value": "0"
},
{
"id": 5183,
"key": "_subscription_price",
"value": "60"
},
{
"id": 5187,
"key": "_subscription_trial_length",
"value": "2"
},
{
"id": 5188,
"key": "_subscription_sign_up_fee",
"value": "5"
}]
"""
private val successMetadataPartial = listOf(
WCMetaData(
id = 5182,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_PAYMENT_SYNC_DATE,
value = "0"
),
WCMetaData(
id = 5183,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_PRICE,
value = "60"
),
WCMetaData(
id = 5187,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_TRIAL_LENGTH,
value = "2"
),
WCMetaData(
id = 5188,
key = WCProductModel.SubscriptionMetadataKeys.SUBSCRIPTION_SIGN_UP_FEE,
value = "5"
)
)
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.woocommerce.android.ui.products.details

import com.woocommerce.android.model.ProductAggregate
import com.woocommerce.android.ui.customfields.CustomFieldsRepository
import com.woocommerce.android.ui.products.ProductNavigationTarget
import com.woocommerce.android.ui.products.ProductTestUtils
Expand Down Expand Up @@ -39,7 +40,7 @@ class ProductDetailBottomSheetBuilderTest : BaseUnitTest() {
whenever(customFieldsRepository.hasDisplayableCustomFields(any())).thenReturn(true)

val product = ProductTestUtils.generateProduct(productId = 1L)
val result = sut.buildBottomSheetList(product)
val result = sut.buildBottomSheetList(ProductAggregate(product))

assertThat(result).noneMatch {
it.type == ProductDetailBottomSheetBuilder.ProductDetailBottomSheetType.CUSTOM_FIELDS
Expand All @@ -51,7 +52,7 @@ class ProductDetailBottomSheetBuilderTest : BaseUnitTest() {
whenever(customFieldsRepository.hasDisplayableCustomFields(any())).thenReturn(false)

val product = ProductTestUtils.generateProduct(productId = 1L)
val result = sut.buildBottomSheetList(product)
val result = sut.buildBottomSheetList(ProductAggregate(product))

val customFieldsItem = result.single {
it.type == ProductDetailBottomSheetBuilder.ProductDetailBottomSheetType.CUSTOM_FIELDS
Expand All @@ -62,7 +63,7 @@ class ProductDetailBottomSheetBuilderTest : BaseUnitTest() {
@Test
fun `when product is not saved in server, then hide the custom fields item`() = testBlocking {
val product = ProductTestUtils.generateProduct(productId = ProductDetailViewModel.DEFAULT_ADD_NEW_PRODUCT_ID)
val result = sut.buildBottomSheetList(product)
val result = sut.buildBottomSheetList(ProductAggregate(product))

assertThat(result).noneMatch {
it.type == ProductDetailBottomSheetBuilder.ProductDetailBottomSheetType.CUSTOM_FIELDS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.woocommerce.android.ui.products.details

import com.woocommerce.android.R
import com.woocommerce.android.model.Product
import com.woocommerce.android.model.ProductAggregate
import com.woocommerce.android.tools.SelectedSite
import com.woocommerce.android.ui.blaze.IsBlazeEnabled
import com.woocommerce.android.ui.customfields.CustomFieldsRepository
Expand Down Expand Up @@ -83,7 +84,7 @@ class ProductDetailCardBuilderTest : BaseUnitTest() {
height = 0F
)

val cards = sut.buildPropertyCards(productStub, "")
val cards = sut.buildPropertyCards(ProductAggregate(productStub), "")
Assertions.assertThat(cards).isNotEmpty

cards.find { it.type == ProductPropertyCard.Type.SECONDARY }
Expand All @@ -110,7 +111,7 @@ class ProductDetailCardBuilderTest : BaseUnitTest() {
)

var foundAttributesCard = false
val cards = sut.buildPropertyCards(productStub, "")
val cards = sut.buildPropertyCards(ProductAggregate(productStub), "")
Assertions.assertThat(cards).isNotEmpty

cards.find { it.type == ProductPropertyCard.Type.SECONDARY }
Expand All @@ -134,7 +135,7 @@ class ProductDetailCardBuilderTest : BaseUnitTest() {
)

var foundQuantityRulesCard = false
val cards = sut.buildPropertyCards(productStub, "")
val cards = sut.buildPropertyCards(ProductAggregate(productStub), "")
Assertions.assertThat(cards).isNotEmpty

cards.find { it.type == ProductPropertyCard.Type.SECONDARY }
Expand All @@ -156,7 +157,7 @@ class ProductDetailCardBuilderTest : BaseUnitTest() {
whenever(customFieldsRepository.hasDisplayableCustomFields(any())) doReturn false

productStub = ProductTestUtils.generateProduct(productId = 1L)
val cards = sut.buildPropertyCards(productStub, "")
val cards = sut.buildPropertyCards(ProductAggregate(productStub), "")

val properties = cards.first { it.type == ProductPropertyCard.Type.SECONDARY }.properties
val customFieldsCard = properties.find {
Expand All @@ -171,7 +172,7 @@ class ProductDetailCardBuilderTest : BaseUnitTest() {
whenever(customFieldsRepository.hasDisplayableCustomFields(any())) doReturn true

productStub = ProductTestUtils.generateProduct(productId = 1L)
val cards = sut.buildPropertyCards(productStub, "")
val cards = sut.buildPropertyCards(ProductAggregate(productStub), "")

val properties = cards.first { it.type == ProductPropertyCard.Type.SECONDARY }.properties
val customFieldsCard = properties.find {
Expand All @@ -184,7 +185,7 @@ class ProductDetailCardBuilderTest : BaseUnitTest() {
@Test
fun `when a new is not saved on the server, then hide the custom fields card`() = testBlocking {
productStub = ProductTestUtils.generateProduct(productId = ProductDetailViewModel.DEFAULT_ADD_NEW_PRODUCT_ID)
val cards = sut.buildPropertyCards(productStub, "")
val cards = sut.buildPropertyCards(ProductAggregate(productStub), "")

val properties = cards.first { it.type == ProductPropertyCard.Type.SECONDARY }.properties
val customFieldsCard = properties.find {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.woocommerce.android.analytics.AnalyticsTracker
import com.woocommerce.android.analytics.AnalyticsTrackerWrapper
import com.woocommerce.android.media.MediaFilesRepository
import com.woocommerce.android.media.ProductImagesServiceWrapper
import com.woocommerce.android.model.ProductAggregate
import com.woocommerce.android.model.RequestResult
import com.woocommerce.android.model.VariantOption
import com.woocommerce.android.tools.NetworkStatus
Expand Down Expand Up @@ -92,7 +93,7 @@ class ProductDetailViewModelGenerateVariationFlowTest : BaseUnitTest() {
doReturn(true).whenever(networkStatus).isConnected()

productRepository = mock {
onBlocking { fetchAndGetProduct(PRODUCT_REMOTE_ID) } doReturn product
onBlocking { fetchAndGetProductAggregate(PRODUCT_REMOTE_ID) } doReturn ProductAggregate(product)
}

variationRepository = mock {
Expand Down
Loading

0 comments on commit 342fd28

Please sign in to comment.