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)
	}
}