Files
gb-cms/stack/xml_test.go
2025-08-28 10:12:09 +08:00

59 lines
2.6 KiB
Go

package stack
import (
"encoding/binary"
"encoding/hex"
"os"
"testing"
)
func TestDecodeXML(t *testing.T) {
//var catalogBodyFos *os.File
//if catalogBodyFos == nil {
// file, err := os.OpenFile("./catalog.raw", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
// if err != nil {
// panic(err)
// }
// catalogBodyFos = file
//}
//
//bytes := make([]byte, 4)
//binary.BigEndian.PutUint32(bytes, uint32(len(body)))
//if _, err := catalogBodyFos.Write(bytes); err != nil {
// panic(err)
//} else if _, err = catalogBodyFos.Write([]byte(body)); err != nil {
// panic(err)
//}
t.Run("save_channels", func(t *testing.T) {
file, err := os.ReadFile("./catalog.raw")
if err != nil {
panic(err)
}
//handler := EventHandler{}
for i := 0; i < len(file); {
size := binary.BigEndian.Uint32(file[i:])
i += 4
body := file[i : i+int(size)]
i += int(size)
catalogResponse := &CatalogResponse{}
err = DecodeXML(body, catalogResponse)
if err != nil {
panic(err)
}
println(string(body))
//handler.OnCatalog(catalogResponse.DeviceID, catalogResponse)
}
})
//str := "3c3f786d6c2076657273696f6e3d22312e30223f3e0d0a3c51756572793e0d0a3c436d64547970653e446576696365496e666f3c2f436d64547970653e0d0a3c534e3e323c2f534e3e0d0a3c44657669636549443e33343032303030303030313332303030303030313c2f44657669636549443e0d0a3c2f51756572793e0d0a"
str := "3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d22474232333132223f3e0d0a3c526573706f6e73653e0d0a3c436d64547970653e436174616c6f673c2f436d64547970653e0d0a3c534e3e313c2f534e3e0d0a3c44657669636549443e33343032303030303030313332303030303030313c2f44657669636549443e0d0a3c53756d4e756d3e313c2f53756d4e756d3e0d0a3c4465766963654c697374204e756d3d2231223e0d0a3c4974656d3e0d0a3c44657669636549443e33343032303030303030313331303030303030313c2f44657669636549443e0d0a3c4e616d653e47423238313831436c69656e743c2f4e616d653e0d0a3c4d616e7566616374757265723e48616958696e3c2f4d616e7566616374757265723e0d0a3c4d6f64656c3e474232383138315f416e64726f69643c2f4d6f64656c3e0d0a3c4f776e65723e4f776e65723c2f4f776e65723e0d0a3c416464726573733e416464726573733c2f416464726573733e0d0a3c506172656e74616c3e303c2f506172656e74616c3e0d0a3c506172656e7449443e33343032303030303030313332303030303030313c2f506172656e7449443e0d0a3c5361666574795761793e303c2f5361666574795761793e0d0a3c52656769737465725761793e313c2f52656769737465725761793e0d0a3c536563726563793e303c2f536563726563793e0d0a3c5374617475733e4f4e3c2f5374617475733e0d0a3c2f4974656d3e0d0a3c2f4465766963654c6973743e0d0a3c2f526573706f6e73653e0d0a"
data, err := hex.DecodeString(str)
response := CatalogResponse{}
if err = DecodeXML(data, &response); err != nil {
panic(err)
}
}