Skip to content

Commit

Permalink
Fix KVRestore spies to use new functions
Browse files Browse the repository at this point in the history
  • Loading branch information
stevesoltys committed Sep 25, 2024
1 parent 7c1785e commit 42185fb
Showing 1 changed file with 34 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import com.stevesoltys.seedvault.e2e.screen.impl.RestoreScreen
import com.stevesoltys.seedvault.transport.restore.FullRestore
import com.stevesoltys.seedvault.transport.restore.KVRestore
import com.stevesoltys.seedvault.transport.restore.OutputFactory
import io.mockk.Call
import io.mockk.MockKAnswerScope
import io.mockk.clearMocks
import io.mockk.coEvery
import io.mockk.every
Expand Down Expand Up @@ -161,14 +163,26 @@ internal interface LargeRestoreTestBase : LargeTestBase {

clearMocks(spyKVRestore)

coEvery {
spyKVRestore.initializeState(any(), any(), any(), any())
} answers {
packageName = arg<PackageInfo>(3).packageName
fun initializeStateBlock(
packageInfoIndex: Int
): MockKAnswerScope<Unit, Unit>.(Call) -> Unit = {
packageName = arg<PackageInfo>(packageInfoIndex).packageName
restoreResult.kv[packageName!!] = mutableMapOf()
callOriginal()
}

coEvery {
spyKVRestore.initializeState(any(), any(), any(), any())
} answers initializeStateBlock(1)

coEvery {
spyKVRestore.initializeStateV1(any(), any(), any(), any())
} answers initializeStateBlock(2)

coEvery {
spyKVRestore.initializeStateV0(any(), any())
} answers initializeStateBlock(1)

every {
spyOutputFactory.getBackupDataOutput(any())
} answers {
Expand All @@ -186,19 +200,31 @@ internal interface LargeRestoreTestBase : LargeTestBase {

clearMocks(spyFullRestore)

coEvery {
spyFullRestore.initializeState(any(), any(), any())
} answers {
fun initializeStateBlock(
packageInfoIndex: Int
): MockKAnswerScope<Unit, Unit>.(Call) -> Unit = {
packageName?.let {
restoreResult.full[it] = dataIntercept.toByteArray().sha256()
}

packageName = arg<PackageInfo>(3).packageName
packageName = arg<PackageInfo>(packageInfoIndex).packageName
dataIntercept = ByteArrayOutputStream()

callOriginal()
}

coEvery {
spyFullRestore.initializeState(any(), any(), any())
} answers initializeStateBlock(1)

coEvery {
spyFullRestore.initializeStateV1(any(), any(), any())
} answers initializeStateBlock(2)

coEvery {
spyFullRestore.initializeStateV0(any(), any())
} answers initializeStateBlock(1)

every {
spyOutputFactory.getOutputStream(any())
} answers {
Expand Down

0 comments on commit 42185fb

Please sign in to comment.