Skip to content

Commit c60dda4

Browse files
author
Mohit Kumar
committed
Add test for format=nodeId and shortChannelId
1 parent 6f6807c commit c60dda4

File tree

4 files changed

+242
-90
lines changed

4 files changed

+242
-90
lines changed

src/nativeTest/kotlin/commands/FindRouteBetweenNodesTest.kt

Lines changed: 58 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,67 @@ import kotlin.test.*
1313

1414
@OptIn(ExperimentalCli::class)
1515
class FindRouteBetweenNodesCommandTest {
16-
private fun runTest(eclairClient: IEclairClientBuilder): DummyResultWriter {
16+
private fun runTest(eclairClient: IEclairClientBuilder, format: String? = null): DummyResultWriter {
1717
val resultWriter = DummyResultWriter()
1818
val command = FindRouteBetweenNodesCommand(resultWriter, eclairClient)
1919
val parser = ArgParser("test")
2020
parser.subcommands(command)
21-
parser.parse(
22-
arrayOf(
23-
"findroutebetweennodes",
24-
"-p",
25-
"password",
26-
"--sourceNodeId",
27-
"03c5b161c16e9f8ef3f3bccfb74a6e9a3b423dd41fe2848174b7209f1c2ea25dad",
28-
"--targetNodeId",
29-
"02f666711319435b7905dd77d10c269d8d50c02668b975f526577167d370b50a3e",
30-
"--amountMsat",
31-
"1000"
32-
)
21+
val arguments = mutableListOf(
22+
"findroutebetweennodes",
23+
"-p",
24+
"password",
25+
"--sourceNodeId",
26+
"03c5b161c16e9f8ef3f3bccfb74a6e9a3b423dd41fe2848174b7209f1c2ea25dad",
27+
"--targetNodeId",
28+
"02f666711319435b7905dd77d10c269d8d50c02668b975f526577167d370b50a3e",
29+
"--amountMsat",
30+
"1000"
3331
)
32+
format?.let { arguments.addAll(listOf("--format", it)) }
33+
parser.parse(arguments.toTypedArray())
3434
return resultWriter
3535
}
3636

3737
@Test
38-
fun `successful request`() {
38+
fun `successful request via nodeId`() {
3939
val resultWriter =
40-
runTest(DummyEclairClient(findroutebetweennodesResponse = DummyEclairClient.validFindRouteBetweenNodesResponse))
40+
runTest(DummyEclairClient(), "nodeId")
4141
assertNull(resultWriter.lastError)
4242
assertNotNull(resultWriter.lastResult)
4343
val format = Json { ignoreUnknownKeys = true }
4444
assertEquals(
4545
format.decodeFromString(
4646
FindRouteResponse.serializer(),
47-
DummyEclairClient.validFindRouteBetweenNodesResponse
47+
DummyEclairClient.validRouteResponseNodeId
4848
),
4949
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!),
5050
)
5151
}
5252

53+
@Test
54+
fun `successful request via shortChannelId`() {
55+
val resultWriter = runTest(DummyEclairClient(), "shortChannelId")
56+
assertNull(resultWriter.lastError)
57+
assertNotNull(resultWriter.lastResult)
58+
val format = Json { ignoreUnknownKeys = true }
59+
assertEquals(
60+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseShortChannelId),
61+
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!)
62+
)
63+
}
64+
65+
@Test
66+
fun `successful request via full`() {
67+
val resultWriter = runTest(DummyEclairClient(), "full")
68+
assertNull(resultWriter.lastError)
69+
assertNotNull(resultWriter.lastResult)
70+
val format = Json { ignoreUnknownKeys = true }
71+
assertEquals(
72+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseFull),
73+
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!),
74+
)
75+
}
76+
5377
@Test
5478
fun `api error`() {
5579
val error = ApiError(42, "test failure message")
@@ -59,8 +83,24 @@ class FindRouteBetweenNodesCommandTest {
5983
}
6084

6185
@Test
62-
fun `serialization error`() {
63-
val resultWriter = runTest(DummyEclairClient(findroutebetweennodesResponse = "{invalidJson}"))
86+
fun `serialization error via nodeId`() {
87+
val resultWriter = runTest(DummyEclairClient(findrouteResponseNodeId = "{invalidJson}"), "nodeId")
88+
assertNull(resultWriter.lastResult)
89+
assertNotNull(resultWriter.lastError)
90+
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))
91+
}
92+
93+
@Test
94+
fun `serialization error via shortChannelId`() {
95+
val resultWriter = runTest(DummyEclairClient(findrouteResponseShortChannelId = "{invalidJson}"), "shortChannelId")
96+
assertNull(resultWriter.lastResult)
97+
assertNotNull(resultWriter.lastError)
98+
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))
99+
}
100+
101+
@Test
102+
fun `serialization error via full`() {
103+
val resultWriter = runTest(DummyEclairClient(findrouteResponseFull = "{invalidJson}"), "full")
64104
assertNull(resultWriter.lastResult)
65105
assertNotNull(resultWriter.lastError)
66106
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))

