@@ -13,43 +13,67 @@ import kotlin.test.*
1313
1414@OptIn(ExperimentalCli ::class )
1515class 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" ))
0 commit comments