github.com/bendemaree/terraform@v0.5.4-0.20150613200311-f50d97d6eee6/terraform/transform_provider_test.go (about) 1 package terraform 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/hashicorp/terraform/dag" 8 ) 9 10 func TestProviderTransformer(t *testing.T) { 11 mod := testModule(t, "transform-provider-basic") 12 13 g := Graph{Path: RootModulePath} 14 { 15 tf := &ConfigTransformer{Module: mod} 16 if err := tf.Transform(&g); err != nil { 17 t.Fatalf("err: %s", err) 18 } 19 } 20 21 transform := &ProviderTransformer{} 22 if err := transform.Transform(&g); err != nil { 23 t.Fatalf("err: %s", err) 24 } 25 26 actual := strings.TrimSpace(g.String()) 27 expected := strings.TrimSpace(testTransformProviderBasicStr) 28 if actual != expected { 29 t.Fatalf("bad:\n\n%s", actual) 30 } 31 } 32 33 func TestMissingProviderTransformer(t *testing.T) { 34 mod := testModule(t, "transform-provider-basic") 35 36 g := Graph{Path: RootModulePath} 37 { 38 tf := &ConfigTransformer{Module: mod} 39 if err := tf.Transform(&g); err != nil { 40 t.Fatalf("err: %s", err) 41 } 42 } 43 44 transform := &MissingProviderTransformer{Providers: []string{"foo"}} 45 if err := transform.Transform(&g); err != nil { 46 t.Fatalf("err: %s", err) 47 } 48 49 actual := strings.TrimSpace(g.String()) 50 expected := strings.TrimSpace(testTransformMissingProviderBasicStr) 51 if actual != expected { 52 t.Fatalf("bad:\n\n%s", actual) 53 } 54 } 55 56 func TestPruneProviderTransformer(t *testing.T) { 57 mod := testModule(t, "transform-provider-prune") 58 59 g := Graph{Path: RootModulePath} 60 { 61 tf := &ConfigTransformer{Module: mod} 62 if err := tf.Transform(&g); err != nil { 63 t.Fatalf("err: %s", err) 64 } 65 } 66 67 { 68 transform := &MissingProviderTransformer{Providers: []string{"foo"}} 69 if err := transform.Transform(&g); err != nil { 70 t.Fatalf("err: %s", err) 71 } 72 } 73 74 { 75 transform := &ProviderTransformer{} 76 if err := transform.Transform(&g); err != nil { 77 t.Fatalf("err: %s", err) 78 } 79 } 80 81 { 82 transform := &PruneProviderTransformer{} 83 if err := transform.Transform(&g); err != nil { 84 t.Fatalf("err: %s", err) 85 } 86 } 87 88 actual := strings.TrimSpace(g.String()) 89 expected := strings.TrimSpace(testTransformPruneProviderBasicStr) 90 if actual != expected { 91 t.Fatalf("bad:\n\n%s", actual) 92 } 93 } 94 95 func TestDisableProviderTransformer(t *testing.T) { 96 mod := testModule(t, "transform-provider-disable") 97 98 g := Graph{Path: RootModulePath} 99 { 100 tf := &ConfigTransformer{Module: mod} 101 if err := tf.Transform(&g); err != nil { 102 t.Fatalf("err: %s", err) 103 } 104 } 105 106 { 107 transform := &MissingProviderTransformer{Providers: []string{"aws"}} 108 if err := transform.Transform(&g); err != nil { 109 t.Fatalf("err: %s", err) 110 } 111 } 112 113 { 114 transform := &ProviderTransformer{} 115 if err := transform.Transform(&g); err != nil { 116 t.Fatalf("err: %s", err) 117 } 118 } 119 120 { 121 transform := &PruneProviderTransformer{} 122 if err := transform.Transform(&g); err != nil { 123 t.Fatalf("err: %s", err) 124 } 125 } 126 127 { 128 transform := &DisableProviderTransformer{} 129 if err := transform.Transform(&g); err != nil { 130 t.Fatalf("err: %s", err) 131 } 132 } 133 134 actual := strings.TrimSpace(g.String()) 135 expected := strings.TrimSpace(testTransformDisableProviderBasicStr) 136 if actual != expected { 137 t.Fatalf("bad:\n\n%s", actual) 138 } 139 } 140 141 func TestDisableProviderTransformer_keep(t *testing.T) { 142 mod := testModule(t, "transform-provider-disable-keep") 143 144 g := Graph{Path: RootModulePath} 145 { 146 tf := &ConfigTransformer{Module: mod} 147 if err := tf.Transform(&g); err != nil { 148 t.Fatalf("err: %s", err) 149 } 150 } 151 152 { 153 transform := &MissingProviderTransformer{Providers: []string{"aws"}} 154 if err := transform.Transform(&g); err != nil { 155 t.Fatalf("err: %s", err) 156 } 157 } 158 159 { 160 transform := &ProviderTransformer{} 161 if err := transform.Transform(&g); err != nil { 162 t.Fatalf("err: %s", err) 163 } 164 } 165 166 { 167 transform := &PruneProviderTransformer{} 168 if err := transform.Transform(&g); err != nil { 169 t.Fatalf("err: %s", err) 170 } 171 } 172 173 { 174 transform := &DisableProviderTransformer{} 175 if err := transform.Transform(&g); err != nil { 176 t.Fatalf("err: %s", err) 177 } 178 } 179 180 actual := strings.TrimSpace(g.String()) 181 expected := strings.TrimSpace(testTransformDisableProviderKeepStr) 182 if actual != expected { 183 t.Fatalf("bad:\n\n%s", actual) 184 } 185 } 186 187 func TestGraphNodeMissingProvider_impl(t *testing.T) { 188 var _ dag.Vertex = new(graphNodeMissingProvider) 189 var _ dag.NamedVertex = new(graphNodeMissingProvider) 190 var _ GraphNodeProvider = new(graphNodeMissingProvider) 191 } 192 193 func TestGraphNodeMissingProvider_ProviderName(t *testing.T) { 194 n := &graphNodeMissingProvider{ProviderNameValue: "foo"} 195 if v := n.ProviderName(); v != "foo" { 196 t.Fatalf("bad: %#v", v) 197 } 198 } 199 200 const testTransformProviderBasicStr = ` 201 aws_instance.web 202 provider.aws 203 provider.aws 204 ` 205 206 const testTransformMissingProviderBasicStr = ` 207 aws_instance.web 208 provider.aws 209 provider.foo 210 ` 211 212 const testTransformPruneProviderBasicStr = ` 213 foo_instance.web 214 provider.foo 215 provider.foo 216 ` 217 218 const testTransformDisableProviderBasicStr = ` 219 module.child 220 provider.aws (disabled) 221 var.foo 222 provider.aws (disabled) 223 var.foo 224 ` 225 226 const testTransformDisableProviderKeepStr = ` 227 aws_instance.foo 228 provider.aws 229 module.child 230 provider.aws 231 var.foo 232 provider.aws 233 var.foo 234 `