5 "github.com/stretchr/testify/assert"
9 func TestHello(t *testing.T) {
13 func Test_fieldScanner(t *testing.T) {
23 wantErr assert.ErrorAssertionFunc
26 name: "when too few bytes are provided to read the field size",
32 wantToken: []byte(nil),
33 wantErr: assert.NoError,
36 name: "when too few bytes are provided to read the full payload",
46 wantToken: []byte(nil),
47 wantErr: assert.NoError,
50 name: "when a full field is provided",
67 wantErr: assert.NoError,
70 name: "when a full field plus extra bytes are provided",
88 wantErr: assert.NoError,
91 for _, tt := range tests {
92 t.Run(tt.name, func(t *testing.T) {
93 gotAdvance, gotToken, err := fieldScanner(tt.args.data, tt.args.in1)
94 if !tt.wantErr(t, err, fmt.Sprintf("fieldScanner(%v, %v)", tt.args.data, tt.args.in1)) {
97 assert.Equalf(t, tt.wantAdvance, gotAdvance, "fieldScanner(%v, %v)", tt.args.data, tt.args.in1)
98 assert.Equalf(t, tt.wantToken, gotToken, "fieldScanner(%v, %v)", tt.args.data, tt.args.in1)
103 func TestField_Read(t *testing.T) {
118 wantErr assert.ErrorAssertionFunc
122 name: "returns field bytes",
124 ID: [2]byte{0x00, 0x62},
125 FieldSize: [2]byte{0x00, 0x03},
126 Data: []byte("hai!"),
129 p: make([]byte, 512),
132 wantErr: assert.NoError,
136 0x68, 0x61, 0x69, 0x21,
140 name: "returns field bytes from readOffset",
142 ID: [2]byte{0x00, 0x62},
143 FieldSize: [2]byte{0x00, 0x03},
144 Data: []byte("hai!"),
148 p: make([]byte, 512),
151 wantErr: assert.NoError,
153 0x68, 0x61, 0x69, 0x21,
157 name: "returns io.EOF when all bytes read",
159 ID: [2]byte{0x00, 0x62},
160 FieldSize: [2]byte{0x00, 0x03},
161 Data: []byte("hai!"),
165 p: make([]byte, 512),
168 wantErr: assert.Error,
172 for _, tt := range tests {
173 t.Run(tt.name, func(t *testing.T) {
176 FieldSize: tt.fields.FieldSize,
177 Data: tt.fields.Data,
178 readOffset: tt.fields.readOffset,
180 got, err := f.Read(tt.args.p)
181 if !tt.wantErr(t, err, fmt.Sprintf("Read(%v)", tt.args.p)) {
184 assert.Equalf(t, tt.want, got, "Read(%v)", tt.args.p)
185 assert.Equalf(t, tt.wantBytes, tt.args.p[:got], "Read(%v)", tt.args.p)