Newer
Older
Christoph Petrausch
committed
package locRIB
import (
"testing"
Christoph Petrausch
committed
"github.com/bio-routing/bio-rd/route"
"github.com/stretchr/testify/assert"
)
type pfxPath struct {
Christoph Petrausch
committed
path *route.Path
}
type containsPfxPathTestcase struct {
in []pfxPath
check pfxPath
expected bool
}
func TestContainsPfxPath(t *testing.T) {
testCases := []containsPfxPathTestcase{
{
in: []pfxPath{},
check: pfxPath{
Christoph Petrausch
committed
path: nil,
},
expected: false,
},
// Not equal path
{
in: []pfxPath{
{
Christoph Petrausch
committed
path: &route.Path{
Type: route.StaticPathType,
StaticPath: &route.StaticPath{
Christoph Petrausch
committed
},
},
},
},
check: pfxPath{
Christoph Petrausch
committed
path: nil,
},
expected: false,
},
// Equal
{
in: []pfxPath{
{
Christoph Petrausch
committed
path: &route.Path{
Type: route.StaticPathType,
StaticPath: &route.StaticPath{
Christoph Petrausch
committed
},
},
},
},
check: pfxPath{
Christoph Petrausch
committed
path: &route.Path{
Type: route.StaticPathType,
StaticPath: &route.StaticPath{
Christoph Petrausch
committed
},
},
},
expected: true,
},
}
for i, tc := range testCases {
rib := New()
for _, p := range tc.in {
err := rib.AddPath(p.pfx, p.path)
assert.Nil(t, err, "could not fill rib in testcase %v", i)
}
contains := rib.ContainsPfxPath(tc.check.pfx, tc.check.path)
assert.Equal(t, tc.expected, contains, "mismatch in testcase %v", i)
}
}
Christoph Petrausch
committed
func TestLocRIB_RemovePathUnknown(t *testing.T) {
rib := New()
assert.True(t, rib.RemovePath(bnet.NewPfx(bnet.IPv4(1), 32),
Christoph Petrausch
committed
&route.Path{
Type: route.StaticPathType,
StaticPath: &route.StaticPath{