...
1
2
3
4 package hcn
5
6 import (
7 "encoding/json"
8 "testing"
9
10 "github.com/Microsoft/go-winio/pkg/guid"
11 )
12
13 func TestMissingNetworkByName(t *testing.T) {
14 _, err := GetNetworkByName("Not found name")
15 if err == nil {
16 t.Fatal("Error was not thrown.")
17 }
18 if !IsNotFoundError(err) {
19 t.Fatal("Unrelated error was thrown.", err)
20 }
21 if _, ok := err.(NetworkNotFoundError); !ok {
22 t.Fatal("Wrong error type was thrown.", err)
23 }
24 if err.Error() != `Network name "Not found name" not found` {
25 t.Fatal("Wrong error message was returned", err.Error())
26 }
27 }
28
29 func TestMissingNetworkById(t *testing.T) {
30
31 _, err := GetNetworkByID("5f0b1190-63be-4e0c-b974-bd0f55675a42")
32 if err == nil {
33 t.Fatal("Error was not thrown.")
34 }
35 if !IsNotFoundError(err) {
36 t.Fatal("Unrelated error was thrown.", err)
37 }
38 if _, ok := err.(NetworkNotFoundError); !ok {
39 t.Fatal("Wrong error type was thrown.", err)
40 }
41 if err.Error() != `Network ID "5f0b1190-63be-4e0c-b974-bd0f55675a42" not found` {
42 t.Fatal("Wrong error message was returned", err.Error())
43 }
44 }
45
46 func TestMissingNamespaceById(t *testing.T) {
47
48 _, err := GetNamespaceByID("5f0b1190-63be-4e0c-b974-bd0f55675a42")
49 if err == nil {
50 t.Fatal("Error was not thrown.")
51 }
52
53 if !IsNotFoundError(err) {
54 t.Fatal("Unrelated error was thrown.", err)
55 }
56 if _, ok := err.(NamespaceNotFoundError); !ok {
57 t.Fatal("Wrong error type was thrown.", err)
58 }
59 if err.Error() != `Namespace ID "5f0b1190-63be-4e0c-b974-bd0f55675a42" not found` {
60 t.Fatal("Wrong error message was returned.", err.Error())
61 }
62 }
63
64 func TestEndpointAlreadyExistsError(t *testing.T) {
65 testNetwork, err := CreateTestOverlayNetwork()
66 if err != nil {
67 t.Fatal("Failed to create overlay network for setup.", err)
68 }
69 defer testNetwork.Delete()
70 portMappingSetting := PortMappingPolicySetting{
71 Protocol: 17,
72 InternalPort: 45678,
73 ExternalPort: 56789,
74 }
75 settingString, _ := json.Marshal(portMappingSetting)
76 portMappingPolicy := EndpointPolicy{
77 Type: PortMapping,
78 Settings: settingString,
79 }
80
81 endpoint, err := HcnCreateTestEndpointWithPolicies(testNetwork, []EndpointPolicy{portMappingPolicy})
82 if err != nil {
83 t.Fatal("Failed to create endpoint for setup.", err)
84 }
85 defer endpoint.Delete()
86
87 endpoint2, err := HcnCreateTestEndpointWithPolicies(testNetwork, []EndpointPolicy{portMappingPolicy})
88 if err == nil {
89 _ = endpoint2.Delete()
90 t.Fatal("Endpoint should have failed with duplicate port mapping.", err)
91 }
92
93 if !IsPortAlreadyExistsError(err) {
94 t.Fatal("Error is not a PortAlreadyExists Error", err)
95 }
96 }
97
98 func TestNotFoundError(t *testing.T) {
99 namespaceGuid, _ := guid.FromString("5f0b1190-63be-4e0c-b974-bd0f55675a42")
100 _, err := getNamespace(namespaceGuid, "")
101 if !IsElementNotFoundError(err) {
102 t.Fatal("Error is not a ElementNotFound Error.", err)
103 }
104 }
105
View as plain text