secant-android-wallet/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/screen/backup/view/LongBackupTestSetup.kt

76 lines
2.3 KiB
Kotlin

package co.electriccoin.zcash.ui.screen.backup.view
import androidx.compose.runtime.Composable
import androidx.compose.ui.test.junit4.ComposeContentTestRule
import cash.z.ecc.sdk.fixture.PersistableWalletFixture
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.screen.backup.model.BackupStage
import co.electriccoin.zcash.ui.screen.backup.state.BackupState
import co.electriccoin.zcash.ui.screen.backup.state.TestChoices
import java.util.concurrent.atomic.AtomicInteger
class LongBackupTestSetup(
private val composeTestRule: ComposeContentTestRule,
initialStage: BackupStage,
private val initialChoices: TestChoices
) {
private val state = BackupState(initialStage)
private val onCopyToClipboardCount = AtomicInteger(0)
private val onCompleteCallbackCount = AtomicInteger(0)
private val onChoicesCallbackCount = AtomicInteger(0)
private val onSelectedChoicesCount = AtomicInteger(initialChoices.current.value.size)
fun getOnCopyToClipboardCount(): Int {
composeTestRule.waitForIdle()
return onCopyToClipboardCount.get()
}
fun getOnCompleteCallbackCount(): Int {
composeTestRule.waitForIdle()
return onCompleteCallbackCount.get()
}
fun getOnChoicesCallbackCount(): Int {
composeTestRule.waitForIdle()
return onChoicesCallbackCount.get()
}
fun getSelectedChoicesCount(): Int {
composeTestRule.waitForIdle()
return onSelectedChoicesCount.get()
}
fun getStage(): BackupStage {
composeTestRule.waitForIdle()
return state.current.value
}
@Composable
@Suppress("TestFunctionName")
fun DefaultContent() {
ZcashTheme {
LongNewWalletBackup(
PersistableWalletFixture.new(),
state,
initialChoices,
onCopyToClipboard = { onCopyToClipboardCount.incrementAndGet() },
onComplete = { onCompleteCallbackCount.incrementAndGet() },
onChoicesChanged = {
onChoicesCallbackCount.incrementAndGet()
onSelectedChoicesCount.set(it)
}
)
}
}
fun setDefaultContent() {
composeTestRule.setContent {
DefaultContent()
}
}
}