package hotline
import (
- "bytes"
- "reflect"
+ "github.com/stretchr/testify/assert"
+ "io"
"testing"
)
func TestNewsCategoryListData15_MarshalBinary(t *testing.T) {
type fields struct {
- Type []byte
+ Type [2]byte
Name string
Articles map[uint32]*NewsArtData
SubCats map[string]NewsCategoryListData15
Count []byte
- AddSN []byte
- DeleteSN []byte
- GUID []byte
+ AddSN [4]byte
+ DeleteSN [4]byte
+ GUID [16]byte
}
tests := []struct {
name string
{
name: "returns expected bytes when type is a bundle",
fields: fields{
- Type: []byte{0x00, 0x02},
+ Type: [2]byte{0x00, 0x02},
Articles: map[uint32]*NewsArtData{
uint32(1): {
Title: "",
{
name: "returns expected bytes when type is a category",
fields: fields{
- Type: []byte{0x00, 0x03},
+ Type: [2]byte{0x00, 0x03},
Articles: map[uint32]*NewsArtData{
uint32(1): {
Title: "",
0x00, 0x03,
0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
0x03,
0x66, 0x6f, 0x6f,
},
Name: tt.fields.Name,
Articles: tt.fields.Articles,
SubCats: tt.fields.SubCats,
- Count: tt.fields.Count,
AddSN: tt.fields.AddSN,
DeleteSN: tt.fields.DeleteSN,
GUID: tt.fields.GUID,
}
- gotData, err := newscat.MarshalBinary()
- if bytes.Equal(newscat.Type, []byte{0, 3}) {
+ gotData, err := io.ReadAll(newscat)
+ if newscat.Type == [2]byte{0, 3} {
// zero out the random GUID before comparison
for i := 4; i < 20; i++ {
gotData[i] = 0
t.Errorf("MarshalBinary() error = %v, wantErr %v", err, tt.wantErr)
return
}
- if !reflect.DeepEqual(gotData, tt.wantData) {
+ if !assert.Equal(t, tt.wantData, gotData) {
t.Errorf("MarshalBinary() gotData = %v, want %v", gotData, tt.wantData)
}
})