package stanza import ( "encoding/xml" "testing" ) func TestControlSet(t *testing.T) { packet := ` <iq to='test@localhost/jukebox' from='admin@localhost/mbp' type='set' id='2'> <set xmlns='urn:xmpp:iot:control' xml:lang='en'> <string name='action' value='play'/> <string name='url' value='https://soundcloud.com/radiohead/spectre'/> </set> </iq>` parsedIQ := IQ{} data := []byte(packet) if err := xml.Unmarshal(data, &parsedIQ); err != nil { t.Errorf("Unmarshal(%s) returned error", data) } if cs, ok := parsedIQ.Payload.(*ControlSet); !ok { t.Errorf("Payload is not an iot control set: %v", cs) } }