1 package util
2
3 import (
4 "testing"
5
6 "github.com/go-test/deep"
7 httpPb "github.com/linkerd/linkerd2-proxy-api/go/http_types"
8 )
9
10 func TestParseScheme(t *testing.T) {
11 cases := []struct {
12 scheme string
13 expected *httpPb.Scheme
14 }{
15 {
16 scheme: "http",
17 expected: &httpPb.Scheme{
18 Type: &httpPb.Scheme_Registered_{
19 Registered: 0,
20 },
21 },
22 },
23 {
24 scheme: "https",
25 expected: &httpPb.Scheme{
26 Type: &httpPb.Scheme_Registered_{
27 Registered: 1,
28 },
29 },
30 },
31 {
32 scheme: "unknown",
33 expected: &httpPb.Scheme{
34 Type: &httpPb.Scheme_Unregistered{
35 Unregistered: "UNKNOWN",
36 },
37 },
38 },
39 }
40
41 for _, c := range cases {
42 c := c
43 t.Run(c.scheme, func(t *testing.T) {
44 got := ParseScheme(c.scheme)
45 if diff := deep.Equal(c.expected, got); diff != nil {
46 t.Errorf("%v", diff)
47 }
48 })
49 }
50 }
51
52 func TestParseMethod(t *testing.T) {
53 cases := []struct {
54 method string
55 expected *httpPb.HttpMethod
56 }{
57 {
58 method: "get",
59 expected: &httpPb.HttpMethod{
60 Type: &httpPb.HttpMethod_Registered_{
61 Registered: 0,
62 },
63 },
64 },
65 {
66 method: "post",
67 expected: &httpPb.HttpMethod{
68 Type: &httpPb.HttpMethod_Registered_{
69 Registered: 1,
70 },
71 },
72 },
73 {
74 method: "put",
75 expected: &httpPb.HttpMethod{
76 Type: &httpPb.HttpMethod_Registered_{
77 Registered: 2,
78 },
79 },
80 },
81 {
82 method: "delete",
83 expected: &httpPb.HttpMethod{
84 Type: &httpPb.HttpMethod_Registered_{
85 Registered: 3,
86 },
87 },
88 },
89 {
90 method: "patch",
91 expected: &httpPb.HttpMethod{
92 Type: &httpPb.HttpMethod_Registered_{
93 Registered: 4,
94 },
95 },
96 },
97 {
98 method: "options",
99 expected: &httpPb.HttpMethod{
100 Type: &httpPb.HttpMethod_Registered_{
101 Registered: 5,
102 },
103 },
104 },
105 {
106 method: "connect",
107 expected: &httpPb.HttpMethod{
108 Type: &httpPb.HttpMethod_Registered_{
109 Registered: 6,
110 },
111 },
112 },
113 {
114 method: "head",
115 expected: &httpPb.HttpMethod{
116 Type: &httpPb.HttpMethod_Registered_{
117 Registered: 7,
118 },
119 },
120 },
121 {
122 method: "trace",
123 expected: &httpPb.HttpMethod{
124 Type: &httpPb.HttpMethod_Registered_{
125 Registered: 8,
126 },
127 },
128 },
129 {
130 method: "unknown",
131 expected: &httpPb.HttpMethod{
132 Type: &httpPb.HttpMethod_Unregistered{
133 Unregistered: "UNKNOWN",
134 },
135 },
136 },
137 }
138
139 for _, c := range cases {
140 c := c
141 t.Run(c.method, func(t *testing.T) {
142 got := ParseMethod(c.method)
143 if diff := deep.Equal(c.expected, got); diff != nil {
144 t.Errorf("%v", diff)
145 }
146 })
147 }
148 }
149
View as plain text