From 3821bd2202bcc6aa7403dfbab423bd632cd8dd54 Mon Sep 17 00:00:00 2001 From: mads krogh Date: Tue, 11 Jan 2022 23:04:18 +0100 Subject: [PATCH] lncli: add test for parseChanPoint --- cmd/lncli/commands_test.go | 70 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 cmd/lncli/commands_test.go diff --git a/cmd/lncli/commands_test.go b/cmd/lncli/commands_test.go new file mode 100644 index 000000000..48de92e78 --- /dev/null +++ b/cmd/lncli/commands_test.go @@ -0,0 +1,70 @@ +package main + +import ( + "errors" + "testing" + + "github.com/stretchr/testify/require" +) + +// TestParseChanPoint tests parseChanPoint with various +// valid and invalid input values and verifies the output. +func TestParseChanPoint(t *testing.T) { + testCases := []struct { + channelPoinStr string + channelPointIsNil bool + outputIndex uint32 + err error + }{ + { + "24581424081379576b4a7580ace91db10925d996a2a8d45c8034" + + "3a5a467dc0bc:0", + false, + 0, + nil, + }, { + "24581424081379576b4a7580ace91db10925d996a2a8d45c8034" + + "3a5a467dc0bc:4", + false, + 4, + nil, + }, { + ":", + true, + 0, + errBadChanPoint, + }, { + ":0", + true, + 0, + errBadChanPoint, + }, { + "24581424081379576b4a7580ace91db10925d996a2a8d45c8034" + + "3a5a467dc0bc:", + true, + 0, + errBadChanPoint, + }, { + "24581424081379576b4a7580ace91db10925d996a2a8d45c8034" + + "3a5a467dc0bc:string", + true, + 0, + errors.New("unable to decode output index: strconv." + + "ParseInt: parsing \"string\": invalid syntax"), + }, { + "not_hex:0", + true, + 0, + errors.New("unable to parse hex string: encoding/hex:" + + " invalid byte: U+006E 'n'"), + }, + } + for _, tc := range testCases { + cp, err := parseChanPoint(tc.channelPoinStr) + require.Equal(t, tc.err, err) + require.Equal(t, tc.channelPointIsNil, cp == nil) + if !tc.channelPointIsNil { + require.Equal(t, tc.outputIndex, cp.OutputIndex) + } + } +}