1package xrpc
2
3import (
4 "testing"
5)
6
7// TestMakeParams tests the makeParams function.
8func TestMakeParams(t *testing.T) {
9 testCases := []struct {
10 name string
11 input map[string]interface{}
12 expected string
13 }{
14 {
15 name: "Empty input",
16 input: map[string]interface{}{},
17 expected: "",
18 },
19 {
20 name: "Single value",
21 input: map[string]interface{}{
22 "key": "value",
23 },
24 expected: "key=value",
25 },
26 {
27 name: "Multiple values",
28 input: map[string]interface{}{
29 "key1": "value1",
30 "key2": "value2",
31 },
32 expected: "key1=value1&key2=value2",
33 },
34 {
35 name: "Slice of strings",
36 input: map[string]interface{}{
37 "key": []string{"value1", "value2", "value3"},
38 },
39 expected: "key=value1&key=value2&key=value3",
40 },
41 {
42 name: "Mixed values",
43 input: map[string]interface{}{
44 "key1": "value1",
45 "key2": []string{"value2", "value3"},
46 },
47 expected: "key1=value1&key2=value2&key2=value3",
48 },
49 }
50
51 for _, tc := range testCases {
52 t.Run(tc.name, func(t *testing.T) {
53 result := makeParams(tc.input)
54 if result != tc.expected {
55 t.Errorf("got '%q', want '%q'", result, tc.expected)
56 }
57 })
58 }
59}