aboutsummaryrefslogtreecommitdiff
path: root/hotline/news_test.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2021-08-10 18:52:46 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2021-08-10 13:52:46 -0700
commit72dd37f1abb2b550aaaac48eac677403d5664797 (patch)
tree5c431679475647f2f932f2934e6acd65090d2499 /hotline/news_test.go
parent9d41bcdf29778eab3253f8e31670baf64ad389bf (diff)
Add tests and clean up
Diffstat (limited to 'hotline/news_test.go')
-rw-r--r--hotline/news_test.go100
1 files changed, 100 insertions, 0 deletions
diff --git a/hotline/news_test.go b/hotline/news_test.go
new file mode 100644
index 0000000..02e11a9
--- /dev/null
+++ b/hotline/news_test.go
@@ -0,0 +1,100 @@
+package hotline
+
+import (
+ "bytes"
+ "reflect"
+ "testing"
+)
+
+func TestNewsCategoryListData15_MarshalBinary(t *testing.T) {
+ type fields struct {
+ Type []byte
+ Name string
+ Articles map[uint32]*NewsArtData
+ SubCats map[string]NewsCategoryListData15
+ Count []byte
+ AddSN []byte
+ DeleteSN []byte
+ GUID []byte
+ }
+ tests := []struct {
+ name string
+ fields fields
+ wantData []byte
+ wantErr bool
+ }{
+ {
+ name: "returns expected bytes when type is a bundle",
+ fields: fields{
+ Type: []byte{0x00, 0x02},
+ Articles: map[uint32]*NewsArtData{
+ uint32(1): {
+ Title: "",
+ Poster: "",
+ Data: "",
+ },
+ },
+ Name: "foo",
+ },
+ wantData: []byte{
+ 0x00, 0x02,
+ 0x00, 0x01,
+ 0x03,
+ 0x66, 0x6f, 0x6f,
+ },
+ wantErr: false,
+ },
+ {
+ name: "returns expected bytes when type is a category",
+ fields: fields{
+ Type: []byte{0x00, 0x03},
+ Articles: map[uint32]*NewsArtData{
+ uint32(1): {
+ Title: "",
+ Poster: "",
+ Data: "",
+ },
+ },
+ Name: "foo",
+ },
+ wantData: []byte{
+ 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,
+ 0x03,
+ 0x66, 0x6f, 0x6f,
+ },
+ wantErr: false,
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ newscat := &NewsCategoryListData15{
+ Type: tt.fields.Type,
+ 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}) {
+ // zero out the random GUID before comparison
+ for i := 4; i < 20; i++ {
+ gotData[i] = 0
+ }
+ }
+ if (err != nil) != tt.wantErr {
+ t.Errorf("MarshalBinary() error = %v, wantErr %v", err, tt.wantErr)
+ return
+ }
+ if !reflect.DeepEqual(gotData, tt.wantData) {
+ t.Errorf("MarshalBinary() gotData = %v, want %v", gotData, tt.wantData)
+ }
+ })
+ }
+}