|
1 | 1 | package to.bitkit.utils |
2 | 2 |
|
3 | | -import org.junit.Assert.assertEquals |
4 | 3 | import org.junit.Assert.assertFalse |
5 | | -import org.junit.Assert.assertNull |
6 | 4 | import org.junit.Assert.assertTrue |
7 | 5 | import org.junit.Test |
8 | 6 | import org.lightningdevkit.ldknode.Network |
9 | 7 |
|
10 | 8 | class NetworkValidationHelperTest { |
11 | 9 |
|
12 | | - // MARK: - getAddressNetwork Tests |
13 | | - |
14 | | - // Mainnet addresses |
15 | | - @Test |
16 | | - fun `getAddressNetwork - mainnet bech32`() { |
17 | | - val address = "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4" |
18 | | - assertEquals(Network.BITCOIN, NetworkValidationHelper.getAddressNetwork(address)) |
19 | | - } |
20 | | - |
21 | | - @Test |
22 | | - fun `getAddressNetwork - mainnet bech32 uppercase`() { |
23 | | - val address = "BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4" |
24 | | - assertEquals(Network.BITCOIN, NetworkValidationHelper.getAddressNetwork(address)) |
25 | | - } |
26 | | - |
27 | | - @Test |
28 | | - fun `getAddressNetwork - mainnet P2PKH`() { |
29 | | - val address = "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2" |
30 | | - assertEquals(Network.BITCOIN, NetworkValidationHelper.getAddressNetwork(address)) |
31 | | - } |
32 | | - |
33 | | - @Test |
34 | | - fun `getAddressNetwork - mainnet P2SH`() { |
35 | | - val address = "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy" |
36 | | - assertEquals(Network.BITCOIN, NetworkValidationHelper.getAddressNetwork(address)) |
37 | | - } |
38 | | - |
39 | | - // Testnet addresses |
40 | | - @Test |
41 | | - fun `getAddressNetwork - testnet bech32`() { |
42 | | - val address = "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx" |
43 | | - assertEquals(Network.TESTNET, NetworkValidationHelper.getAddressNetwork(address)) |
44 | | - } |
45 | | - |
46 | | - @Test |
47 | | - fun `getAddressNetwork - testnet P2PKH m prefix`() { |
48 | | - val address = "mipcBbFg9gMiCh81Kj8tqqdgoZub1ZJRfn" |
49 | | - assertEquals(Network.TESTNET, NetworkValidationHelper.getAddressNetwork(address)) |
50 | | - } |
51 | | - |
52 | | - @Test |
53 | | - fun `getAddressNetwork - testnet P2PKH n prefix`() { |
54 | | - val address = "n3ZddxzLvAY9o7184TB4c6FJasAybsw4HZ" |
55 | | - assertEquals(Network.TESTNET, NetworkValidationHelper.getAddressNetwork(address)) |
56 | | - } |
57 | | - |
58 | | - @Test |
59 | | - fun `getAddressNetwork - testnet P2SH`() { |
60 | | - val address = "2MzQwSSnBHWHqSAqtTVQ6v47XtaisrJa1Vc" |
61 | | - assertEquals(Network.TESTNET, NetworkValidationHelper.getAddressNetwork(address)) |
62 | | - } |
63 | | - |
64 | | - // Regtest addresses |
65 | | - @Test |
66 | | - fun `getAddressNetwork - regtest bech32`() { |
67 | | - val address = "bcrt1q6rhpng9evdsfnn833a4f4vej0asu6dk5srld6x" |
68 | | - assertEquals(Network.REGTEST, NetworkValidationHelper.getAddressNetwork(address)) |
69 | | - } |
70 | | - |
71 | | - // Edge cases |
72 | | - @Test |
73 | | - fun `getAddressNetwork - empty string`() { |
74 | | - assertNull(NetworkValidationHelper.getAddressNetwork("")) |
75 | | - } |
76 | | - |
77 | | - @Test |
78 | | - fun `getAddressNetwork - invalid address`() { |
79 | | - assertNull(NetworkValidationHelper.getAddressNetwork("invalid")) |
80 | | - } |
81 | | - |
82 | | - @Test |
83 | | - fun `getAddressNetwork - random text`() { |
84 | | - assertNull(NetworkValidationHelper.getAddressNetwork("test123")) |
85 | | - } |
86 | | - |
87 | 10 | // MARK: - isNetworkMismatch Tests |
88 | 11 |
|
89 | 12 | @Test |
@@ -118,34 +41,4 @@ class NetworkValidationHelperTest { |
118 | 41 | assertFalse(NetworkValidationHelper.isNetworkMismatch(null, Network.BITCOIN)) |
119 | 42 | assertFalse(NetworkValidationHelper.isNetworkMismatch(null, Network.REGTEST)) |
120 | 43 | } |
121 | | - |
122 | | - // MARK: - Integration Tests |
123 | | - |
124 | | - @Test |
125 | | - fun `mainnet address on regtest should mismatch`() { |
126 | | - val address = "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4" |
127 | | - val addressNetwork = NetworkValidationHelper.getAddressNetwork(address) |
128 | | - assertTrue(NetworkValidationHelper.isNetworkMismatch(addressNetwork, Network.REGTEST)) |
129 | | - } |
130 | | - |
131 | | - @Test |
132 | | - fun `testnet address on regtest should not mismatch`() { |
133 | | - val address = "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx" |
134 | | - val addressNetwork = NetworkValidationHelper.getAddressNetwork(address) |
135 | | - assertFalse(NetworkValidationHelper.isNetworkMismatch(addressNetwork, Network.REGTEST)) |
136 | | - } |
137 | | - |
138 | | - @Test |
139 | | - fun `regtest address on mainnet should mismatch`() { |
140 | | - val address = "bcrt1q6rhpng9evdsfnn833a4f4vej0asu6dk5srld6x" |
141 | | - val addressNetwork = NetworkValidationHelper.getAddressNetwork(address) |
142 | | - assertTrue(NetworkValidationHelper.isNetworkMismatch(addressNetwork, Network.BITCOIN)) |
143 | | - } |
144 | | - |
145 | | - @Test |
146 | | - fun `legacy testnet address on regtest should not mismatch`() { |
147 | | - val address = "mipcBbFg9gMiCh81Kj8tqqdgoZub1ZJRfn" // m-prefix testnet |
148 | | - val addressNetwork = NetworkValidationHelper.getAddressNetwork(address) |
149 | | - assertFalse(NetworkValidationHelper.isNetworkMismatch(addressNetwork, Network.REGTEST)) |
150 | | - } |
151 | 44 | } |
0 commit comments