modelRT/diagram/topology_graph_test.go

36 lines
870 B
Go

package diagram
import (
"testing"
"modelRT/orm"
"github.com/gofrs/uuid"
)
func TestTopologyGraphSupportsMultiParentReachability(t *testing.T) {
startA := uuid.Must(uuid.NewV4())
startB := uuid.Must(uuid.NewV4())
shared := uuid.Must(uuid.NewV4())
end := uuid.Must(uuid.NewV4())
graph := NewTopologyGraph([]orm.Topologic{
{UUIDFrom: startA, UUIDTo: shared},
{UUIDFrom: startB, UUIDTo: shared},
{UUIDFrom: shared, UUIDTo: end},
})
if len(graph.StartNodes) != 2 {
t.Fatalf("expected 2 start nodes, got %d", len(graph.StartNodes))
}
if len(graph.InEdges[shared]) != 2 {
t.Fatalf("expected shared node to keep 2 parents, got %d", len(graph.InEdges[shared]))
}
if !graph.IsReachable(startA, end) {
t.Fatalf("expected %s to reach %s", startA, end)
}
if !graph.IsReachable(startB, end) {
t.Fatalf("expected %s to reach %s", startB, end)
}
}