Skip to content

Commit 88eca89

Browse files
test: add small refactors of tests
1 parent 2912c1a commit 88eca89

File tree

2 files changed

+54
-50
lines changed

2 files changed

+54
-50
lines changed

lib/src/test/kotlin/org/bitcoindevkit/CreatingWalletTest.kt renamed to lib/src/test/kotlin/org/bitcoindevkit/CreateWalletTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import org.junit.jupiter.api.Nested
44
import org.junit.jupiter.api.Test
55
import kotlin.test.assertFails
66

7-
class CreatingWalletTest {
7+
class CreateWalletTest {
88
private val conn: Persister = Persister.newInMemory()
99

1010
@Nested
Lines changed: 53 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.bitcoindevkit
22

3+
import org.junit.jupiter.api.Nested
34
import kotlin.test.Test
45
import kotlin.test.assertEquals
56
import kotlin.test.assertTrue
@@ -8,56 +9,59 @@ import kotlin.test.assertFalse
89
class WalletTest {
910
val conn: Persister = Persister.newInMemory()
1011

11-
@Test
12-
fun `Wallet produces valid addresses for its network`() {
13-
val wallet: Wallet = Wallet(
14-
descriptor = TEST_BIP84_DESCRIPTOR,
15-
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
16-
network = Network.TESTNET4,
17-
persister = conn
18-
)
19-
val addressInfo: AddressInfo = wallet.revealNextAddress(KeychainKind.EXTERNAL)
20-
21-
assertTrue(addressInfo.address.isValidForNetwork(Network.TESTNET), "Address is not valid for Testnet 3 network but it should be")
22-
assertTrue(addressInfo.address.isValidForNetwork(Network.TESTNET4), "Address is not valid for Testnet 4 network but it should be")
23-
assertTrue(addressInfo.address.isValidForNetwork(Network.SIGNET), "Address is not valid for Signet network but it should be")
24-
25-
assertFalse(addressInfo.address.isValidForNetwork(Network.REGTEST), "Address is valid for Regtest network, but it should not be")
26-
assertFalse(addressInfo.address.isValidForNetwork(Network.BITCOIN), "Address is valid for Mainnet network, but it should not be")
27-
}
12+
@Nested
13+
inner class Success {
14+
@Test
15+
fun `Wallet produces valid addresses for its network`() {
16+
val wallet: Wallet = Wallet(
17+
descriptor = TEST_BIP84_DESCRIPTOR,
18+
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
19+
network = Network.TESTNET4,
20+
persister = conn
21+
)
22+
val addressInfo: AddressInfo = wallet.revealNextAddress(KeychainKind.EXTERNAL)
2823

29-
@Test
30-
fun `Wallet has 0 balance prior to sync`() {
31-
val wallet: Wallet = Wallet(
32-
descriptor = TEST_BIP84_DESCRIPTOR,
33-
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
34-
network = Network.TESTNET4,
35-
persister = conn
36-
)
37-
38-
assertEquals(
39-
expected = 0uL,
40-
actual = wallet.balance().total.toSat()
41-
)
42-
}
24+
assertTrue(addressInfo.address.isValidForNetwork(Network.TESTNET), "Address is not valid for Testnet 3 network but it should be")
25+
assertTrue(addressInfo.address.isValidForNetwork(Network.TESTNET4), "Address is not valid for Testnet 4 network but it should be")
26+
assertTrue(addressInfo.address.isValidForNetwork(Network.SIGNET), "Address is not valid for Signet network but it should be")
27+
28+
assertFalse(addressInfo.address.isValidForNetwork(Network.REGTEST), "Address is valid for Regtest network, but it should not be")
29+
assertFalse(addressInfo.address.isValidForNetwork(Network.BITCOIN), "Address is valid for Mainnet network, but it should not be")
30+
}
31+
32+
@Test
33+
fun `Wallet has 0 balance prior to sync`() {
34+
val wallet: Wallet = Wallet(
35+
descriptor = TEST_BIP84_DESCRIPTOR,
36+
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
37+
network = Network.TESTNET4,
38+
persister = conn
39+
)
40+
41+
assertEquals(
42+
expected = 0uL,
43+
actual = wallet.balance().total.toSat()
44+
)
45+
}
46+
47+
// Single-descriptor wallets return an address on the external keychain even if a change descriptor is not provided
48+
// and the wallet.revealNextAddress(KeychainKind.INTERNAL) or wallet.peekAddress(KeychainKind.EXTERNAL, 0u) APIs are
49+
// used.
50+
@Test
51+
fun `Single-descriptor wallets can create addresses`() {
52+
val wallet: Wallet = Wallet.createSingle(
53+
descriptor = TEST_BIP84_DESCRIPTOR,
54+
network = Network.TESTNET4,
55+
persister = conn
56+
)
57+
val address1 = wallet.peekAddress(KeychainKind.EXTERNAL, 0u)
58+
val address2 = wallet.peekAddress(KeychainKind.INTERNAL, 0u)
4359

44-
// Single-descriptor wallets return an address on the external keychain even if a change descriptor is not provided
45-
// and the wallet.revealNextAddress(KeychainKind.INTERNAL) or wallet.peekAddress(KeychainKind.EXTERNAL, 0u) APIs are
46-
// used.
47-
@Test
48-
fun `Single-descriptor wallets can create addresses`() {
49-
val wallet: Wallet = Wallet.createSingle(
50-
descriptor = TEST_BIP84_DESCRIPTOR,
51-
network = Network.TESTNET4,
52-
persister = conn
53-
)
54-
val address1 = wallet.peekAddress(KeychainKind.EXTERNAL, 0u)
55-
val address2 = wallet.peekAddress(KeychainKind.INTERNAL, 0u)
56-
57-
assertEquals(
58-
expected = address1.address,
59-
actual = address2.address,
60-
message = "Addresses should be the same"
61-
)
60+
assertEquals(
61+
expected = address1.address,
62+
actual = address2.address,
63+
message = "Addresses should be the same"
64+
)
65+
}
6266
}
6367
}

0 commit comments

Comments
 (0)