31 lines
705 B
Go
31 lines
705 B
Go
|
package stanza
|
||
|
|
||
|
import (
|
||
|
"encoding/xml"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestNode_Marshal(t *testing.T) {
|
||
|
jsonData := []byte("{\"key\":\"value\"}")
|
||
|
|
||
|
iqResp := NewIQ(Attrs{Type: "result", From: "admin@localhost", To: "test@localhost", Id: "1"})
|
||
|
iqResp.Any = &Node{
|
||
|
XMLName: xml.Name{Space: "myNS", Local: "space"},
|
||
|
Content: string(jsonData),
|
||
|
}
|
||
|
|
||
|
bytes, err := xml.Marshal(iqResp)
|
||
|
if err != nil {
|
||
|
t.Errorf("Could not marshal XML: %v", err)
|
||
|
}
|
||
|
|
||
|
parsedIQ := IQ{}
|
||
|
if err := xml.Unmarshal(bytes, &parsedIQ); err != nil {
|
||
|
t.Errorf("Unmarshal returned error: %v", err)
|
||
|
}
|
||
|
|
||
|
if parsedIQ.Any.Content != string(jsonData) {
|
||
|
t.Errorf("Cannot find generic any payload in parsedIQ: '%s'", parsedIQ.Any.Content)
|
||
|
}
|
||
|
}
|