1
2
3
4 package hcn
5
6 import (
7 "encoding/json"
8 "fmt"
9 "testing"
10 )
11
12 func TestSupportedFeatures(t *testing.T) {
13 supportedFeatures := GetSupportedFeatures()
14 jsonString, err := json.Marshal(supportedFeatures)
15 if err != nil {
16 t.Fatal(err)
17 }
18 fmt.Printf("Supported Features:\n%s \n", jsonString)
19 }
20
21 func TestV2ApiSupport(t *testing.T) {
22 supportedFeatures := GetSupportedFeatures()
23 err := V2ApiSupported()
24 if supportedFeatures.Api.V2 && err != nil {
25 t.Fatal(err)
26 }
27 if !supportedFeatures.Api.V2 && err == nil {
28 t.Fatal(err)
29 }
30 }
31
32 func TestRemoteSubnetSupport(t *testing.T) {
33 supportedFeatures := GetSupportedFeatures()
34 err := RemoteSubnetSupported()
35 if supportedFeatures.RemoteSubnet && err != nil {
36 t.Fatal(err)
37 }
38 if !supportedFeatures.RemoteSubnet && err == nil {
39 t.Fatal(err)
40 }
41 }
42
43 func TestHostRouteSupport(t *testing.T) {
44 supportedFeatures := GetSupportedFeatures()
45 err := HostRouteSupported()
46 if supportedFeatures.HostRoute && err != nil {
47 t.Fatal(err)
48 }
49 if !supportedFeatures.HostRoute && err == nil {
50 t.Fatal(err)
51 }
52 }
53
54 func TestDSRSupport(t *testing.T) {
55 supportedFeatures := GetSupportedFeatures()
56 err := DSRSupported()
57 if supportedFeatures.DSR && err != nil {
58 t.Fatal(err)
59 }
60 if !supportedFeatures.DSR && err == nil {
61 t.Fatal(err)
62 }
63 }
64
65 func TestSlash32EndpointPrefixesSupport(t *testing.T) {
66 supportedFeatures := GetSupportedFeatures()
67 err := Slash32EndpointPrefixesSupported()
68 if supportedFeatures.Slash32EndpointPrefixes && err != nil {
69 t.Fatal(err)
70 }
71 if !supportedFeatures.Slash32EndpointPrefixes && err == nil {
72 t.Fatal(err)
73 }
74 }
75
76 func TestAclSupportForProtocol252Support(t *testing.T) {
77 supportedFeatures := GetSupportedFeatures()
78 err := AclSupportForProtocol252Supported()
79 if supportedFeatures.AclSupportForProtocol252 && err != nil {
80 t.Fatal(err)
81 }
82 if !supportedFeatures.AclSupportForProtocol252 && err == nil {
83 t.Fatal(err)
84 }
85 }
86
87 func TestSessionAffinitySupport(t *testing.T) {
88 supportedFeatures := GetSupportedFeatures()
89 err := SessionAffinitySupported()
90 if supportedFeatures.SessionAffinity && err != nil {
91 t.Fatal(err)
92 }
93 if !supportedFeatures.SessionAffinity && err == nil {
94 t.Fatal(err)
95 }
96 }
97
98 func TestIPv6DualStackSupport(t *testing.T) {
99 supportedFeatures := GetSupportedFeatures()
100 err := IPv6DualStackSupported()
101 if supportedFeatures.IPv6DualStack && err != nil {
102 t.Fatal(err)
103 }
104 if !supportedFeatures.IPv6DualStack && err == nil {
105 t.Fatal(err)
106 }
107 }
108
109 func TestSetPolicySupport(t *testing.T) {
110 supportedFeatures := GetSupportedFeatures()
111 err := SetPolicySupported()
112 if supportedFeatures.SetPolicy && err != nil {
113 t.Fatal(err)
114 }
115 if !supportedFeatures.SetPolicy && err == nil {
116 t.Fatal(err)
117 }
118 }
119
120 func TestNestedIpSetSupport(t *testing.T) {
121 supportedFeatures := GetSupportedFeatures()
122 err := NestedIpSetSupported()
123 if supportedFeatures.NestedIpSet && err != nil {
124 t.Fatal(err)
125 }
126 if !supportedFeatures.NestedIpSet && err == nil {
127 t.Fatal(err)
128 }
129 }
130
131 func TestNetworkACLPolicySupport(t *testing.T) {
132 supportedFeatures := GetSupportedFeatures()
133 err := NetworkACLPolicySupported()
134 if supportedFeatures.NetworkACL && err != nil {
135 t.Fatal(err)
136 }
137 if !supportedFeatures.NetworkACL && err == nil {
138 t.Fatal(err)
139 }
140 }
141
142 func TestVxlanPortSupport(t *testing.T) {
143 supportedFeatures := GetSupportedFeatures()
144 err := VxlanPortSupported()
145 if supportedFeatures.VxlanPort && err != nil {
146 t.Fatal(err)
147 }
148 if !supportedFeatures.VxlanPort && err == nil {
149 t.Fatal(err)
150 }
151 }
152
153 func TestL4ProxyPolicySupport(t *testing.T) {
154 supportedFeatures := GetSupportedFeatures()
155 err := L4proxyPolicySupported()
156 if supportedFeatures.L4Proxy && err != nil {
157 t.Fatal(err)
158 }
159 if !supportedFeatures.L4Proxy && err == nil {
160 t.Fatal(err)
161 }
162 }
163
164 func TestL4WfpProxyPolicySupport(t *testing.T) {
165 supportedFeatures := GetSupportedFeatures()
166 err := L4WfpProxyPolicySupported()
167 if supportedFeatures.L4WfpProxy && err != nil {
168 t.Fatal(err)
169 }
170 if !supportedFeatures.L4WfpProxy && err == nil {
171 t.Fatal(err)
172 }
173 }
174
175 func TestTierAclPolicySupport(t *testing.T) {
176 supportedFeatures := GetSupportedFeatures()
177 err := TierAclPolicySupported()
178 if supportedFeatures.TierAcl && err != nil {
179 t.Fatal(err)
180 }
181 if !supportedFeatures.TierAcl && err == nil {
182 t.Fatal(err)
183 }
184 }
185
186 func TestIsFeatureSupported(t *testing.T) {
187
188 if isFeatureSupported(Version{Major: 0, Minor: 0}, HNSVersion1803) {
189 t.Fatalf("HNSVersion1803 should NOT be supported on HNS version 0.0")
190 }
191
192 if isFeatureSupported(Version{Major: 7, Minor: 0}, HNSVersion1803) {
193 t.Fatalf("HNSVersion1803 should NOT be supported on HNS version 7.1")
194 }
195
196 if isFeatureSupported(Version{Major: 7, Minor: 1}, HNSVersion1803) {
197 t.Fatalf("HNSVersion1803 should NOT be supported on HNS version 7.1")
198 }
199
200 if !isFeatureSupported(Version{Major: 7, Minor: 2}, HNSVersion1803) {
201 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 7.2")
202 }
203
204 if !isFeatureSupported(Version{Major: 7, Minor: 3}, HNSVersion1803) {
205 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 7.3")
206 }
207
208 if !isFeatureSupported(Version{Major: 8, Minor: 0}, HNSVersion1803) {
209 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 8.0")
210 }
211
212 if !isFeatureSupported(Version{Major: 8, Minor: 2}, HNSVersion1803) {
213 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 8.2")
214 }
215
216 if !isFeatureSupported(Version{Major: 8, Minor: 3}, HNSVersion1803) {
217 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 8.3")
218 }
219
220 if !isFeatureSupported(Version{Major: 255, Minor: 2}, HNSVersion1803) {
221 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 255.2")
222 }
223
224 if !isFeatureSupported(Version{Major: 255, Minor: 0}, HNSVersion1803) {
225 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 255.0")
226 }
227
228 if !isFeatureSupported(Version{Major: 255, Minor: 6}, HNSVersion1803) {
229 t.Fatalf("HNSVersion1803 SHOULD be supported on HNS version 255.6")
230 }
231
232
233 if isFeatureSupported(Version{Major: 8, Minor: 0}, Slash32EndpointPrefixesVersion) {
234 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 8.0")
235 }
236
237 if isFeatureSupported(Version{Major: 8, Minor: 2}, Slash32EndpointPrefixesVersion) {
238 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 8.2")
239 }
240
241 if isFeatureSupported(Version{Major: 8, Minor: 3}, Slash32EndpointPrefixesVersion) {
242 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 8.3")
243 }
244
245 if isFeatureSupported(Version{Major: 8, Minor: 4}, Slash32EndpointPrefixesVersion) {
246 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 8.4")
247 }
248
249 if isFeatureSupported(Version{Major: 8, Minor: 5}, Slash32EndpointPrefixesVersion) {
250 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 8.5")
251 }
252
253 if isFeatureSupported(Version{Major: 9, Minor: 0}, Slash32EndpointPrefixesVersion) {
254 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 9.0")
255 }
256
257 if isFeatureSupported(Version{Major: 9, Minor: 2}, Slash32EndpointPrefixesVersion) {
258 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 9.2")
259 }
260
261
262 if !isFeatureSupported(Version{Major: 9, Minor: 3}, Slash32EndpointPrefixesVersion) {
263 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 9.3")
264 }
265
266 if !isFeatureSupported(Version{Major: 9, Minor: 4}, Slash32EndpointPrefixesVersion) {
267 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 9.4")
268 }
269
270 if !isFeatureSupported(Version{Major: 9, Minor: 5}, Slash32EndpointPrefixesVersion) {
271 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 9.5")
272 }
273
274 if !isFeatureSupported(Version{Major: 9, Minor: 9}, Slash32EndpointPrefixesVersion) {
275 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 9.9")
276 }
277
278 if !isFeatureSupported(Version{Major: 9, Minor: 372}, Slash32EndpointPrefixesVersion) {
279 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 9.372")
280 }
281
282
283 if isFeatureSupported(Version{Major: 10, Minor: 0}, Slash32EndpointPrefixesVersion) {
284 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 10.0")
285 }
286
287 if isFeatureSupported(Version{Major: 10, Minor: 1}, Slash32EndpointPrefixesVersion) {
288 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 10.1")
289 }
290
291 if isFeatureSupported(Version{Major: 10, Minor: 2}, Slash32EndpointPrefixesVersion) {
292 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 10.2")
293 }
294
295 if isFeatureSupported(Version{Major: 10, Minor: 3}, Slash32EndpointPrefixesVersion) {
296 t.Fatalf("Slash32EndpointPrefixesVersion should NOT be supported on HNS version 10.3")
297 }
298
299
300 if !isFeatureSupported(Version{Major: 10, Minor: 4}, Slash32EndpointPrefixesVersion) {
301 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 10.4")
302 }
303
304 if !isFeatureSupported(Version{Major: 10, Minor: 5}, Slash32EndpointPrefixesVersion) {
305 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 10.5")
306 }
307
308 if !isFeatureSupported(Version{Major: 10, Minor: 9}, Slash32EndpointPrefixesVersion) {
309 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 10.9")
310 }
311
312 if !isFeatureSupported(Version{Major: 10, Minor: 410}, Slash32EndpointPrefixesVersion) {
313 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 10.410")
314 }
315
316 if !isFeatureSupported(Version{Major: 11, Minor: 0}, Slash32EndpointPrefixesVersion) {
317 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 11.0")
318 }
319
320 if !isFeatureSupported(Version{Major: 11, Minor: 1}, Slash32EndpointPrefixesVersion) {
321 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 11.1")
322 }
323
324 if !isFeatureSupported(Version{Major: 11, Minor: 2}, Slash32EndpointPrefixesVersion) {
325 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 11.2")
326 }
327
328 if !isFeatureSupported(Version{Major: 11, Minor: 3}, Slash32EndpointPrefixesVersion) {
329 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 11.3")
330 }
331
332 if !isFeatureSupported(Version{Major: 11, Minor: 4}, Slash32EndpointPrefixesVersion) {
333 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 11.4")
334 }
335
336 if !isFeatureSupported(Version{Major: 11, Minor: 5}, Slash32EndpointPrefixesVersion) {
337 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 11.5")
338 }
339
340 if !isFeatureSupported(Version{Major: 11, Minor: 9}, Slash32EndpointPrefixesVersion) {
341 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 11.9")
342 }
343
344 if !isFeatureSupported(Version{Major: 255, Minor: 2}, Slash32EndpointPrefixesVersion) {
345 t.Fatalf("Slash32EndpointPrefixesVersion SHOULD be supported on HNS version 255.2")
346 }
347 }
348
View as plain text