github.com/alexissmirnov/terraform@v0.4.3-0.20150423153700-1ef9731a2f14/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 TestGraphNodeConfigProvider_ProviderName_alias(t *testing.T) {
    62  	n := &GraphNodeConfigProvider{
    63  		Provider: &config.ProviderConfig{Name: "foo", Alias: "bar"},
    64  	}
    65  
    66  	if v := n.ProviderName(); v != "foo.bar" {
    67  		t.Fatalf("bad: %#v", v)
    68  	}
    69  }
    70  
    71  func TestGraphNodeConfigProvider_Name(t *testing.T) {
    72  	n := &GraphNodeConfigProvider{
    73  		Provider: &config.ProviderConfig{Name: "foo"},
    74  	}
    75  
    76  	if v := n.Name(); v != "provider.foo" {
    77  		t.Fatalf("bad: %#v", v)
    78  	}
    79  }
    80  
    81  func TestGraphNodeConfigProvider_Name_alias(t *testing.T) {
    82  	n := &GraphNodeConfigProvider{
    83  		Provider: &config.ProviderConfig{Name: "foo", Alias: "bar"},
    84  	}
    85  
    86  	if v := n.Name(); v != "provider.foo.bar" {
    87  		t.Fatalf("bad: %#v", v)
    88  	}
    89  }
    90  
    91  func TestGraphNodeConfigResource_impl(t *testing.T) {
    92  	var _ dag.Vertex = new(GraphNodeConfigResource)
    93  	var _ dag.NamedVertex = new(GraphNodeConfigResource)
    94  	var _ graphNodeConfig = new(GraphNodeConfigResource)
    95  	var _ GraphNodeProviderConsumer = new(GraphNodeConfigResource)
    96  	var _ GraphNodeProvisionerConsumer = new(GraphNodeConfigResource)
    97  }
    98  
    99  func TestGraphNodeConfigResource_ProvidedBy(t *testing.T) {
   100  	n := &GraphNodeConfigResource{
   101  		Resource: &config.Resource{Type: "aws_instance"},
   102  	}
   103  
   104  	if v := n.ProvidedBy(); v[0] != "aws" {
   105  		t.Fatalf("bad: %#v", v)
   106  	}
   107  }
   108  
   109  func TestGraphNodeConfigResource_ProvidedBy_alias(t *testing.T) {
   110  	n := &GraphNodeConfigResource{
   111  		Resource: &config.Resource{Type: "aws_instance", Provider: "aws.bar"},
   112  	}
   113  
   114  	if v := n.ProvidedBy(); v[0] != "aws.bar" {
   115  		t.Fatalf("bad: %#v", v)
   116  	}
   117  }
   118  
   119  func TestGraphNodeConfigResource_ProvisionedBy(t *testing.T) {
   120  	n := &GraphNodeConfigResource{
   121  		Resource: &config.Resource{
   122  			Type: "aws_instance",
   123  			Provisioners: []*config.Provisioner{
   124  				&config.Provisioner{Type: "foo"},
   125  				&config.Provisioner{Type: "bar"},
   126  			},
   127  		},
   128  	}
   129  
   130  	expected := []string{"foo", "bar"}
   131  	actual := n.ProvisionedBy()
   132  	if !reflect.DeepEqual(actual, expected) {
   133  		t.Fatalf("bad: %#v", actual)
   134  	}
   135  }
   136  
   137  const testGraphNodeModuleExpandStr = `
   138  aws_instance.bar
   139    aws_instance.foo
   140  aws_instance.foo
   141    module inputs
   142  module inputs
   143  `