TrustDataCorruptedTest.kt

1.0 KB · raw

1package com.peachpasswords.sync23import org.junit.Assert.assertEquals4import org.junit.Assert.assertTrue5import org.junit.Test67/**8 * §18.4: a corrupt persisted ledger must not be read as empty — that would9 * silently un-revoke every device. The corrupt payload must throw a10 * [TrustDataCorruptedException] whose message classifies as11 * [SyncOutcomeReason.TRUST_DATA_CORRUPTED].12 */13class TrustDataCorruptedTest {14    @Test15    fun `TrustDataCorruptedException message is classified as TRUST_DATA_CORRUPTED`() {16        val exc = TrustDataCorruptedException("paired_devices", "decode_failed")17        assertEquals(18            SyncOutcomeReason.TRUST_DATA_CORRUPTED,19            classifySyncError(exc.message!!),20        )21    }2223    @Test24    fun `TrustDataCorruptedException is a failure outcome`() {25        assertTrue(SyncOutcomeReason.TRUST_DATA_CORRUPTED.isFailure)26    }2728    @Test29    fun `TrustDataCorruptedException is not a warning outcome`() {30        assertEquals(false, SyncOutcomeReason.TRUST_DATA_CORRUPTED.isWarning)31    }32}