package nodes import ( "testing" "github.com/gonum/graph/topo" osgraph "github.com/openshift/origin/pkg/api/graph" kubetypes "github.com/openshift/origin/pkg/api/kubegraph/nodes" deployapi "github.com/openshift/origin/pkg/deploy/api" "github.com/openshift/origin/pkg/deploy/api/test" ) func TestDCPodTemplateSpecNode(t *testing.T) { g := osgraph.New() dc := &deployapi.DeploymentConfig{} dc.Namespace = "ns" dc.Name = "foo" dc.Spec.Template = test.OkPodTemplate() _ = EnsureDeploymentConfigNode(g, dc) edges := g.Edges() if len(edges) != 2 { t.Errorf("expected 2 edges, got %d", len(edges)) return } for i := range edges { if !g.EdgeKinds(edges[i]).Has(osgraph.ContainsEdgeKind) { t.Errorf("expected %v, got %v", osgraph.ContainsEdgeKind, g.EdgeKinds(edges[i])) return } } nodes := g.Nodes() if len(nodes) != 3 { t.Errorf("expected 3 nodes, got %d", len(nodes)) return } sorted, err := topo.Sort(g) if err != nil { t.Errorf("unexpected error: %v", err) return } // Just to be sure if len(sorted) != 3 { t.Errorf("expected 3 nodes, got %d", len(sorted)) return } if _, ok := sorted[0].(*DeploymentConfigNode); !ok { t.Errorf("expected first node to be a DeploymentConfigNode") return } if _, ok := sorted[1].(*kubetypes.PodTemplateSpecNode); !ok { t.Errorf("expected second node to be a PodTemplateSpecNode") return } if _, ok := sorted[2].(*kubetypes.PodSpecNode); !ok { t.Errorf("expected third node to be a PodSpecNode") } }