1package magna
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7)
8
9func TestU8(t *testing.T) {
10 buf := []byte{
11 0x01,
12 }
13
14 actual, offset, err := getU8(buf, 0)
15 assert.Equal(t, uint8(1), actual)
16 assert.Equal(t, 1, offset)
17 assert.NoError(t, err)
18
19 actual, offset, err = getU8(buf, 1)
20 assert.Equal(t, uint8(0), actual)
21 assert.Equal(t, 1, offset)
22 assert.Error(t, err)
23}
24
25func TestU16(t *testing.T) {
26 buf := []byte{
27 0x00, 0x01,
28 }
29
30 actual, offset, err := getU16(buf, 0)
31 assert.Equal(t, uint16(1), actual)
32 assert.Equal(t, 2, offset)
33 assert.NoError(t, err)
34
35 actual, offset, err = getU16(buf, 1)
36 assert.Equal(t, uint16(0), actual)
37 assert.Equal(t, 2, offset)
38 assert.Error(t, err)
39}
40
41func TestU32(t *testing.T) {
42 buf := []byte{
43 0x00, 0x00, 0x00, 0x01,
44 }
45
46 actual, offset, err := getU32(buf, 0)
47 assert.Equal(t, uint32(1), actual)
48 assert.Equal(t, 4, offset)
49 assert.NoError(t, err)
50
51 actual, offset, err = getU32(buf, 1)
52 assert.Equal(t, uint32(0), actual)
53 assert.Equal(t, 4, offset)
54 assert.Error(t, err)
55}
56
57func TestSlice(t *testing.T) {
58 buf := []byte{
59 0x62, 0x6c, 0x75,
60 }
61
62 actual, offset, err := getSlice(buf, 0, 3)
63 assert.Equal(t, "blu", string(actual))
64 assert.Equal(t, 3, offset)
65 assert.NoError(t, err)
66
67 actual, offset, err = getSlice(buf, 0, 4)
68 assert.Equal(t, "", string(actual))
69 assert.Equal(t, 3, offset)
70 assert.Error(t, err)
71}