Release failed member snapshot requests and validate deletion frames
This commit is contained in:
1 parent
36af8d077f
commit
9383a68f17
2 files changed
+31
-2
No files matched your search
@@ -88,4 +88,26 @@ class MemberRepositoryTest {
|
||||
repo.onEvent(23, event("123", row(1)))
|
||||
repo.refresh("123"); assertTrue(repo.member("123", 1)!!.phoneStatusKnown)
|
||||
}
|
||||
|
||||
@Test fun enqueueExceptionReleasesPendingAndKeepsLastSnapshot() {
|
||||
var requests = 0
|
||||
val diagnostics = mutableListOf<String>()
|
||||
val repo = MemberRepository({ if (++requests == 1) error("JNI request failed") else true }, { true }, { 0 },
|
||||
{ _, message -> diagnostics.add(message) })
|
||||
repo.onEvent(12, null); repo.onEvent(23, event("123", row(1)))
|
||||
val before = repo.members.value
|
||||
repo.refresh("123"); repo.refresh("123")
|
||||
assertEquals(2, requests); assertEquals(before, repo.members.value)
|
||||
assertTrue(diagnostics.any { "enqueue threw" in it })
|
||||
}
|
||||
|
||||
@Test fun malformedDeletionCannotClearAnOtherwiseValidSnapshot() {
|
||||
val repo = repository(); repo.onEvent(23, event("123", row(1)))
|
||||
val before = repo.members.value
|
||||
val header = byteArrayOf(3) + "123".toByteArray()
|
||||
repo.onEvent(31, header + byteArrayOf(0))
|
||||
assertEquals(before, repo.members.value)
|
||||
repo.onEvent(31, header)
|
||||
assertTrue(repo.members.value.isEmpty())
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user