github.com/ndarilek/terraform@v0.3.8-0.20150320140257-d3135c1b2bac/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 TestGraphNodeConfigResource_impl(t *testing.T) {
    62  	var _ dag.Vertex = new(GraphNodeConfigResource)
    63  	var _ dag.NamedVertex = new(GraphNodeConfigResource)
    64  	var _ graphNodeConfig = new(GraphNodeConfigResource)
    65  	var _ GraphNodeProviderConsumer = new(GraphNodeConfigResource)
    66  	var _ GraphNodeProvisionerConsumer = new(GraphNodeConfigResource)
    67  }
    68  
    69  func TestGraphNodeConfigResource_ProvidedBy(t *testing.T) {
    70  	n := &GraphNodeConfigResource{
    71  		Resource: &config.Resource{Type: "aws_instance"},
    72  	}
    73  
    74  	if v := n.ProvidedBy(); v[0] != "aws" {
    75  		t.Fatalf("bad: %#v", v)
    76  	}
    77  }
    78  
    79  func TestGraphNodeConfigResource_ProvisionedBy(t *testing.T) {
    80  	n := &GraphNodeConfigResource{
    81  		Resource: &config.Resource{
    82  			Type: "aws_instance",
    83  			Provisioners: []*config.Provisioner{
    84  				&config.Provisioner{Type: "foo"},
    85  				&config.Provisioner{Type: "bar"},
    86  			},
    87  		},
    88  	}
    89  
    90  	expected := []string{"foo", "bar"}
    91  	actual := n.ProvisionedBy()
    92  	if !reflect.DeepEqual(actual, expected) {
    93  		t.Fatalf("bad: %#v", actual)
    94  	}
    95  }
    96  
    97  const testGraphNodeModuleExpandStr = `
    98  aws_instance.bar
    99    aws_instance.foo
   100  aws_instance.foo
   101    module inputs
   102  module inputs
   103  `