package magna import ( "testing" "github.com/stretchr/testify/assert" ) func TestU8(t *testing.T) { buf := []byte{ 0x01, } actual, offset, err := getU8(buf, 0) assert.Equal(t, uint8(1), actual) assert.Equal(t, 1, offset) assert.NoError(t, err) actual, offset, err = getU8(buf, 1) assert.Equal(t, uint8(0), actual) assert.Equal(t, 1, offset) assert.Error(t, err) } func TestU16(t *testing.T) { buf := []byte{ 0x00, 0x01, } actual, offset, err := getU16(buf, 0) assert.Equal(t, uint16(1), actual) assert.Equal(t, 2, offset) assert.NoError(t, err) actual, offset, err = getU16(buf, 1) assert.Equal(t, uint16(0), actual) assert.Equal(t, 2, offset) assert.Error(t, err) } func TestU32(t *testing.T) { buf := []byte{ 0x00, 0x00, 0x00, 0x01, } actual, offset, err := getU32(buf, 0) assert.Equal(t, uint32(1), actual) assert.Equal(t, 4, offset) assert.NoError(t, err) actual, offset, err = getU32(buf, 1) assert.Equal(t, uint32(0), actual) assert.Equal(t, 4, offset) assert.Error(t, err) } func TestSlice(t *testing.T) { buf := []byte{ 0x62, 0x6c, 0x75, } actual, offset, err := getSlice(buf, 0, 3) assert.Equal(t, "blu", string(actual)) assert.Equal(t, 3, offset) assert.NoError(t, err) actual, offset, err = getSlice(buf, 0, 4) assert.Equal(t, "", string(actual)) assert.Equal(t, 3, offset) assert.Error(t, err) }