github.com/rmenn/terraform@v0.3.8-0.20150225065417-fc84b3a78802/terraform/transform_provisioner_test.go (about) 1 package terraform 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/hashicorp/terraform/dag" 8 ) 9 10 func TestMissingProvisionerTransformer(t *testing.T) { 11 mod := testModule(t, "transform-provisioner-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 := &MissingProvisionerTransformer{Provisioners: []string{"foo"}} 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(testTransformMissingProvisionerBasicStr) 28 if actual != expected { 29 t.Fatalf("bad:\n\n%s", actual) 30 } 31 } 32 33 func TestPruneProvisionerTransformer(t *testing.T) { 34 mod := testModule(t, "transform-provisioner-prune") 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 { 45 transform := &MissingProvisionerTransformer{ 46 Provisioners: []string{"foo", "bar"}} 47 if err := transform.Transform(&g); err != nil { 48 t.Fatalf("err: %s", err) 49 } 50 } 51 52 { 53 transform := &ProvisionerTransformer{} 54 if err := transform.Transform(&g); err != nil { 55 t.Fatalf("err: %s", err) 56 } 57 } 58 59 { 60 transform := &PruneProvisionerTransformer{} 61 if err := transform.Transform(&g); err != nil { 62 t.Fatalf("err: %s", err) 63 } 64 } 65 66 actual := strings.TrimSpace(g.String()) 67 expected := strings.TrimSpace(testTransformPruneProvisionerBasicStr) 68 if actual != expected { 69 t.Fatalf("bad:\n\n%s", actual) 70 } 71 } 72 73 func TestGraphNodeMissingProvisioner_impl(t *testing.T) { 74 var _ dag.Vertex = new(graphNodeMissingProvisioner) 75 var _ dag.NamedVertex = new(graphNodeMissingProvisioner) 76 var _ GraphNodeProvisioner = new(graphNodeMissingProvisioner) 77 } 78 79 func TestGraphNodeMissingProvisioner_ProvisionerName(t *testing.T) { 80 n := &graphNodeMissingProvisioner{ProvisionerNameValue: "foo"} 81 if v := n.ProvisionerName(); v != "foo" { 82 t.Fatalf("bad: %#v", v) 83 } 84 } 85 86 const testTransformMissingProvisionerBasicStr = ` 87 aws_instance.web 88 provisioner.foo 89 ` 90 91 const testTransformPruneProvisionerBasicStr = ` 92 aws_instance.web 93 provisioner.foo 94 provisioner.foo 95 `