src/nativeTest/kotlin/commands/FindRouteTest.kt

Lines changed: 54 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,55 @@ import kotlin.test.*
1313

1414
@OptIn(ExperimentalCli::class)
1515
class FindRouteCommandTest {
16-
private fun runTest(eclairClient: IEclairClientBuilder): DummyResultWriter {
16+
private fun runTest(eclairClient: IEclairClientBuilder, format: String? = null): DummyResultWriter {
1717
val resultWriter = DummyResultWriter()
1818
val command = FindRouteCommand(resultWriter, eclairClient)
1919
val parser = ArgParser("test")
2020
parser.subcommands(command)
21-
parser.parse(
22-
arrayOf(
23-
"findroute",
24-
"-p",
25-
"password",
26-
"--invoice",
27-
"lnbcrt10n1pjduajwpp5s6dsm9vk3q0ntxeq2zd6d4jz8mv8wau75dugud5puc3lltwp68esdqsd3shgetnw33k7er9sp5rye5z7eccrg7kx9jj6u24q2aumgl09e0e894w6hdceyk60g7a2hsmqz9gxqrrsscqp79q7sqqqqqqqqqqqqqqqqqqqsqqqqqysgq9fktzq8fpyey9js0x85t6s5mtcwqzmmd4ql9cjq04f4tunlysje894mdcmhjwkewrk5wn2ylv3da64pda7tj04s3m90en5t6p7yyglgpue2lzz",
28-
"--format",
29-
"full"
30-
)
21+
val arguments = mutableListOf(
22+
"findroute",
23+
"-p",
24+
"password",
25+
"--invoice",
26+
"lnbcrt10n1pjduajwpp5s6dsm9vk3q0ntxeq2zd6d4jz8mv8wau75dugud5puc3lltwp68esdqsd3shgetnw33k7er9sp5rye5z7eccrg7kx9jj6u24q2aumgl09e0e894w6hdceyk60g7a2hsmqz9gxqrrsscqp79q7sqqqqqqqqqqqqqqqqqqqsqqqqqysgq9fktzq8fpyey9js0x85t6s5mtcwqzmmd4ql9cjq04f4tunlysje894mdcmhjwkewrk5wn2ylv3da64pda7tj04s3m90en5t6p7yyglgpue2lzz"
3127
)
28+
format?.let { arguments.addAll(listOf("--format", it)) }
29+
parser.parse(arguments.toTypedArray())
3230
return resultWriter
3331
}
3432

3533
@Test
36-
fun `successful request`() {
37-
val resultWriter = runTest(DummyEclairClient(findrouteResponse = DummyEclairClient.validFindRouteResponse))
34+
fun `successful request via nodeId`() {
35+
val resultWriter = runTest(DummyEclairClient(), "nodeId")
3836
assertNull(resultWriter.lastError)
3937
assertNotNull(resultWriter.lastResult)
4038
val format = Json { ignoreUnknownKeys = true }
4139
assertEquals(
42-
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validFindRouteResponse),
40+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseNodeId),
41+
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!),
42+
)
43+
}
44+
45+
@Test
46+
fun `successful request via shortChannelId`() {
47+
val resultWriter = runTest(DummyEclairClient(), "shortChannelId")
48+
assertNull(resultWriter.lastError)
49+
assertNotNull(resultWriter.lastResult)
50+
val format = Json { ignoreUnknownKeys = true }
51+
assertEquals(
52+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseShortChannelId),
53+
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!),
54+
)
55+
}
56+
57+
@Test
58+
fun `successful request via full`() {
59+
val resultWriter = runTest(DummyEclairClient(), "full")
60+
assertNull(resultWriter.lastError)
61+
assertNotNull(resultWriter.lastResult)
62+
val format = Json { ignoreUnknownKeys = true }
63+
assertEquals(
64+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseFull),
4365
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!),
4466
)
4567
}
@@ -53,8 +75,24 @@ class FindRouteCommandTest {
5375
}
5476

5577
@Test
56-
fun `serialization error`() {
57-
val resultWriter = runTest(DummyEclairClient(findrouteResponse = "{invalidJson}"))
78+
fun `serialization error via nodeId`() {
79+
val resultWriter = runTest(DummyEclairClient(findrouteResponseNodeId = "{invalidJson}"), "nodeId")
80+
assertNull(resultWriter.lastResult)
81+
assertNotNull(resultWriter.lastError)
82+
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))
83+
}
84+
85+
@Test
86+
fun `serialization error via shortChannelId`() {
87+
val resultWriter = runTest(DummyEclairClient(findrouteResponseShortChannelId = "{invalidJson}"), "shortChannelId")
88+
assertNull(resultWriter.lastResult)
89+
assertNotNull(resultWriter.lastError)
90+
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))
91+
}
92+
93+
@Test
94+
fun `serialization error via full`() {
95+
val resultWriter = runTest(DummyEclairClient(findrouteResponseFull = "{invalidJson}"), "full")
5896
assertNull(resultWriter.lastResult)
5997
assertNotNull(resultWriter.lastError)
6098
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))

