81 lines
1.5 KiB
Go
81 lines
1.5 KiB
Go
package bom_test
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
"go-common/app/admin/main/member/model/bom"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
var testCases = []struct {
|
|
Input []byte
|
|
Expected []byte
|
|
}{
|
|
{
|
|
Input: nil,
|
|
Expected: nil,
|
|
},
|
|
{
|
|
Input: []byte{},
|
|
Expected: []byte{},
|
|
},
|
|
{
|
|
Input: []byte{0xef},
|
|
Expected: []byte{0xef},
|
|
},
|
|
{
|
|
Input: []byte{0xef, 0xbb},
|
|
Expected: []byte{0xef, 0xbb},
|
|
},
|
|
{
|
|
Input: []byte{0xef, 0xbb, 0xbf},
|
|
Expected: []byte{},
|
|
},
|
|
{
|
|
Input: []byte{0xef, 0xbb, 0xbf, 0x41, 0x42, 0x43},
|
|
Expected: []byte{0x41, 0x42, 0x43},
|
|
},
|
|
{
|
|
Input: []byte{0xef, 0xbb, 0x41, 0x42, 0x43},
|
|
Expected: []byte{0xef, 0xbb, 0x41, 0x42, 0x43},
|
|
},
|
|
{
|
|
Input: []byte{0xef, 0x41, 0x42, 0x43},
|
|
Expected: []byte{0xef, 0x41, 0x42, 0x43},
|
|
},
|
|
{
|
|
Input: []byte{0x41, 0x42, 0x43},
|
|
Expected: []byte{0x41, 0x42, 0x43},
|
|
},
|
|
}
|
|
|
|
func TestClean(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
for _, tc := range testCases {
|
|
output := bom.Clean(tc.Input)
|
|
assert.Equal(tc.Expected, output)
|
|
}
|
|
}
|
|
|
|
func TestReader(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
for _, tc := range testCases {
|
|
// An input value of nil works differently to the Clean function.
|
|
// In this case it results in an empty buffer, not nil.
|
|
expected := tc.Expected
|
|
if tc.Input == nil {
|
|
expected = []byte{}
|
|
}
|
|
r1 := bytes.NewReader(tc.Input)
|
|
r2 := bom.NewReader(r1)
|
|
output, err := ioutil.ReadAll(r2)
|
|
assert.NoError(err)
|
|
assert.Equal(expected, output)
|
|
}
|
|
}
|