add unit-tests (#137)
All checks were successful
coverage / build (push) Successful in 1m36s
test / test (push) Successful in 1m54s

This commit is contained in:
2025-05-14 01:58:09 +05:00
committed by GitHub
parent b020114dc5
commit 9f81375698
5 changed files with 122 additions and 4 deletions

40
reader_test.go Normal file
View File

@@ -0,0 +1,40 @@
package xml
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestReader_Read(t *testing.T) {
tests := []struct {
name string
input []byte
expected []byte
}{
{
name: "with replacement",
input: []byte(`<?xml version="1.1" encoding="UTF-8"?><root name="NAME"><item>ITEM</item></root>`),
expected: []byte(`<?xml version="1.0" encoding="UTF-8"?><root name="NAME"><item>ITEM</item></root>`),
},
{
name: "without replacement",
input: []byte(`<?xml version="1.0" encoding="UTF-8"?><root name="NAME"><item>ITEM</item></root>`),
expected: []byte(`<?xml version="1.0" encoding="UTF-8"?><root name="NAME"><item>ITEM</item></root>`),
},
{
name: "check invalid replacement",
input: []byte(`<?xml version="1.0" encoding="UTF-8"?><root version="1.1"><item>ITEM</item></root>`),
expected: []byte(`<?xml version="1.0" encoding="UTF-8"?><root version="1.1"><item>ITEM</item></root>`),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
buf := make([]byte, len(tt.input))
n, err := newReader(tt.input).Read(buf)
require.NoError(t, err)
require.Equal(t, tt.expected, buf[:n])
})
}
}