src/nativeTest/kotlin/commands/FindRouteToNodeTest.kt

Lines changed: 56 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,57 @@ import kotlin.test.*
1313

1414
@OptIn(ExperimentalCli::class)
1515
class FindRouteToNodeTestCommandTest {
16-
private fun runTest(eclairClient: IEclairClientBuilder): DummyResultWriter {
16+
private fun runTest(eclairClient: IEclairClientBuilder, format: String? = null): DummyResultWriter {
1717
val resultWriter = DummyResultWriter()
1818
val command = FindRouteToNodeCommand(resultWriter, eclairClient)
1919
val parser = ArgParser("test")
2020
parser.subcommands(command)
21-
parser.parse(
22-
arrayOf(
23-
"findroutetonode",
24-
"-p",
25-
"password",
26-
"--nodeId",
27-
"02f666711319435b7905dd77d10c269d8d50c02668b975f526577167d370b50a3e",
28-
"--amountMsat",
29-
"1000"
30-
)
21+
val arguments = mutableListOf(
22+
"findroutetonode",
23+
"-p",
24+
"password",
25+
"--nodeId",
26+
"02f666711319435b7905dd77d10c269d8d50c02668b975f526577167d370b50a3e",
27+
"--amountMsat",
28+
"1000"
3129
)
30+
format?.let { arguments.addAll(listOf("--format", it)) }
31+
parser.parse(arguments.toTypedArray())
3232
return resultWriter
3333
}
3434

3535
@Test
36-
fun `successful request`() {
37-
val resultWriter =
38-
runTest(DummyEclairClient(findroutetonodeResponse = DummyEclairClient.validFindRouteToNodeResponse))
36+
fun `successful request via nodeId`() {
37+
val resultWriter = runTest(DummyEclairClient(), "nodeId")
3938
assertNull(resultWriter.lastError)
4039
assertNotNull(resultWriter.lastResult)
4140
val format = Json { ignoreUnknownKeys = true }
4241
assertEquals(
43-
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validFindRouteToNodeResponse),
42+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseNodeId),
43+
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!),
44+
)
45+
}
46+
47+
@Test
48+
fun `successful request via shortChannelId`() {
49+
val resultWriter = runTest(DummyEclairClient(), "shortChannelId")
50+
assertNull(resultWriter.lastError)
51+
assertNotNull(resultWriter.lastResult)
52+
val format = Json { ignoreUnknownKeys = true }
53+
assertEquals(
54+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseShortChannelId),
55+
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!)
56+
)
57+
}
58+
59+
@Test
60+
fun `successful request via full`() {
61+
val resultWriter = runTest(DummyEclairClient(), "full")
62+
assertNull(resultWriter.lastError)
63+
assertNotNull(resultWriter.lastResult)
64+
val format = Json { ignoreUnknownKeys = true }
65+
assertEquals(
66+
format.decodeFromString(FindRouteResponse.serializer(), DummyEclairClient.validRouteResponseFull),
4467
format.decodeFromString(FindRouteResponse.serializer(), resultWriter.lastResult!!),
4568
)
4669
}
@@ -54,8 +77,24 @@ class FindRouteToNodeTestCommandTest {
5477
}
5578

5679
@Test
57-
fun `serialization error`() {
58-
val resultWriter = runTest(DummyEclairClient(findroutetonodeResponse = "{invalidJson}"))
80+
fun `serialization error via nodeId`() {
81+
val resultWriter = runTest(DummyEclairClient(findrouteResponseNodeId = "{invalidJson}"), "nodeId")
82+
assertNull(resultWriter.lastResult)
83+
assertNotNull(resultWriter.lastError)
84+
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))
85+
}
86+
87+
@Test
88+
fun `serialization error via shortChannelId`() {
89+
val resultWriter = runTest(DummyEclairClient(findrouteResponseShortChannelId = "{invalidJson}"), "shortChannelId")
90+
assertNull(resultWriter.lastResult)
91+
assertNotNull(resultWriter.lastError)
92+
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))
93+
}
94+
95+
@Test
96+
fun `serialization error via full`() {
97+
val resultWriter = runTest(DummyEclairClient(findrouteResponseFull = "{invalidJson}"), "full")
5998
assertNull(resultWriter.lastResult)
6099
assertNotNull(resultWriter.lastError)
61100
assertTrue(resultWriter.lastError!!.message.contains("api response could not be parsed"))

0 commit comments

Comments
 (0)