82 lines
2.7 KiB
Kotlin
Raw Normal View History

package org.bitcoindevkit
import org.junit.Assert.*
import org.junit.Test
import android.app.Application
import android.content.Context.MODE_PRIVATE
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.runner.RunWith
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.io.File
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
2021-11-06 05:26:56 +05:30
@RunWith(AndroidJUnit4::class)
class AndroidLibTest {
2022-09-08 18:21:04 -04:00
private fun getTestDataDir(): String {
val context = ApplicationProvider.getApplicationContext<Application>()
return context.getDir("bdk-test", MODE_PRIVATE).toString()
}
2022-09-08 18:21:04 -04:00
private fun cleanupTestDataDir(testDataDir: String) {
File(testDataDir).deleteRecursively()
}
2022-09-08 18:21:04 -04:00
class LogProgress : Progress {
private val log: Logger = LoggerFactory.getLogger(AndroidLibTest::class.java)
2022-09-08 18:21:04 -04:00
override fun update(progress: Float, message: String?) {
log.debug("Syncing...")
}
}
private val descriptor = Descriptor("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", Network.TESTNET)
2022-09-08 18:21:04 -04:00
private val databaseConfig = DatabaseConfig.Memory
private val blockchainConfig = BlockchainConfig.Electrum(
ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
null,
5u,
null,
2023-01-09 21:03:41 -05:00
100u,
true,
)
)
@Test
fun memoryWalletNewAddress() {
2022-04-22 14:50:40 -07:00
val wallet = Wallet(descriptor, null, Network.TESTNET, databaseConfig)
2023-03-28 14:26:56 -04:00
val address = wallet.getAddress(AddressIndex.New).address.asString()
assertEquals("tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e", address)
}
@Test
2022-09-08 18:21:04 -04:00
fun memoryWalletSyncGetBalance() {
2022-04-22 14:50:40 -07:00
val wallet = Wallet(descriptor, null, Network.TESTNET, databaseConfig)
2022-09-08 18:21:04 -04:00
val blockchain = Blockchain(blockchainConfig)
wallet.sync(blockchain, LogProgress())
val balance: Balance = wallet.getBalance()
assertTrue(balance.total > 0u)
}
2022-03-11 23:35:49 -06:00
@Test
fun sqliteWalletSyncGetBalance() {
2022-09-08 18:21:04 -04:00
val testDataDir = getTestDataDir() + "/bdk-wallet.sqlite"
2022-03-11 23:35:49 -06:00
val databaseConfig = DatabaseConfig.Sqlite(SqliteDbConfiguration(testDataDir))
2022-04-22 14:50:40 -07:00
val wallet = Wallet(descriptor, null, Network.TESTNET, databaseConfig)
2022-06-14 16:31:10 -03:00
val blockchain = Blockchain(blockchainConfig)
2022-04-22 14:50:40 -07:00
wallet.sync(blockchain, LogProgress())
2022-09-08 18:21:04 -04:00
val balance: Balance = wallet.getBalance()
assertTrue(balance.total > 0u)
2022-03-11 23:35:49 -06:00
cleanupTestDataDir(testDataDir)
}
2021-11-06 05:26:56 +05:30
}