]> git.r.bdr.sh - rbdr/mobius/blob - hotline/field_test.go
Replace hardcoded version with ldflag usage
[rbdr/mobius] / hotline / field_test.go
1 package hotline
2
3 import (
4 "fmt"
5 "github.com/stretchr/testify/assert"
6 "testing"
7 )
8
9 func TestHello(t *testing.T) {
10
11 }
12
13 func Test_fieldScanner(t *testing.T) {
14 type args struct {
15 data []byte
16 in1 bool
17 }
18 tests := []struct {
19 name string
20 args args
21 wantAdvance int
22 wantToken []byte
23 wantErr assert.ErrorAssertionFunc
24 }{
25 {
26 name: "when too few bytes are provided to read the field size",
27 args: args{
28 data: []byte{},
29 in1: false,
30 },
31 wantAdvance: 0,
32 wantToken: []byte(nil),
33 wantErr: assert.NoError,
34 },
35 {
36 name: "when too few bytes are provided to read the full payload",
37 args: args{
38 data: []byte{
39 0, 1,
40 0, 4,
41 0, 0,
42 },
43 in1: false,
44 },
45 wantAdvance: 0,
46 wantToken: []byte(nil),
47 wantErr: assert.NoError,
48 },
49 {
50 name: "when a full field is provided",
51 args: args{
52 data: []byte{
53 0, 1,
54 0, 4,
55 0, 0,
56 0, 0,
57 },
58 in1: false,
59 },
60 wantAdvance: 8,
61 wantToken: []byte{
62 0, 1,
63 0, 4,
64 0, 0,
65 0, 0,
66 },
67 wantErr: assert.NoError,
68 },
69 {
70 name: "when a full field plus extra bytes are provided",
71 args: args{
72 data: []byte{
73 0, 1,
74 0, 4,
75 0, 0,
76 0, 0,
77 1, 1,
78 },
79 in1: false,
80 },
81 wantAdvance: 8,
82 wantToken: []byte{
83 0, 1,
84 0, 4,
85 0, 0,
86 0, 0,
87 },
88 wantErr: assert.NoError,
89 },
90 }
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)) {
95 return
96 }
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)
99 })
100 }
101 }