@@ -42,7 +42,7 @@ import org.wordpress.android.fluxc.persistence.WCAndroidDatabase
4242import org.wordpress.android.fluxc.persistence.WellSqlConfig
4343import org.wordpress.android.fluxc.persistence.dao.OrderMetaDataDao
4444import org.wordpress.android.fluxc.persistence.dao.OrderNotesDao
45- import org.wordpress.android.fluxc.persistence.dao.OrdersDao
45+ import org.wordpress.android.fluxc.persistence.dao.OrdersDaoDecorator
4646import org.wordpress.android.fluxc.store.InsertOrder
4747import org.wordpress.android.fluxc.store.WCOrderFetcher
4848import org.wordpress.android.fluxc.store.WCOrderStore
@@ -65,7 +65,7 @@ import kotlin.test.assertTrue
6565class WCOrderStoreTest {
6666 private val orderFetcher: WCOrderFetcher = mock()
6767 private val orderRestClient: OrderRestClient = mock()
68- lateinit var ordersDao : OrdersDao
68+ lateinit var ordersDaoDecorator : OrdersDaoDecorator
6969 lateinit var orderNotesDao: OrderNotesDao
7070 lateinit var orderMetaDataDao: OrderMetaDataDao
7171 lateinit var orderStore: WCOrderStore
@@ -79,16 +79,17 @@ class WCOrderStoreTest {
7979 .allowMainThreadQueries()
8080 .build()
8181
82- ordersDao = database.ordersDao
82+ val dispatcher = Dispatcher ()
83+ ordersDaoDecorator = OrdersDaoDecorator (dispatcher, database.ordersDao)
8384 orderNotesDao = database.orderNotesDao
8485 orderMetaDataDao = database.orderMetaDataDao
8586
8687 orderStore = WCOrderStore (
87- dispatcher = Dispatcher () ,
88+ dispatcher = dispatcher ,
8889 wcOrderRestClient = orderRestClient,
8990 wcOrderFetcher = orderFetcher,
9091 coroutineEngine = initCoroutineEngine(),
91- ordersDao = ordersDao ,
92+ ordersDaoDecorator = ordersDaoDecorator ,
9293 orderNotesDao = orderNotesDao,
9394 orderMetaDataDao = orderMetaDataDao,
9495 insertOrder = insertOrder
@@ -107,10 +108,10 @@ class WCOrderStoreTest {
107108 fun testSimpleInsertionAndRetrieval () {
108109 runBlocking {
109110 val orderModel = OrderTestUtils .generateSampleOrder(42 )
110- ordersDao .insertOrUpdateOrder(orderModel)
111+ ordersDaoDecorator .insertOrUpdateOrder(orderModel)
111112 val site = SiteModel ().apply { id = orderModel.localSiteId.value }
112113
113- val storedOrders = ordersDao .getOrdersForSite(site.localId())
114+ val storedOrders = ordersDaoDecorator .getOrdersForSite(site.localId())
114115 assertEquals(1 , storedOrders.size)
115116 assertEquals(42 , storedOrders[0 ].orderId)
116117 assertEquals(orderModel, storedOrders[0 ])
@@ -138,16 +139,22 @@ class WCOrderStoreTest {
138139 }
139140 }
140141
141- private fun OrderEntity.saveToDb (): OrderEntity {
142- ordersDao .insertOrUpdateOrder(this )
142+ private suspend fun OrderEntity.saveToDb (): OrderEntity {
143+ ordersDaoDecorator .insertOrUpdateOrder(this )
143144 return copy()
144145 }
145146
147+ private fun insertOrUpdate (item : OrderEntity ) {
148+ runBlocking {
149+ ordersDaoDecorator.insertOrUpdateOrder(item)
150+ }
151+ }
152+
146153 @Test
147154 fun testGetOrderByLocalId () {
148155 runBlocking {
149156 val sampleOrder = OrderTestUtils .generateSampleOrder(3 )
150- ordersDao .insertOrUpdateOrder(sampleOrder)
157+ ordersDaoDecorator .insertOrUpdateOrder(sampleOrder)
151158
152159 val site = SiteModel ().apply { this .id = sampleOrder.localSiteId.value }
153160
@@ -164,7 +171,7 @@ class WCOrderStoreTest {
164171 runBlocking {
165172 val customStatus = " chronologically-incongruous"
166173 val customStatusOrder = OrderTestUtils .generateSampleOrder(3 , customStatus)
167- ordersDao .insertOrUpdateOrder(customStatusOrder)
174+ ordersDaoDecorator .insertOrUpdateOrder(customStatusOrder)
168175
169176 val site = SiteModel ().apply { id = customStatusOrder.localSiteId.value }
170177
@@ -184,7 +191,7 @@ class WCOrderStoreTest {
184191 @Test
185192 fun testUpdateOrderStatus () = runBlocking {
186193 val orderModel = OrderTestUtils .generateSampleOrder(42 )
187- ordersDao .insertOrUpdateOrder(orderModel)
194+ ordersDaoDecorator .insertOrUpdateOrder(orderModel)
188195 val site = SiteModel ().apply { id = orderModel.localSiteId.value }
189196 val result = RemoteOrderPayload .Updating (orderModel.copy(status = CoreOrderStatus .REFUNDED .value), site)
190197 whenever(orderRestClient.updateOrderStatus(orderModel, site, CoreOrderStatus .REFUNDED .value))
@@ -284,15 +291,15 @@ class WCOrderStoreTest {
284291 val site = SiteModel ().apply { id = 8 }
285292
286293 val upToDate = setupUpToDateOrders(site)
287- upToDate.orders.filterNotNull().forEach(ordersDao::insertOrUpdateOrder )
288- assertThat(ordersDao .getOrdersForSite(site.localId())).hasSize(10 )
294+ upToDate.orders.filterNotNull().forEach(::insertOrUpdate )
295+ assertThat(ordersDaoDecorator .getOrdersForSite(site.localId())).hasSize(10 )
289296
290297 val outdated = setupOutdatedOrders(site)
291- outdated.orders.filterNotNull().forEach(ordersDao::insertOrUpdateOrder )
292- assertThat(ordersDao .getOrdersForSite(site.localId())).hasSize(20 )
298+ outdated.orders.filterNotNull().forEach(::insertOrUpdate )
299+ assertThat(ordersDaoDecorator .getOrdersForSite(site.localId())).hasSize(20 )
293300
294301 val missing = setupMissingOrders()
295- assertThat(ordersDao .getOrdersForSite(site.localId())).hasSize(20 )
302+ assertThat(ordersDaoDecorator .getOrdersForSite(site.localId())).hasSize(20 )
296303
297304 orderStore.onAction(
298305 newFetchedOrderListAction(
@@ -321,7 +328,7 @@ class WCOrderStoreTest {
321328 whenever(orderRestClient.updateOrderStatus(orderModel, site, CoreOrderStatus .COMPLETED .value))
322329 .thenReturn(result)
323330
324- assertThat(ordersDao .getOrder(orderModel.orderId, orderModel.localSiteId)?.status)
331+ assertThat(ordersDaoDecorator .getOrder(orderModel.orderId, orderModel.localSiteId)?.status)
325332 .isEqualTo(CoreOrderStatus .PROCESSING .value)
326333
327334 orderStore.updateOrderStatus(
@@ -330,7 +337,7 @@ class WCOrderStoreTest {
330337 WCOrderStatusModel (CoreOrderStatus .COMPLETED .value)
331338 ).toList()
332339
333- assertThat(ordersDao .getOrder(orderModel.orderId, orderModel.localSiteId)?.status)
340+ assertThat(ordersDaoDecorator .getOrder(orderModel.orderId, orderModel.localSiteId)?.status)
334341 .isEqualTo(CoreOrderStatus .COMPLETED .value)
335342 Unit
336343 }
@@ -358,7 +365,7 @@ class WCOrderStoreTest {
358365 // Ensure the error is sent in the response
359366 assertThat(response.event.error).isEqualTo(error)
360367
361- assertThat(ordersDao .getOrder(orderModel.orderId, orderModel.localSiteId)?.status)
368+ assertThat(ordersDaoDecorator .getOrder(orderModel.orderId, orderModel.localSiteId)?.status)
362369 .isEqualTo(CoreOrderStatus .PROCESSING .value)
363370 Unit
364371 }
0 commit comments