]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/field_test.go
Extensive refactor and clean up
[rbdr/mobius] / hotline / field_test.go
index ecae9c77351e76b6306085ba610c02af1ed972ea..abb4d44b1a832c5e67265d0e575ac5f8fa11ccaf 100644 (file)
@@ -172,7 +172,7 @@ func TestField_Read(t *testing.T) {
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {
                        f := &Field{
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {
                        f := &Field{
-                               ID:         tt.fields.ID,
+                               Type:       tt.fields.ID,
                                FieldSize:  tt.fields.FieldSize,
                                Data:       tt.fields.Data,
                                readOffset: tt.fields.readOffset,
                                FieldSize:  tt.fields.FieldSize,
                                Data:       tt.fields.Data,
                                readOffset: tt.fields.readOffset,
@@ -186,3 +186,46 @@ func TestField_Read(t *testing.T) {
                })
        }
 }
                })
        }
 }
+
+func TestField_DecodeInt(t *testing.T) {
+       type fields struct {
+               Data []byte
+       }
+       tests := []struct {
+               name    string
+               fields  fields
+               want    int
+               wantErr assert.ErrorAssertionFunc
+       }{
+               {
+                       name:    "with 2 bytes of input",
+                       fields:  fields{Data: []byte{0, 1}},
+                       want:    1,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "with 4 bytes of input",
+                       fields:  fields{Data: []byte{0, 1, 0, 0}},
+                       want:    65536,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "with invalid number of bytes of input",
+                       fields:  fields{Data: []byte{1, 0, 0, 0, 0, 0, 0, 0}},
+                       want:    0,
+                       wantErr: assert.Error,
+               },
+       }
+       for _, tt := range tests {
+               t.Run(tt.name, func(t *testing.T) {
+                       f := &Field{
+                               Data: tt.fields.Data,
+                       }
+                       got, err := f.DecodeInt()
+                       if !tt.wantErr(t, err, fmt.Sprintf("DecodeInt()")) {
+                               return
+                       }
+                       assert.Equalf(t, tt.want, got, "DecodeInt()")
+               })
+       }
+}