2022-07-12 05:40:09 -07:00
|
|
|
package cash.z.ecc.android.sdk.internal
|
|
|
|
|
|
|
|
import androidx.test.filters.SmallTest
|
|
|
|
import cash.z.ecc.android.sdk.internal.model.Checkpoint
|
2023-05-18 04:36:15 -07:00
|
|
|
import cash.z.ecc.android.sdk.internal.model.ext.KEY_EPOCH_SECONDS
|
|
|
|
import cash.z.ecc.android.sdk.internal.model.ext.KEY_HASH
|
|
|
|
import cash.z.ecc.android.sdk.internal.model.ext.KEY_HEIGHT
|
|
|
|
import cash.z.ecc.android.sdk.internal.model.ext.KEY_TREE
|
|
|
|
import cash.z.ecc.android.sdk.internal.model.ext.KEY_VERSION
|
|
|
|
import cash.z.ecc.android.sdk.internal.model.ext.VERSION_1
|
|
|
|
import cash.z.ecc.android.sdk.internal.model.ext.from
|
2022-07-12 05:40:09 -07:00
|
|
|
import cash.z.ecc.fixture.CheckpointFixture
|
|
|
|
import cash.z.ecc.fixture.toJson
|
|
|
|
import org.json.JSONObject
|
|
|
|
import org.junit.Assert.assertEquals
|
|
|
|
import org.junit.Test
|
|
|
|
|
|
|
|
class CheckpointTest {
|
|
|
|
@Test
|
|
|
|
@SmallTest
|
|
|
|
fun deserialize() {
|
|
|
|
val fixtureCheckpoint = CheckpointFixture.new()
|
|
|
|
|
|
|
|
val deserialized = Checkpoint.from(CheckpointFixture.NETWORK, fixtureCheckpoint.toJson())
|
|
|
|
|
|
|
|
assertEquals(fixtureCheckpoint, deserialized)
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@SmallTest
|
|
|
|
fun epoch_seconds_as_long_that_would_overflow_int() {
|
|
|
|
val jsonString = CheckpointFixture.new(time = Long.MAX_VALUE).toJson()
|
|
|
|
|
|
|
|
Checkpoint.from(CheckpointFixture.NETWORK, jsonString).also {
|
|
|
|
assertEquals(Long.MAX_VALUE, it.epochSeconds)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@SmallTest
|
|
|
|
fun parse_height_as_long_that_would_overflow_int() {
|
|
|
|
val jsonString = JSONObject().apply {
|
|
|
|
put(Checkpoint.KEY_VERSION, Checkpoint.VERSION_1)
|
|
|
|
put(Checkpoint.KEY_HEIGHT, UInt.MAX_VALUE.toLong())
|
|
|
|
put(Checkpoint.KEY_HASH, CheckpointFixture.HASH)
|
|
|
|
put(Checkpoint.KEY_EPOCH_SECONDS, CheckpointFixture.EPOCH_SECONDS)
|
|
|
|
put(Checkpoint.KEY_TREE, CheckpointFixture.TREE)
|
|
|
|
}.toString()
|
|
|
|
|
|
|
|
Checkpoint.from(CheckpointFixture.NETWORK, jsonString).also {
|
|
|
|
assertEquals(UInt.MAX_VALUE.toLong(), it.height.value)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|