-
Notifications
You must be signed in to change notification settings - Fork 61
/
Copy pathtarget_test.go
67 lines (64 loc) · 1.57 KB
/
target_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package consul
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func Test_parseURL(t *testing.T) {
tests := []struct {
name string
input string
want target
err bool
}{
{"simple", "consul://127.0.0.127:8555/my-service",
target{
Addr: "127.0.0.127:8555",
Service: "my-service",
Near: "_agent",
MaxBackoff: time.Second,
},
false,
},
{"all-args", "consul://user:[email protected]:8555/my-service?wait=14s&near=host&insecure=true&limit=1&tag=production&token=test_token&max-backoff=2s&dc=xx&allow-stale=true&require-consistent=true",
target{
Addr: "127.0.0.127:8555",
User: "user",
Password: "password",
Service: "my-service",
Near: "host",
Wait: 14 * time.Second,
TLSInsecure: true,
Limit: 1,
Tag: "production",
Token: "test_token",
MaxBackoff: 2 * time.Second,
Dc: "xx",
AllowStale: true,
RequireConsistent: true,
},
false,
},
{"bad-scheme", "127.0.0.127:8555/my-service",
target{},
true,
},
{"no-service", "consul://127.0.0.127:8555",
target{},
true,
},
{"bad-arg", "consul://127.0.0.127:8555/s?insecure=BADDD",
target{},
true,
},
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := parseURL(tt.input)
require.Equal(t, tt.err, err != nil)
assert.Equal(t, tt.want, got)
})
}
}