package service
import (
"testing"
"github.com/beevik/etree"
"github.com/stretchr/testify/assert"
)
func TestPrepareWindowsMDMCommand(t *testing.T) {
c := &Client{}
validXML := []byte(`
some-id
`)
invalidCmdXML := []byte(`
some-id
`)
noCmdIDXML := []byte(`
`)
t.Run("Modifies valid CmdID", func(t *testing.T) {
modified, err := c.prepareWindowsMDMCommand(validXML)
assert.Nil(t, err)
doc := etree.NewDocument()
err = doc.ReadFromBytes(modified)
assert.Nil(t, err)
element := doc.FindElement("//CmdID")
assert.NotNil(t, element)
assert.NotEmpty(t, element.Text())
})
t.Run("Adds CmdID if missing", func(t *testing.T) {
modified, err := c.prepareWindowsMDMCommand(noCmdIDXML)
assert.Nil(t, err)
doc := etree.NewDocument()
err = doc.ReadFromBytes(modified)
assert.Nil(t, err)
element := doc.FindElement("//CmdID")
assert.NotNil(t, element)
assert.NotEmpty(t, element.Text())
})
t.Run("Returns error on invalid XML", func(t *testing.T) {
_, err := c.prepareWindowsMDMCommand(invalidCmdXML)
assert.NotNil(t, err)
_, err = c.prepareWindowsMDMCommand([]byte("