Skip to content

Commit 2912c1a

Browse files
test: add tests for persisted wallet
1 parent 722093b commit 2912c1a

File tree

2 files changed

+60
-41
lines changed

2 files changed

+60
-41
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package org.bitcoindevkit
2+
3+
import org.junit.jupiter.api.Nested
4+
import org.junit.jupiter.api.Test
5+
import kotlin.test.assertEquals
6+
import kotlin.test.assertFails
7+
8+
class LoadWalletTest {
9+
private val PERSISTENCE_FILE_PATH = run {
10+
val currentDirectory = System.getProperty("user.dir")
11+
val dbFileName = "awesome_wallet_1.sqlite3"
12+
"$currentDirectory/src/test/resources/$dbFileName"
13+
}
14+
val sqlitePersister: Persister = Persister.newSqlite(PERSISTENCE_FILE_PATH)
15+
16+
@Nested
17+
inner class Success {
18+
@Test
19+
fun `Wallet can be loaded from persistence`() {
20+
Wallet.load(
21+
descriptor = TEST_BIP86_DESCRIPTOR,
22+
changeDescriptor = TEST_BIP86_CHANGE_DESCRIPTOR,
23+
persister = sqlitePersister
24+
)
25+
}
26+
27+
@Test
28+
fun `Loaded wallet is at the right revealed index`() {
29+
val wallet = Wallet.load(
30+
descriptor = TEST_BIP86_DESCRIPTOR,
31+
changeDescriptor = TEST_BIP86_CHANGE_DESCRIPTOR,
32+
persister = sqlitePersister
33+
)
34+
val addressInfo: AddressInfo = wallet.revealNextAddress(KeychainKind.EXTERNAL)
35+
36+
assertEquals(
37+
expected = 26u,
38+
actual = addressInfo.index,
39+
)
40+
assertEquals(
41+
expected = "bcrt1pqhqlr5hxya35pmr0en5s3w9jyy9cmj90qwev0d36d6787jm27jzqg9kxse",
42+
actual = addressInfo.address.toString(),
43+
)
44+
}
45+
}
46+
47+
@Nested
48+
inner class Failure {
49+
@Test
50+
fun `Loading a wallet with mismatched descriptors should fail`() {
51+
assertFails {
52+
Wallet.load(
53+
descriptor = TEST_BIP84_DESCRIPTOR,
54+
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
55+
persister = sqlitePersister
56+
)
57+
}
58+
}
59+
}
60+
}

lib/src/test/kotlin/org/bitcoindevkit/PersistenceTest.kt

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)