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  `