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  }