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) } } } }