abbel/tlv/tlv_test.go

42 lines
1.1 KiB
Go

package tlv
import (
"testing"
)
func TestRouterIDFailZeros(t *testing.T) {
zeros := [10]byte{}
if _, _, err := RouterIDFromBytes(zeros[:]); err != ErrRouterIDZeros {
t.Error("RouterIDFromBytes should fail with ErrRouterIDZeros")
}
}
func TestRouterIDFailOnes(t *testing.T) {
ones := [10]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
if _, _, err := RouterIDFromBytes(ones[:]); err != ErrRouterIDOnes {
t.Error("RouterIDFromBytes should fail with ErrRouterIDOnes")
}
}
func TestRouterIDFailLength(t *testing.T) {
testbytes := [300]byte{}
for i := 0; i <= len(testbytes); i++ {
_, _, err := RouterIDFromBytes(testbytes[:i])
l, isErrRouterIDLength := err.(ErrTLVLength)
switch {
case i >= 10:
if isErrRouterIDLength {
t.Error("RouterIDFromBytes returns ErrRouterIDLength for correct length data")
}
default:
if l.l != i {
t.Errorf("RouterIDFromBytes returns wrong length %d, expected %d", l, i)
}
if !isErrRouterIDLength {
t.Errorf("RouterIDFromBytes returns wrong error for packet of wrong length %d", i)
}
}
}
}