github.com/vmware/govmomi@v0.51.0/cli/esx/response_test.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package esx 6 7 import ( 8 "bytes" 9 "fmt" 10 "os" 11 "reflect" 12 "testing" 13 14 "github.com/vmware/govmomi/vim25/types" 15 "github.com/vmware/govmomi/vim25/xml" 16 ) 17 18 func load(name string) *Response { 19 f, err := os.Open(name) 20 if err != nil { 21 panic(err) 22 } 23 24 defer f.Close() 25 26 var b Response 27 28 dec := xml.NewDecoder(f) 29 dec.TypeFunc = types.TypeFunc() 30 if err := dec.Decode(&b); err != nil { 31 panic(err) 32 } 33 34 return &b 35 } 36 37 func TestSystemHostnameGetResponse(t *testing.T) { 38 res := load("fixtures/system_hostname_get.xml") 39 40 expect := []Values{ 41 { 42 "DomainName": {"localdomain"}, 43 "FullyQualifiedDomainName": {"esxbox.localdomain"}, 44 "HostName": {"esxbox"}, 45 }, 46 } 47 48 if !reflect.DeepEqual(res.Values, expect) { 49 t.Errorf("%s != %s", res.Values, expect) 50 } 51 } 52 53 func TestNetworkVmList(t *testing.T) { 54 res := load("fixtures/network_vm_list.xml") 55 56 expect := []Values{ 57 { 58 "Name": {"foo"}, 59 "Networks": {"VM Network", "dougm"}, 60 "NumPorts": {"2"}, 61 "WorldID": {"98842"}, 62 }, 63 { 64 "Name": {"bar"}, 65 "Networks": {"VM Network"}, 66 "NumPorts": {"1"}, 67 "WorldID": {"236235"}, 68 }, 69 } 70 71 if !reflect.DeepEqual(res.Values, expect) { 72 t.Errorf("%s != %s", res.Values, expect) 73 } 74 } 75 76 func TestNetworkVmPortList(t *testing.T) { 77 r := load("fixtures/network_vm_port_list.xml") 78 79 expect := []Values{ 80 { 81 "IPAddress": {"192.168.247.149"}, 82 "MACAddress": {"00:0c:29:12:b2:cf"}, 83 "PortID": {"33554438"}, 84 "Portgroup": {"VM Network"}, 85 "TeamUplink": {"vmnic0"}, 86 "UplinkPortID": {"33554434"}, 87 "vSwitch": {"vSwitch0"}, 88 "DVPortID": {""}, 89 }, 90 } 91 92 if !reflect.DeepEqual(r.Values, expect) { 93 t.Errorf("%s != %s", r.Values, expect) 94 } 95 } 96 97 func TestMarshalResponse(t *testing.T) { 98 values := []Values{ 99 { 100 "IPAddress": {"192.168.247.149"}, 101 "MACAddress": {"00:0c:29:12:b2:cf"}, 102 "PortID": {"33554438"}, 103 "Portgroup": {"VM Network"}, 104 "TeamUplink": {"vmnic0"}, 105 "UplinkPortID": {"33554434"}, 106 "vSwitch": {"vSwitch0"}, 107 "DVPortID": {""}, 108 "Tags": {"one", "two"}, 109 }, 110 } 111 112 { 113 res := &Response{ 114 Values: values, 115 } 116 117 var out bytes.Buffer 118 119 fmt.Fprint(&out, xml.Header) 120 e := xml.NewEncoder(&out) 121 e.Indent("", " ") 122 err := e.Encode(res) 123 if err != nil { 124 t.Fatal(err) 125 } 126 _ = e.Flush() 127 128 t.Log(out.String()) 129 } 130 131 { 132 res := &Response{ 133 String: "time", 134 } 135 136 var out bytes.Buffer 137 138 fmt.Fprint(&out, xml.Header) 139 e := xml.NewEncoder(&out) 140 e.Indent("", " ") 141 err := e.Encode(res) 142 if err != nil { 143 t.Fatal(err) 144 } 145 _ = e.Flush() 146 147 t.Log(out.String()) 148 } 149 }