TodayReceiptTests.kt (2443B)
1 package tera.smoke 2 3 import kotlin.test.Test 4 import kotlin.test.assertEquals 5 import kotlin.test.assertNull 6 import uniffi.tera_core.FfiConverterTypeFfiTodaySyncRecord 7 import uniffi.tera_core.FfiTodayDiscoveryRecord 8 import uniffi.tera_core.FfiTodayProjectionUpdate 9 import uniffi.tera_core.FfiTodayRefreshRecord 10 import uniffi.tera_core.FfiTodayRelaySyncState 11 import uniffi.tera_core.FfiTodaySyncRecord 12 import uniffi.tera_core.FfiTodaySyncTermination 13 import uniffi.tera_core.FfiTodayTargetPageSummary 14 import uniffi.tera_core.FfiTodayTargetSyncRecord 15 import uniffi.tera_core.FfiTodayTargetSyncState 16 17 class TodayReceiptTests { 18 @Test 19 fun generatedNativeBufferRoundTripPreservesIncompleteAndUnknownTargetEvidence() { 20 for (state in FfiTodayTargetSyncState.entries) { 21 for (termination in FfiTodaySyncTermination.entries) { 22 val receipt = FfiTodaySyncRecord( 23 schemaVersion = 1u, relayState = FfiTodayRelaySyncState.PARTIAL, 24 termination = termination, 25 targets = listOf( 26 FfiTodayTargetSyncRecord( 27 "opaque", FfiTodayTargetSyncState.COMPLETE, 28 FfiTodayTargetPageSummary(8u, 1u, 2u, state), 29 ), 30 FfiTodayTargetSyncRecord("unknown", null, null), 31 ), 32 pagesFetched = 8u, eventsObserved = ULong.MAX_VALUE, 33 eventsAdmitted = ULong.MAX_VALUE - 1uL, eventsRejected = 1uL, 34 discovery = FfiTodayDiscoveryRecord("opaque-backfill", true), 35 projection = FfiTodayRefreshRecord( 36 1u, FfiTodayProjectionUpdate.REBUILD, 501uL, 400uL, 37 20uL, 70uL, ULong.MAX_VALUE, true, 38 ), 39 ) 40 val lifted = FfiConverterTypeFfiTodaySyncRecord.lift( 41 FfiConverterTypeFfiTodaySyncRecord.lower(receipt), 42 ) 43 assertEquals(receipt, lifted) 44 assertEquals("opaque-backfill", lifted.discovery.continuation) 45 assertEquals(true, lifted.discovery.hadIncompleteResponses) 46 assertEquals(state, lifted.targets.first().summary?.lastIncomplete) 47 assertNull(lifted.targets.last().summary) 48 assertNull(lifted.targets.last().finalState) 49 } 50 } 51 } 52 }