From b488e51f56a57a4c3a86e23be560c6efa0871d7d Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 4 Nov 2016 18:40:09 -0700 Subject: [PATCH] terraform: tests for ReferenceMap.References --- terraform/transform_reference_test.go | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/terraform/transform_reference_test.go b/terraform/transform_reference_test.go index 525add6bdf..ae3b7ce799 100644 --- a/terraform/transform_reference_test.go +++ b/terraform/transform_reference_test.go @@ -1,8 +1,12 @@ package terraform import ( + "reflect" + "sort" "strings" "testing" + + "github.com/hashicorp/terraform/dag" ) func TestReferenceTransformer_simple(t *testing.T) { @@ -84,6 +88,49 @@ func TestReferenceTransformer_path(t *testing.T) { } } +func TestReferenceMapReferences(t *testing.T) { + cases := map[string]struct { + Nodes []dag.Vertex + Check dag.Vertex + Result []string + }{ + "simple": { + Nodes: []dag.Vertex{ + &graphNodeRefParentTest{ + NameValue: "A", + Names: []string{"A"}, + }, + }, + Check: &graphNodeRefChildTest{ + NameValue: "foo", + Refs: []string{"A"}, + }, + Result: []string{"A"}, + }, + } + + for tn, tc := range cases { + t.Run(tn, func(t *testing.T) { + rm := NewReferenceMap(tc.Nodes) + result, err := rm.References(tc.Check) + if err != nil { + t.Fatalf("err: %s", err) + } + + var resultStr []string + for _, v := range result { + resultStr = append(resultStr, dag.VertexName(v)) + } + + sort.Strings(resultStr) + sort.Strings(tc.Result) + if !reflect.DeepEqual(resultStr, tc.Result) { + t.Fatalf("bad: %#v", resultStr) + } + }) + } +} + type graphNodeRefParentTest struct { NameValue string PathValue []string