go-common/app/admin/main/member/model/bom/bom_test.go

81 lines
1.5 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
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)
}
}