github.com/gofiber/fiber/v2@v2.47.0/utils/xml_test.go (about) 1 package utils 2 3 import ( 4 "encoding/xml" 5 "testing" 6 ) 7 8 type serversXMLStructure struct { 9 XMLName xml.Name `xml:"servers"` 10 Version string `xml:"version,attr"` 11 Servers []serverXMLStructure `xml:"server"` 12 } 13 14 type serverXMLStructure struct { 15 XMLName xml.Name `xml:"server"` 16 Name string `xml:"name"` 17 } 18 19 const xmlString = `<servers version="1"><server><name>fiber one</name></server><server><name>fiber two</name></server></servers>` 20 21 func Test_GolangXMLEncoder(t *testing.T) { 22 t.Parallel() 23 24 var ( 25 ss = &serversXMLStructure{ 26 Version: "1", 27 Servers: []serverXMLStructure{ 28 {Name: "fiber one"}, 29 {Name: "fiber two"}, 30 }, 31 } 32 xmlEncoder XMLMarshal = xml.Marshal 33 ) 34 35 raw, err := xmlEncoder(ss) 36 AssertEqual(t, err, nil) 37 38 AssertEqual(t, string(raw), xmlString) 39 } 40 41 func Test_DefaultXMLEncoder(t *testing.T) { 42 t.Parallel() 43 44 var ( 45 ss = &serversXMLStructure{ 46 Version: "1", 47 Servers: []serverXMLStructure{ 48 {Name: "fiber one"}, 49 {Name: "fiber two"}, 50 }, 51 } 52 xmlEncoder XMLMarshal = xml.Marshal 53 ) 54 55 raw, err := xmlEncoder(ss) 56 AssertEqual(t, err, nil) 57 58 AssertEqual(t, string(raw), xmlString) 59 }