github.com/nicgrayson/terraform@v0.4.3-0.20150415203910-c4de50829380/terraform/graph_config_node_test.go (about) 1 package terraform 2 3 import ( 4 "reflect" 5 "strings" 6 "testing" 7 8 "github.com/hashicorp/terraform/config" 9 "github.com/hashicorp/terraform/dag" 10 ) 11 12 func TestGraphNodeConfigModule_impl(t *testing.T) { 13 var _ dag.Vertex = new(GraphNodeConfigModule) 14 var _ dag.NamedVertex = new(GraphNodeConfigModule) 15 var _ graphNodeConfig = new(GraphNodeConfigModule) 16 var _ GraphNodeExpandable = new(GraphNodeConfigModule) 17 } 18 19 func TestGraphNodeConfigModuleExpand(t *testing.T) { 20 mod := testModule(t, "graph-node-module-expand") 21 22 node := &GraphNodeConfigModule{ 23 Path: []string{RootModuleName, "child"}, 24 Module: &config.Module{}, 25 Tree: nil, 26 } 27 28 g, err := node.Expand(&BasicGraphBuilder{ 29 Steps: []GraphTransformer{ 30 &ConfigTransformer{Module: mod}, 31 }, 32 }) 33 if err != nil { 34 t.Fatalf("err: %s", err) 35 } 36 37 actual := strings.TrimSpace(g.Subgraph().String()) 38 expected := strings.TrimSpace(testGraphNodeModuleExpandStr) 39 if actual != expected { 40 t.Fatalf("bad:\n\n%s", actual) 41 } 42 } 43 44 func TestGraphNodeConfigProvider_impl(t *testing.T) { 45 var _ dag.Vertex = new(GraphNodeConfigProvider) 46 var _ dag.NamedVertex = new(GraphNodeConfigProvider) 47 var _ graphNodeConfig = new(GraphNodeConfigProvider) 48 var _ GraphNodeProvider = new(GraphNodeConfigProvider) 49 } 50 51 func TestGraphNodeConfigProvider_ProviderName(t *testing.T) { 52 n := &GraphNodeConfigProvider{ 53 Provider: &config.ProviderConfig{Name: "foo"}, 54 } 55 56 if v := n.ProviderName(); v != "foo" { 57 t.Fatalf("bad: %#v", v) 58 } 59 } 60 61 func TestGraphNodeConfigResource_impl(t *testing.T) { 62 var _ dag.Vertex = new(GraphNodeConfigResource) 63 var _ dag.NamedVertex = new(GraphNodeConfigResource) 64 var _ graphNodeConfig = new(GraphNodeConfigResource) 65 var _ GraphNodeProviderConsumer = new(GraphNodeConfigResource) 66 var _ GraphNodeProvisionerConsumer = new(GraphNodeConfigResource) 67 } 68 69 func TestGraphNodeConfigResource_ProvidedBy(t *testing.T) { 70 n := &GraphNodeConfigResource{ 71 Resource: &config.Resource{Type: "aws_instance"}, 72 } 73 74 if v := n.ProvidedBy(); v[0] != "aws" { 75 t.Fatalf("bad: %#v", v) 76 } 77 } 78 79 func TestGraphNodeConfigResource_ProvisionedBy(t *testing.T) { 80 n := &GraphNodeConfigResource{ 81 Resource: &config.Resource{ 82 Type: "aws_instance", 83 Provisioners: []*config.Provisioner{ 84 &config.Provisioner{Type: "foo"}, 85 &config.Provisioner{Type: "bar"}, 86 }, 87 }, 88 } 89 90 expected := []string{"foo", "bar"} 91 actual := n.ProvisionedBy() 92 if !reflect.DeepEqual(actual, expected) { 93 t.Fatalf("bad: %#v", actual) 94 } 95 } 96 97 const testGraphNodeModuleExpandStr = ` 98 aws_instance.bar 99 aws_instance.foo 100 aws_instance.foo 101 module inputs 102 module inputs 103 `