secant-android-wallet/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/screen/home/HomeTestSetup.kt

78 lines
2.1 KiB
Kotlin

package co.electriccoin.zcash.ui.screen.home
import androidx.compose.runtime.Composable
import androidx.compose.ui.test.junit4.ComposeContentTestRule
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.screen.home.model.WalletSnapshot
import co.electriccoin.zcash.ui.screen.home.view.Home
import java.util.concurrent.atomic.AtomicInteger
class HomeTestSetup(
private val composeTestRule: ComposeContentTestRule,
private val walletSnapshot: WalletSnapshot,
private val isRequestZecButtonEnabled: Boolean,
) {
private val onScanCount = AtomicInteger(0)
private val onProfileCount = AtomicInteger(0)
private val onSendCount = AtomicInteger(0)
private val onRequestCount = AtomicInteger(0)
fun getOnScanCount(): Int {
composeTestRule.waitForIdle()
return onScanCount.get()
}
fun getOnProfileCount(): Int {
composeTestRule.waitForIdle()
return onProfileCount.get()
}
fun getOnSendCount(): Int {
composeTestRule.waitForIdle()
return onSendCount.get()
}
fun getOnRequestCount(): Int {
composeTestRule.waitForIdle()
return onRequestCount.get()
}
fun getWalletSnapshot(): WalletSnapshot {
composeTestRule.waitForIdle()
return walletSnapshot
}
@Composable
fun getDefaultContent() {
Home(
walletSnapshot,
isKeepScreenOnDuringSync = false,
isRequestZecButtonEnabled = isRequestZecButtonEnabled,
transactionHistory = emptyList(),
goScan = {
onScanCount.incrementAndGet()
},
goProfile = {
onProfileCount.incrementAndGet()
},
goSend = {
onSendCount.incrementAndGet()
},
goRequest = {
onRequestCount.incrementAndGet()
},
resetSdk = {},
isDebugMenuEnabled = false,
updateAvailable = false
)
}
fun setDefaultContent() {
composeTestRule.setContent {
ZcashTheme {
getDefaultContent()
}
}
}
}