package stanza

import (
	"encoding/xml"
	"testing"
)

func TestErr_UnmarshalXML(t *testing.T) {
	packet := `
 <iq from='pubsub.example.com'
       id='kj4vz31m'
       to='romeo@example.net/foo'
       type='error'>
  <error type='wait'>
    <resource-constraint
        xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    <text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>System overloaded, please retry</text>
  </error>
 </iq>`

	parsedIQ := IQ{}
	data := []byte(packet)
	if err := xml.Unmarshal(data, &parsedIQ); err != nil {
		t.Errorf("Unmarshal(%s) returned error", data)
	}

	xmppError := parsedIQ.Error
	if xmppError.Text != "System overloaded, please retry" {
		t.Errorf("Could not extract error text: '%s'", xmppError.Text)
	}
}