Sanity test the new initializer behavior and fix existing uses.
This commit is contained in:
parent
e9e2593369
commit
8f8d3db9d9
|
@ -50,7 +50,7 @@ class ListTransactionsFragment : BaseDemoFragment<FragmentListTransactionsBindin
|
||||||
|
|
||||||
App.instance.defaultConfig.let { config ->
|
App.instance.defaultConfig.let { config ->
|
||||||
initializer = Initializer(App.instance) {
|
initializer = Initializer(App.instance) {
|
||||||
it.import(seed, config.birthdayHeight)
|
it.importWallet(seed, config.birthdayHeight)
|
||||||
it.server(config.host, config.port)
|
it.server(config.host, config.port)
|
||||||
}
|
}
|
||||||
address = DerivationTool.deriveShieldedAddress(seed)
|
address = DerivationTool.deriveShieldedAddress(seed)
|
||||||
|
|
|
@ -67,7 +67,7 @@ class ListUtxosFragment : BaseDemoFragment<FragmentListUtxosBinding>() {
|
||||||
// have the seed stored
|
// have the seed stored
|
||||||
seed = Mnemonics.MnemonicCode(sharedViewModel.seedPhrase.value).toSeed()
|
seed = Mnemonics.MnemonicCode(sharedViewModel.seedPhrase.value).toSeed()
|
||||||
initializer = Initializer(App.instance) {
|
initializer = Initializer(App.instance) {
|
||||||
it.import(seed, config.birthdayHeight)
|
it.importWallet(seed, config.birthdayHeight)
|
||||||
it.alias = "Demo_Utxos"
|
it.alias = "Demo_Utxos"
|
||||||
}
|
}
|
||||||
synchronizer = Synchronizer(initializer)
|
synchronizer = Synchronizer(initializer)
|
||||||
|
|
|
@ -51,7 +51,7 @@ class SendFragment : BaseDemoFragment<FragmentSendBinding>() {
|
||||||
|
|
||||||
App.instance.defaultConfig.let { config ->
|
App.instance.defaultConfig.let { config ->
|
||||||
Initializer(App.instance) {
|
Initializer(App.instance) {
|
||||||
it.import(seed, config.birthdayHeight)
|
it.importWallet(seed, config.birthdayHeight)
|
||||||
it.server(config.host, config.port)
|
it.server(config.host, config.port)
|
||||||
}.let { initializer ->
|
}.let { initializer ->
|
||||||
synchronizer = Synchronizer(initializer)
|
synchronizer = Synchronizer(initializer)
|
||||||
|
|
|
@ -1,18 +1,29 @@
|
||||||
package cash.z.ecc.android.sdk
|
package cash.z.ecc.android.sdk
|
||||||
|
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
|
import cash.z.ecc.android.sdk.exception.InitializerException
|
||||||
import cash.z.ecc.android.sdk.ext.TroubleshootingTwig
|
import cash.z.ecc.android.sdk.ext.TroubleshootingTwig
|
||||||
import cash.z.ecc.android.sdk.ext.Twig
|
import cash.z.ecc.android.sdk.ext.Twig
|
||||||
|
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||||
|
import org.junit.After
|
||||||
import org.junit.Assert.*
|
import org.junit.Assert.*
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class InitializerTest {
|
class InitializerTest {
|
||||||
|
|
||||||
|
lateinit var initializer: Initializer
|
||||||
|
|
||||||
|
@After
|
||||||
|
fun cleanUp() {
|
||||||
|
// don't leave databases sitting around after this test is run
|
||||||
|
if (::initializer.isInitialized) initializer.erase()
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testInit() {
|
fun testInit() {
|
||||||
val height = 980000
|
val height = 980000
|
||||||
|
|
||||||
val initializer = Initializer(context) { config ->
|
initializer = Initializer(context) { config ->
|
||||||
config.importedWalletBirthday(height)
|
config.importedWalletBirthday(height)
|
||||||
config.setViewingKeys("zxviews1qvn6j50dqqqqpqxqkvqgx2sp63jccr4k5t8zefadpzsu0yy73vczfznwc794xz6lvy3yp5ucv43lww48zz95ey5vhrsq83dqh0ky9junq0cww2wjp9c3cd45n5l5x8l2g9atnx27e9jgyy8zasjy26gugjtefphan9al3tx208m8ekev5kkx3ug6pd0qk4gq4j4wfuxajn388pfpq54wklwktqkyjz9e6gam0n09xjc35ncd3yah5aa9ezj55lk4u7v7hn0v86vz7ygq4qj2v",
|
config.setViewingKeys("zxviews1qvn6j50dqqqqpqxqkvqgx2sp63jccr4k5t8zefadpzsu0yy73vczfznwc794xz6lvy3yp5ucv43lww48zz95ey5vhrsq83dqh0ky9junq0cww2wjp9c3cd45n5l5x8l2g9atnx27e9jgyy8zasjy26gugjtefphan9al3tx208m8ekev5kkx3ug6pd0qk4gq4j4wfuxajn388pfpq54wklwktqkyjz9e6gam0n09xjc35ncd3yah5aa9ezj55lk4u7v7hn0v86vz7ygq4qj2v",
|
||||||
"zxviews1qv886f6hqqqqpqy2ajg9sm22vs4gm4hhajthctfkfws34u45pjtut3qmz0eatpqzvllgsvlk3x0y35ktx5fnzqqzueyph20k3328kx46y3u5xs4750cwuwjuuccfp7la6rh8yt2vjz6tylsrwzy3khtjjzw7etkae6gw3vq608k7quka4nxkeqdxxsr9xxdagv2rhhwugs6w0cquu2ykgzgaln2vyv6ah3ram2h6lrpxuznyczt2xl3lyxcwlk4wfz5rh7wzfd7642c2ae5d7")
|
"zxviews1qv886f6hqqqqpqy2ajg9sm22vs4gm4hhajthctfkfws34u45pjtut3qmz0eatpqzvllgsvlk3x0y35ktx5fnzqqzueyph20k3328kx46y3u5xs4750cwuwjuuccfp7la6rh8yt2vjz6tylsrwzy3khtjjzw7etkae6gw3vq608k7quka4nxkeqdxxsr9xxdagv2rhhwugs6w0cquu2ykgzgaln2vyv6ah3ram2h6lrpxuznyczt2xl3lyxcwlk4wfz5rh7wzfd7642c2ae5d7")
|
||||||
|
@ -25,15 +36,62 @@ class InitializerTest {
|
||||||
@Test
|
@Test
|
||||||
fun testErase() {
|
fun testErase() {
|
||||||
val alias = "VkInitTest2"
|
val alias = "VkInitTest2"
|
||||||
Initializer(context) { config ->
|
initializer = Initializer(context) { config ->
|
||||||
config.importedWalletBirthday(1_419_900)
|
config.importedWalletBirthday(1_419_900)
|
||||||
config.setViewingKeys("zxviews1qvn6j50dqqqqpqxqkvqgx2sp63jccr4k5t8zefadpzsu0yy73vczfznwc794xz6lvy3yp5ucv43lww48zz95ey5vhrsq83dqh0ky9junq0cww2wjp9c3cd45n5l5x8l2g9atnx27e9jgyy8zasjy26gugjtefphan9al3tx208m8ekev5kkx3ug6pd0qk4gq4j4wfuxajn388pfpq54wklwktqkyjz9e6gam0n09xjc35ncd3yah5aa9ezj55lk4u7v7hn0v86vz7ygq4qj2v",
|
config.setViewingKeys("zxviews1qvn6j50dqqqqpqxqkvqgx2sp63jccr4k5t8zefadpzsu0yy73vczfznwc794xz6lvy3yp5ucv43lww48zz95ey5vhrsq83dqh0ky9junq0cww2wjp9c3cd45n5l5x8l2g9atnx27e9jgyy8zasjy26gugjtefphan9al3tx208m8ekev5kkx3ug6pd0qk4gq4j4wfuxajn388pfpq54wklwktqkyjz9e6gam0n09xjc35ncd3yah5aa9ezj55lk4u7v7hn0v86vz7ygq4qj2v",
|
||||||
"zxviews1qv886f6hqqqqpqy2ajg9sm22vs4gm4hhajthctfkfws34u45pjtut3qmz0eatpqzvllgsvlk3x0y35ktx5fnzqqzueyph20k3328kx46y3u5xs4750cwuwjuuccfp7la6rh8yt2vjz6tylsrwzy3khtjjzw7etkae6gw3vq608k7quka4nxkeqdxxsr9xxdagv2rhhwugs6w0cquu2ykgzgaln2vyv6ah3ram2h6lrpxuznyczt2xl3lyxcwlk4wfz5rh7wzfd7642c2ae5d7")
|
"zxviews1qv886f6hqqqqpqy2ajg9sm22vs4gm4hhajthctfkfws34u45pjtut3qmz0eatpqzvllgsvlk3x0y35ktx5fnzqqzueyph20k3328kx46y3u5xs4750cwuwjuuccfp7la6rh8yt2vjz6tylsrwzy3khtjjzw7etkae6gw3vq608k7quka4nxkeqdxxsr9xxdagv2rhhwugs6w0cquu2ykgzgaln2vyv6ah3ram2h6lrpxuznyczt2xl3lyxcwlk4wfz5rh7wzfd7642c2ae5d7")
|
||||||
config.alias = alias
|
config.alias = alias
|
||||||
}
|
}
|
||||||
|
|
||||||
assertFalse("Expected false when erasing nothing.", Initializer.erase(context))
|
|
||||||
assertTrue("Failed to erase initializer", Initializer.erase(context, alias))
|
assertTrue("Failed to erase initializer", Initializer.erase(context, alias))
|
||||||
|
assertFalse("Expected false when erasing nothing.", Initializer.erase(context))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = InitializerException.MissingDefaultBirthdayException::class)
|
||||||
|
fun testMissingBirthday() {
|
||||||
|
val config = Initializer.Config { config ->
|
||||||
|
config.setViewingKeys("vk1")
|
||||||
|
}
|
||||||
|
config.validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = InitializerException.InvalidBirthdayHeightException::class)
|
||||||
|
fun testOutOfBoundsBirthday() {
|
||||||
|
val config = Initializer.Config { config ->
|
||||||
|
config.setViewingKeys("vk1")
|
||||||
|
config.setBirthdayHeight(ZcashSdk.SAPLING_ACTIVATION_HEIGHT - 1)
|
||||||
|
}
|
||||||
|
config.validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testImportedWalletUsesSaplingActivation() {
|
||||||
|
initializer = Initializer(context) { config ->
|
||||||
|
config.setViewingKeys("vk1")
|
||||||
|
config.importWallet(ByteArray(32))
|
||||||
|
}
|
||||||
|
assertEquals("Incorrect height used for import.", ZcashSdk.SAPLING_ACTIVATION_HEIGHT, initializer.birthday.height)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testDefaultToOldestHeight_true() {
|
||||||
|
initializer = Initializer(context) { config ->
|
||||||
|
config.setViewingKeys("vk1")
|
||||||
|
config.setBirthdayHeight(null, true)
|
||||||
|
}
|
||||||
|
assertEquals("Height should equal sapling activation height when defaultToOldestHeight is true", ZcashSdk.SAPLING_ACTIVATION_HEIGHT, initializer.birthday.height)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testDefaultToOldestHeight_false() {
|
||||||
|
val initialHeight = 750_000
|
||||||
|
initializer = Initializer(context) { config ->
|
||||||
|
config.setViewingKeys("vk1")
|
||||||
|
config.setBirthdayHeight(initialHeight, false)
|
||||||
|
}
|
||||||
|
val h = initializer.birthday.height
|
||||||
|
assertNotEquals("Height should not equal sapling activation height when defaultToOldestHeight is false", ZcashSdk.SAPLING_ACTIVATION_HEIGHT, h)
|
||||||
|
assertTrue("expected $h to be higher", h >= initialHeight)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
|
@ -84,7 +84,7 @@ class BalancePrinterUtil {
|
||||||
}.collect { seed ->
|
}.collect { seed ->
|
||||||
// TODO: clear the dataDb but leave the cacheDb
|
// TODO: clear the dataDb but leave the cacheDb
|
||||||
val initializer = Initializer(context) { config ->
|
val initializer = Initializer(context) { config ->
|
||||||
config.import(seed, birthdayHeight)
|
config.importWallet(seed, birthdayHeight)
|
||||||
config.server(host, port)
|
config.server(host, port)
|
||||||
config.alias = alias
|
config.alias = alias
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ class DarksideTestCoordinator(val host: String = "127.0.0.1", val testName: Stri
|
||||||
twig("*************** INITIALIZING TEST COORDINATOR (ONLY ONCE) ***********************")
|
twig("*************** INITIALIZING TEST COORDINATOR (ONLY ONCE) ***********************")
|
||||||
val initializer = Initializer(context) { config ->
|
val initializer = Initializer(context) { config ->
|
||||||
config.seedPhrase(seedPhrase)
|
config.seedPhrase(seedPhrase)
|
||||||
config.birthdayHeight = birthdayHeight
|
config.setBirthdayHeight(birthdayHeight)
|
||||||
config.alias = testName
|
config.alias = testName
|
||||||
}
|
}
|
||||||
synchronizer = Synchronizer(initializer) as SdkSynchronizer
|
synchronizer = Synchronizer(initializer) as SdkSynchronizer
|
||||||
|
|
|
@ -65,7 +65,7 @@ class DataDbScannerUtil {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun scanExistingDb() {
|
fun scanExistingDb() {
|
||||||
synchronizer = Synchronizer(Initializer(context) { it.birthdayHeight = birthdayHeight})
|
synchronizer = Synchronizer(Initializer(context) { it.setBirthdayHeight(birthdayHeight)})
|
||||||
|
|
||||||
println("sync!")
|
println("sync!")
|
||||||
synchronizer.start()
|
synchronizer.start()
|
||||||
|
|
|
@ -108,7 +108,7 @@ class IntegrationTest {
|
||||||
private val initializer = Initializer(context) { config ->
|
private val initializer = Initializer(context) { config ->
|
||||||
config.setSeed(seed)
|
config.setSeed(seed)
|
||||||
config.server(host, port)
|
config.server(host, port)
|
||||||
config.birthdayHeight = birthdayHeight
|
config.setBirthdayHeight(birthdayHeight)
|
||||||
}
|
}
|
||||||
private val synchronizer: Synchronizer = Synchronizer(initializer)
|
private val synchronizer: Synchronizer = Synchronizer(initializer)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue