github.com/alexissmirnov/terraform@v0.4.3-0.20150423153700-1ef9731a2f14/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 TestGraphNodeConfigProvider_ProviderName_alias(t *testing.T) { 62 n := &GraphNodeConfigProvider{ 63 Provider: &config.ProviderConfig{Name: "foo", Alias: "bar"}, 64 } 65 66 if v := n.ProviderName(); v != "foo.bar" { 67 t.Fatalf("bad: %#v", v) 68 } 69 } 70 71 func TestGraphNodeConfigProvider_Name(t *testing.T) { 72 n := &GraphNodeConfigProvider{ 73 Provider: &config.ProviderConfig{Name: "foo"}, 74 } 75 76 if v := n.Name(); v != "provider.foo" { 77 t.Fatalf("bad: %#v", v) 78 } 79 } 80 81 func TestGraphNodeConfigProvider_Name_alias(t *testing.T) { 82 n := &GraphNodeConfigProvider{ 83 Provider: &config.ProviderConfig{Name: "foo", Alias: "bar"}, 84 } 85 86 if v := n.Name(); v != "provider.foo.bar" { 87 t.Fatalf("bad: %#v", v) 88 } 89 } 90 91 func TestGraphNodeConfigResource_impl(t *testing.T) { 92 var _ dag.Vertex = new(GraphNodeConfigResource) 93 var _ dag.NamedVertex = new(GraphNodeConfigResource) 94 var _ graphNodeConfig = new(GraphNodeConfigResource) 95 var _ GraphNodeProviderConsumer = new(GraphNodeConfigResource) 96 var _ GraphNodeProvisionerConsumer = new(GraphNodeConfigResource) 97 } 98 99 func TestGraphNodeConfigResource_ProvidedBy(t *testing.T) { 100 n := &GraphNodeConfigResource{ 101 Resource: &config.Resource{Type: "aws_instance"}, 102 } 103 104 if v := n.ProvidedBy(); v[0] != "aws" { 105 t.Fatalf("bad: %#v", v) 106 } 107 } 108 109 func TestGraphNodeConfigResource_ProvidedBy_alias(t *testing.T) { 110 n := &GraphNodeConfigResource{ 111 Resource: &config.Resource{Type: "aws_instance", Provider: "aws.bar"}, 112 } 113 114 if v := n.ProvidedBy(); v[0] != "aws.bar" { 115 t.Fatalf("bad: %#v", v) 116 } 117 } 118 119 func TestGraphNodeConfigResource_ProvisionedBy(t *testing.T) { 120 n := &GraphNodeConfigResource{ 121 Resource: &config.Resource{ 122 Type: "aws_instance", 123 Provisioners: []*config.Provisioner{ 124 &config.Provisioner{Type: "foo"}, 125 &config.Provisioner{Type: "bar"}, 126 }, 127 }, 128 } 129 130 expected := []string{"foo", "bar"} 131 actual := n.ProvisionedBy() 132 if !reflect.DeepEqual(actual, expected) { 133 t.Fatalf("bad: %#v", actual) 134 } 135 } 136 137 const testGraphNodeModuleExpandStr = ` 138 aws_instance.bar 139 aws_instance.foo 140 aws_instance.foo 141 module inputs 142 module inputs 143 `