github.com/tomaszheflik/terraform@v0.7.3-0.20160827060421-32f990b41594/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  	{
    22  		transform := &MissingProvisionerTransformer{Provisioners: []string{"shell"}}
    23  		if err := transform.Transform(&g); err != nil {
    24  			t.Fatalf("err: %s", err)
    25  		}
    26  	}
    27  
    28  	{
    29  		transform := &ProvisionerTransformer{}
    30  		if err := transform.Transform(&g); err != nil {
    31  			t.Fatalf("err: %s", err)
    32  		}
    33  	}
    34  
    35  	actual := strings.TrimSpace(g.String())
    36  	expected := strings.TrimSpace(testTransformMissingProvisionerBasicStr)
    37  	if actual != expected {
    38  		t.Fatalf("bad:\n\n%s", actual)
    39  	}
    40  }
    41  
    42  func TestCloseProvisionerTransformer(t *testing.T) {
    43  	mod := testModule(t, "transform-provisioner-basic")
    44  
    45  	g := Graph{Path: RootModulePath}
    46  	{
    47  		tf := &ConfigTransformer{Module: mod}
    48  		if err := tf.Transform(&g); err != nil {
    49  			t.Fatalf("err: %s", err)
    50  		}
    51  	}
    52  
    53  	{
    54  		transform := &MissingProvisionerTransformer{Provisioners: []string{"shell"}}
    55  		if err := transform.Transform(&g); err != nil {
    56  			t.Fatalf("err: %s", err)
    57  		}
    58  	}
    59  
    60  	{
    61  		transform := &ProvisionerTransformer{}
    62  		if err := transform.Transform(&g); err != nil {
    63  			t.Fatalf("err: %s", err)
    64  		}
    65  	}
    66  
    67  	{
    68  		transform := &CloseProvisionerTransformer{}
    69  		if err := transform.Transform(&g); err != nil {
    70  			t.Fatalf("err: %s", err)
    71  		}
    72  	}
    73  
    74  	actual := strings.TrimSpace(g.String())
    75  	expected := strings.TrimSpace(testTransformCloseProvisionerBasicStr)
    76  	if actual != expected {
    77  		t.Fatalf("bad:\n\n%s", actual)
    78  	}
    79  }
    80  func TestGraphNodeProvisioner_impl(t *testing.T) {
    81  	var _ dag.Vertex = new(graphNodeProvisioner)
    82  	var _ dag.NamedVertex = new(graphNodeProvisioner)
    83  	var _ GraphNodeProvisioner = new(graphNodeProvisioner)
    84  }
    85  
    86  func TestGraphNodeProvisioner_ProvisionerName(t *testing.T) {
    87  	n := &graphNodeProvisioner{ProvisionerNameValue: "foo"}
    88  	if v := n.ProvisionerName(); v != "foo" {
    89  		t.Fatalf("bad: %#v", v)
    90  	}
    91  }
    92  
    93  const testTransformMissingProvisionerBasicStr = `
    94  aws_instance.web
    95    provisioner.shell
    96  provisioner.shell
    97  `
    98  
    99  const testTransformCloseProvisionerBasicStr = `
   100  aws_instance.web
   101    provisioner.shell
   102  provisioner.shell
   103  provisioner.shell (close)
   104    aws_instance.web
   105  `