Remove kotlin jvm testFixtures and dup test code

This commit is contained in:
Steve Myers
2021-11-08 17:41:06 -08:00
parent 0d68d2341b
commit 02dd2af0d3
6 changed files with 182 additions and 124 deletions

View File

@@ -25,9 +25,9 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "net.java.dev.jna:jna:5.8.0"
api "org.slf4j:slf4j-api:1.7.30"
testFixturesImplementation "junit:junit:4.13.2"
testFixturesImplementation "ch.qos.logback:logback-classic:1.2.3"
testFixturesImplementation "ch.qos.logback:logback-core:1.2.3"
testImplementation "junit:junit:4.13.2"
testImplementation "ch.qos.logback:logback-classic:1.2.3"
testImplementation "ch.qos.logback:logback-core:1.2.3"
}
afterEvaluate {

View File

@@ -1,16 +1,100 @@
package org.bitcoindevkit
import org.junit.Assert.*
import org.junit.Test
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.io.File
import java.nio.file.Files
/**
* Library test, which will execute on linux host.
*
*/
class JvmLibTest : LibTest() {
class JvmLibTest {
override fun getTestDataDir(): String {
return Files.createTempDirectory("bdk-test").toString()
//return Paths.get(System.getProperty("java.io.tmpdir"), "bdk-test").toString()
}
fun getTestDataDir(): String {
return Files.createTempDirectory("bdk-test").toString()
//return Paths.get(System.getProperty("java.io.tmpdir"), "bdk-test").toString()
}
fun cleanupTestDataDir(testDataDir: String) {
File(testDataDir).deleteRecursively()
}
val log: Logger = LoggerFactory.getLogger(JvmLibTest::class.java)
val desc =
"wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)"
@Test
fun memoryWalletNewAddress() {
val config = DatabaseConfig.Memory("")
val wallet = OfflineWallet(desc, Network.REGTEST, config)
val address = wallet.getNewAddress()
assertNotNull(address)
assertEquals(address, "bcrt1qzg4mckdh50nwdm9hkzq06528rsu73hjxytqkxs")
}
@Test(expected = BdkException.Descriptor::class)
fun invalidDescriptorExceptionIsThrown() {
val config = DatabaseConfig.Memory("")
OfflineWallet("invalid-descriptor", Network.REGTEST, config)
}
@Test
fun sledWalletNewAddress() {
val testDataDir = getTestDataDir()
val config = DatabaseConfig.Sled(SledDbConfiguration(testDataDir, "testdb"))
val wallet = OfflineWallet(desc, Network.REGTEST, config)
val address = wallet.getNewAddress()
assertNotNull(address)
assertEquals(address, "bcrt1qzg4mckdh50nwdm9hkzq06528rsu73hjxytqkxs")
cleanupTestDataDir(testDataDir)
}
@Test
fun onlineWalletInMemory() {
val db = DatabaseConfig.Memory("")
val client = BlockchainConfig.Electrum(
ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
null,
5u,
null,
100u
)
)
val wallet = OnlineWallet(desc, null, Network.TESTNET, db, client)
assertNotNull(wallet)
val network = wallet.getNetwork()
assertEquals(network, Network.TESTNET)
}
class LogProgress : BdkProgress {
val log: Logger = LoggerFactory.getLogger(JvmLibTest::class.java)
override fun update(progress: Float, message: String?) {
log.debug("Syncing...")
}
}
@Test
fun onlineWalletSyncGetBalance() {
val db = DatabaseConfig.Memory("")
val client = BlockchainConfig.Electrum(
ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
null,
5u,
null,
100u
)
)
val wallet = OnlineWallet(desc, null, Network.TESTNET, db, client)
wallet.sync(LogProgress(), null)
val balance = wallet.getBalance()
assertTrue(balance > 0u)
}
}

View File

@@ -1,95 +0,0 @@
package org.bitcoindevkit
import org.junit.Assert.*
import org.junit.Test
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.bitcoindevkit.*
import java.io.File
/**
* Library tests which will execute for jvm and android modules.
*/
abstract class LibTest {
abstract fun getTestDataDir(): String
fun cleanupTestDataDir(testDataDir: String) {
File(testDataDir).deleteRecursively()
}
val log: Logger = LoggerFactory.getLogger(LibTest::class.java)
val desc =
"wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)"
@Test
fun memoryWalletNewAddress() {
val config = DatabaseConfig.Memory("")
val wallet = OfflineWallet(desc, Network.REGTEST, config)
val address = wallet.getNewAddress()
assertNotNull(address)
assertEquals(address, "bcrt1qzg4mckdh50nwdm9hkzq06528rsu73hjxytqkxs")
}
@Test(expected = BdkException.Descriptor::class)
fun invalidDescriptorExceptionIsThrown() {
val config = DatabaseConfig.Memory("")
OfflineWallet("invalid-descriptor", Network.REGTEST, config)
}
@Test
fun sledWalletNewAddress() {
val testDataDir = getTestDataDir()
val config = DatabaseConfig.Sled(SledDbConfiguration(testDataDir, "testdb"))
val wallet = OfflineWallet(desc, Network.REGTEST, config)
val address = wallet.getNewAddress()
assertNotNull(address)
assertEquals(address, "bcrt1qzg4mckdh50nwdm9hkzq06528rsu73hjxytqkxs")
cleanupTestDataDir(testDataDir)
}
@Test
fun onlineWalletInMemory() {
val db = DatabaseConfig.Memory("")
val client = BlockchainConfig.Electrum(
ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
null,
5u,
null,
100u
)
)
val wallet = OnlineWallet(desc, null, Network.TESTNET, db, client)
assertNotNull(wallet)
val network = wallet.getNetwork()
assertEquals(network, Network.TESTNET)
}
class LogProgress : BdkProgress {
val log: Logger = LoggerFactory.getLogger(LibTest::class.java)
override fun update(progress: Float, message: String?) {
log.debug("Syncing...")
}
}
@Test
fun onlineWalletSyncGetBalance() {
val db = DatabaseConfig.Memory("")
val client = BlockchainConfig.Electrum(
ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
null,
5u,
null,
100u
)
)
val wallet = OnlineWallet(desc, null, Network.TESTNET, db, client)
wallet.sync(LogProgress(), null)
val balance = wallet.getBalance()
assertTrue(balance > 0u)
}
}