field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

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 }