Skip to content

Commit

Permalink
Merge pull request #2852 from wordpress-mobile/issue/9767-manual-taxe…
Browse files Browse the repository at this point in the history
…s-m3-add-taxrates-room

[Manual Taxes M3] Adding TaxRates table and data sync in DB
  • Loading branch information
samiuelson authored Sep 14, 2023
2 parents 2ebe64c + 3cdacc3 commit f8f31bf
Show file tree
Hide file tree
Showing 11 changed files with 1,448 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package org.wordpress.android.fluxc.wc.taxes

import org.wordpress.android.fluxc.JsonLoaderUtils.jsonFileAs
import org.wordpress.android.fluxc.model.taxes.WCTaxClassModel
import org.wordpress.android.fluxc.network.rest.wpcom.wc.taxes.TaxRateDto
import org.wordpress.android.fluxc.network.rest.wpcom.wc.taxes.WCTaxRestClient.TaxClassApiResponse
import org.wordpress.android.fluxc.network.rest.wpcom.wc.taxes.WCTaxRestClient.TaxRateModel

object TaxTestUtils {
private fun generateSampleTaxClass(
Expand Down Expand Up @@ -36,6 +36,6 @@ object TaxTestUtils {

fun generateSampleTaxRateApiResponse() =
"wc/tax-rate-response.json"
.jsonFileAs(Array<TaxRateModel>::class.java)
.jsonFileAs(Array<TaxRateDto>::class.java)
}

Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import org.wordpress.android.fluxc.network.rest.wpcom.wc.WooResult
import org.wordpress.android.fluxc.network.rest.wpcom.wc.taxes.WCTaxRestClient
import org.wordpress.android.fluxc.persistence.SiteSqlUtils
import org.wordpress.android.fluxc.persistence.WellSqlConfig
import org.wordpress.android.fluxc.persistence.dao.TaxRateDao
import org.wordpress.android.fluxc.store.WCTaxStore
import org.wordpress.android.fluxc.test
import org.wordpress.android.fluxc.tools.initCoroutineEngine
Expand All @@ -35,6 +36,7 @@ class WCTaxStoreTest {
private val errorSite = SiteModel().apply { id = 123 }
private val mapper = WCTaxClassMapper()
private lateinit var store: WCTaxStore
private val taxRateDao = mock<TaxRateDao>()

private val sampleTaxClassList = TaxTestUtils.generateSampleTaxClassApiResponse()
private val error = WooError(INVALID_RESPONSE, NETWORK_ERROR, "Invalid site ID")
Expand All @@ -53,7 +55,8 @@ class WCTaxStoreTest {
store = WCTaxStore(
restClient,
initCoroutineEngine(),
mapper
mapper,
taxRateDao
)

// Insert the site into the db so it's available later when fetching tax classes
Expand Down Expand Up @@ -105,7 +108,7 @@ class WCTaxStoreTest {
val result = store.fetchTaxRateList(site, 1, 100)
assertThat(this).isNotNull
assertThat(result.isError).isFalse
assertThat(result.model).isEqualTo(taxRateApiResponse?.toList())
assertThat(result).isEqualTo(WooResult(false))
}
}

Expand Down
Loading

0 comments on commit f8f31bf

Please sign in to comment.