github.com/hugorut/terraform@v1.1.3/src/terraform/graph_test.go (about) 1 package terraform 2 3 import ( 4 "testing" 5 6 "github.com/hugorut/terraform/src/dag" 7 ) 8 9 // testGraphnotContains is an assertion helper that tests that a node is 10 // NOT contained in the graph. 11 func testGraphNotContains(t *testing.T, g *Graph, name string) { 12 for _, v := range g.Vertices() { 13 if dag.VertexName(v) == name { 14 t.Fatalf( 15 "Expected %q to NOT be in:\n\n%s", 16 name, g.String()) 17 } 18 } 19 } 20 21 // testGraphHappensBefore is an assertion helper that tests that node 22 // A (dag.VertexName value) happens before node B. 23 func testGraphHappensBefore(t *testing.T, g *Graph, A, B string) { 24 t.Helper() 25 // Find the B vertex 26 var vertexB dag.Vertex 27 for _, v := range g.Vertices() { 28 if dag.VertexName(v) == B { 29 vertexB = v 30 break 31 } 32 } 33 if vertexB == nil { 34 t.Fatalf( 35 "Expected %q before %q. Couldn't find %q in:\n\n%s", 36 A, B, B, g.String()) 37 } 38 39 // Look at ancestors 40 deps, err := g.Ancestors(vertexB) 41 if err != nil { 42 t.Fatalf("Error: %s in graph:\n\n%s", err, g.String()) 43 } 44 45 // Make sure B is in there 46 for _, v := range deps.List() { 47 if dag.VertexName(v) == A { 48 // Success 49 return 50 } 51 } 52 53 t.Fatalf( 54 "Expected %q before %q in:\n\n%s", 55 A, B, g.String()) 56 }