Skip to content

Commit 84f1594

Browse files
committed
Use shared WooPosSyncFetchResult
1 parent d369ea6 commit 84f1594

File tree

7 files changed

+54
-82
lines changed

7 files changed

+54
-82
lines changed

WooCommerce/src/test/kotlin/com/woocommerce/android/ui/woopos/localcatalog/WooPosSyncProductsActionTest.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import org.wordpress.android.fluxc.model.LocalOrRemoteId
2020
import org.wordpress.android.fluxc.model.SiteModel
2121
import org.wordpress.android.fluxc.network.rest.wpcom.wc.product.CoreProductStatus
2222
import org.wordpress.android.fluxc.persistence.entity.pos.WooPosProductEntity
23-
import org.wordpress.android.fluxc.store.pos.localcatalog.WooPosLocalCatalogFetchProductsResult
2423
import org.wordpress.android.fluxc.store.pos.localcatalog.WooPosLocalCatalogStore
24+
import org.wordpress.android.fluxc.store.pos.localcatalog.WooPosPaginatedFetchResult
2525
import kotlin.Result as KotlinResult
2626

2727
class WooPosSyncProductsActionTest {
@@ -343,8 +343,8 @@ class WooPosSyncProductsActionTest {
343343
)
344344
).thenReturn(
345345
KotlinResult.success(
346-
WooPosLocalCatalogFetchProductsResult(
347-
products = trashProducts,
346+
WooPosPaginatedFetchResult(
347+
items = trashProducts,
348348
syncedCount = productsCount,
349349
hasMore = false,
350350
nextPage = 1,
@@ -371,8 +371,8 @@ class WooPosSyncProductsActionTest {
371371
)
372372
).thenReturn(
373373
KotlinResult.success(
374-
WooPosLocalCatalogFetchProductsResult(
375-
products = trashPage1,
374+
WooPosPaginatedFetchResult(
375+
items = trashPage1,
376376
syncedCount = 10,
377377
hasMore = true,
378378
nextPage = 2,
@@ -392,8 +392,8 @@ class WooPosSyncProductsActionTest {
392392
)
393393
).thenReturn(
394394
KotlinResult.success(
395-
WooPosLocalCatalogFetchProductsResult(
396-
products = trashPage2,
395+
WooPosPaginatedFetchResult(
396+
items = trashPage2,
397397
syncedCount = 10,
398398
hasMore = true,
399399
nextPage = 3,
@@ -413,8 +413,8 @@ class WooPosSyncProductsActionTest {
413413
)
414414
).thenReturn(
415415
KotlinResult.success(
416-
WooPosLocalCatalogFetchProductsResult(
417-
products = trashPage3,
416+
WooPosPaginatedFetchResult(
417+
items = trashPage3,
418418
syncedCount = 5,
419419
hasMore = false,
420420
nextPage = 3,
@@ -556,8 +556,8 @@ class WooPosSyncProductsActionTest {
556556
)
557557
.thenReturn(
558558
KotlinResult.success(
559-
WooPosLocalCatalogFetchProductsResult(
560-
products = mockProducts,
559+
WooPosPaginatedFetchResult(
560+
items = mockProducts,
561561
syncedCount = syncedCount,
562562
hasMore = hasMore,
563563
nextPage = if (hasMore) page + 1 else page,
@@ -577,8 +577,8 @@ class WooPosSyncProductsActionTest {
577577
)
578578
).thenReturn(
579579
KotlinResult.success(
580-
WooPosLocalCatalogFetchProductsResult(
581-
products = mockProducts,
580+
WooPosPaginatedFetchResult(
581+
items = mockProducts,
582582
syncedCount = syncedCount,
583583
hasMore = hasMore,
584584
nextPage = if (hasMore) page + 1 else page,

WooCommerce/src/test/kotlin/com/woocommerce/android/ui/woopos/localcatalog/WooPosSyncVariationsActionTest.kt

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import org.wordpress.android.fluxc.model.LocalOrRemoteId.RemoteId
2121
import org.wordpress.android.fluxc.model.SiteModel
2222
import org.wordpress.android.fluxc.persistence.entity.pos.WooPosVariationEntity
2323
import org.wordpress.android.fluxc.store.pos.localcatalog.WooPosLocalCatalogStore
24-
import org.wordpress.android.fluxc.store.pos.localcatalog.WooPosVariationsFetchResult
24+
import org.wordpress.android.fluxc.store.pos.localcatalog.WooPosPaginatedFetchResult
2525
import kotlin.Result as KotlinResult
2626

2727
class WooPosSyncVariationsActionTest {
@@ -344,8 +344,8 @@ class WooPosSyncVariationsActionTest {
344344
.doAnswer(
345345
InlineClassesAnswer {
346346
KotlinResult.success(
347-
WooPosVariationsFetchResult(
348-
variations = variations,
347+
WooPosPaginatedFetchResult(
348+
items = variations,
349349
syncedCount = variationsCount,
350350
hasMore = false,
351351
nextPage = 2,
@@ -372,8 +372,8 @@ class WooPosSyncVariationsActionTest {
372372
.doAnswer(
373373
InlineClassesAnswer {
374374
KotlinResult.success(
375-
WooPosVariationsFetchResult(
376-
variations = variations1,
375+
WooPosPaginatedFetchResult(
376+
items = variations1,
377377
syncedCount = page1Count,
378378
hasMore = true,
379379
nextPage = 2,
@@ -388,8 +388,8 @@ class WooPosSyncVariationsActionTest {
388388
.doAnswer(
389389
InlineClassesAnswer {
390390
KotlinResult.success(
391-
WooPosVariationsFetchResult(
392-
variations = variations2,
391+
WooPosPaginatedFetchResult(
392+
items = variations2,
393393
syncedCount = page2Count,
394394
hasMore = page3Count > 0,
395395
nextPage = 3,
@@ -411,8 +411,8 @@ class WooPosSyncVariationsActionTest {
411411
.doAnswer(
412412
InlineClassesAnswer {
413413
KotlinResult.success(
414-
WooPosVariationsFetchResult(
415-
variations = variations3,
414+
WooPosPaginatedFetchResult(
415+
items = variations3,
416416
syncedCount = page3Count,
417417
hasMore = false,
418418
nextPage = 4,
@@ -429,8 +429,8 @@ class WooPosSyncVariationsActionTest {
429429
.doAnswer(
430430
InlineClassesAnswer {
431431
KotlinResult.success(
432-
WooPosVariationsFetchResult(
433-
variations = emptyList(),
432+
WooPosPaginatedFetchResult(
433+
items = emptyList<WooPosVariationEntity>(),
434434
syncedCount = 0,
435435
hasMore = false,
436436
nextPage = 1,
@@ -458,8 +458,8 @@ class WooPosSyncVariationsActionTest {
458458
.doAnswer(
459459
InlineClassesAnswer {
460460
KotlinResult.success(
461-
WooPosVariationsFetchResult(
462-
variations = variations1,
461+
WooPosPaginatedFetchResult(
462+
items = variations1,
463463
syncedCount = 100,
464464
hasMore = true,
465465
nextPage = 2,
@@ -479,8 +479,8 @@ class WooPosSyncVariationsActionTest {
479479
.doAnswer(
480480
InlineClassesAnswer {
481481
KotlinResult.success(
482-
WooPosVariationsFetchResult(
483-
variations = emptyList(),
482+
WooPosPaginatedFetchResult(
483+
items = emptyList<WooPosVariationEntity>(),
484484
syncedCount = 0,
485485
hasMore = false, // Changed to false so it stops fetching after zero items
486486
nextPage = 1,
@@ -501,8 +501,8 @@ class WooPosSyncVariationsActionTest {
501501
.doAnswer(
502502
InlineClassesAnswer {
503503
KotlinResult.success(
504-
WooPosVariationsFetchResult(
505-
variations = variations1,
504+
WooPosPaginatedFetchResult(
505+
items = variations1,
506506
syncedCount = 100,
507507
hasMore = true,
508508
nextPage = 2,
@@ -517,8 +517,8 @@ class WooPosSyncVariationsActionTest {
517517
.doAnswer(
518518
InlineClassesAnswer {
519519
KotlinResult.success(
520-
WooPosVariationsFetchResult(
521-
variations = variations2,
520+
WooPosPaginatedFetchResult(
521+
items = variations2,
522522
syncedCount = 100,
523523
hasMore = true,
524524
nextPage = 3,
@@ -533,8 +533,8 @@ class WooPosSyncVariationsActionTest {
533533
.doAnswer(
534534
InlineClassesAnswer {
535535
KotlinResult.success(
536-
WooPosVariationsFetchResult(
537-
variations = variations3,
536+
WooPosPaginatedFetchResult(
537+
items = variations3,
538538
syncedCount = 50,
539539
hasMore = false,
540540
nextPage = 4,

libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosLocalCatalogFetchProductsResult.kt

Lines changed: 0 additions & 14 deletions
This file was deleted.

libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosLocalCatalogStore.kt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ class WooPosLocalCatalogStore @Inject constructor(
163163
page: Int = 1,
164164
pageSize: Int = DEFAULT_PAGE_SIZE,
165165
includeStatus: List<CoreProductStatus>? = null,
166-
): Result<WooPosLocalCatalogFetchProductsResult> =
166+
): Result<WooPosPaginatedFetchResult<WooPosProductEntity>> =
167167
coroutineEngine.withDefaultContext(API, this, "fetchRecentlyModifiedProducts") {
168168
val validPageSize = pageSize.coerceIn(1, MAX_PAGE_SIZE)
169169

@@ -185,8 +185,8 @@ class WooPosLocalCatalogStore @Inject constructor(
185185
)
186186

187187
response.model.isNullOrEmpty() -> Result.success(
188-
WooPosLocalCatalogFetchProductsResult(
189-
products = emptyList(),
188+
WooPosPaginatedFetchResult(
189+
items = emptyList(),
190190
syncedCount = 0,
191191
hasMore = false,
192192
nextPage = page,
@@ -211,8 +211,8 @@ class WooPosLocalCatalogStore @Inject constructor(
211211
}
212212

213213
Result.success(
214-
WooPosLocalCatalogFetchProductsResult(
215-
products = products,
214+
WooPosPaginatedFetchResult(
215+
items = products,
216216
syncedCount = products.size,
217217
hasMore = hasMore,
218218
nextPage = if (hasMore) page + 1 else page,
@@ -319,15 +319,15 @@ class WooPosLocalCatalogStore @Inject constructor(
319319
* @param modifiedAfterGmt ISO 8601 formatted date string (GMT)
320320
* @param page Starting page for pagination (1-based)
321321
* @param pageSize Number of variations to fetch per page (default: 100, max: 100)
322-
* @return [Result] containing [WooPosVariationsFetchResult] with pagination info or error
322+
* @return [Result] containing [WooPosPaginatedFetchResult] with pagination info or error
323323
*/
324324
@Suppress("LongMethod")
325325
suspend fun fetchRecentlyModifiedVariations(
326326
site: SiteModel,
327327
modifiedAfterGmt: String?,
328328
page: Int = 1,
329329
pageSize: Int = DEFAULT_PAGE_SIZE,
330-
): Result<WooPosVariationsFetchResult> =
330+
): Result<WooPosPaginatedFetchResult<WooPosVariationEntity>> =
331331
coroutineEngine.withDefaultContext(API, this, "fetchRecentlyModifiedVariations") {
332332
require(page > 0) { "Page number must be 1 or greater" }
333333
val validPageSize = pageSize.coerceIn(1, MAX_PAGE_SIZE)
@@ -354,8 +354,8 @@ class WooPosLocalCatalogStore @Inject constructor(
354354

355355
response.model.isNullOrEmpty() -> {
356356
Result.success(
357-
WooPosVariationsFetchResult(
358-
variations = emptyList(),
357+
WooPosPaginatedFetchResult(
358+
items = emptyList(),
359359
syncedCount = 0,
360360
hasMore = false,
361361
nextPage = page,
@@ -385,8 +385,8 @@ class WooPosLocalCatalogStore @Inject constructor(
385385
}
386386

387387
Result.success(
388-
WooPosVariationsFetchResult(
389-
variations = variations,
388+
WooPosPaginatedFetchResult(
389+
items = variations,
390390
syncedCount = variations.size,
391391
hasMore = hasMore,
392392
nextPage = if (hasMore) {
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.wordpress.android.fluxc.store.pos.localcatalog
22

3-
sealed interface WooPosPaginatedFetchResult<T> {
4-
val items: List<T>
5-
val syncedCount: Int
6-
val hasMore: Boolean
7-
val nextPage: Int
8-
val totalPages: Int
9-
val serverDate: String
10-
}
3+
data class WooPosPaginatedFetchResult<T>(
4+
val items: List<T>,
5+
val syncedCount: Int,
6+
val hasMore: Boolean,
7+
val nextPage: Int,
8+
val totalPages: Int,
9+
val serverDate: String,
10+
)

libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosVariationsFetchResult.kt

Lines changed: 0 additions & 14 deletions
This file was deleted.

libs/fluxc-plugin/src/test/java/org/wordpress/android/fluxc/store/pos/WooPosLocalCatalogStoreTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ class WooPosLocalCatalogStoreTest {
152152
val syncResult = store.fetchRecentlyModifiedProducts(testSite, validDateString, 1, 100).getOrThrow()
153153

154154
// THEN
155-
assertThat(syncResult.products.size).isEqualTo(remoteProducts.size)
155+
assertThat(syncResult.items.size).isEqualTo(remoteProducts.size)
156156
assertThat(syncResult.syncedCount).isEqualTo(2)
157157
assertThat(syncResult.hasMore).isFalse()
158158
assertThat(syncResult.nextPage).isEqualTo(1)

0 commit comments

Comments
 (0)