github.com/turtlemonvh/terraform@v0.6.9-0.20151204001754-8e40b6b855e8/terraform/eval_context_builtin_test.go (about)

     1  package terraform
     2  
     3  import (
     4  	"reflect"
     5  	"sync"
     6  	"testing"
     7  )
     8  
     9  func TestBuiltinEvalContextProviderInput(t *testing.T) {
    10  	var lock sync.Mutex
    11  	cache := make(map[string]map[string]interface{})
    12  
    13  	ctx1 := testBuiltinEvalContext(t)
    14  	ctx1.PathValue = []string{"root"}
    15  	ctx1.ProviderInputConfig = cache
    16  	ctx1.ProviderLock = &lock
    17  
    18  	ctx2 := testBuiltinEvalContext(t)
    19  	ctx2.PathValue = []string{"root", "child"}
    20  	ctx2.ProviderInputConfig = cache
    21  	ctx2.ProviderLock = &lock
    22  
    23  	expected1 := map[string]interface{}{"value": "foo"}
    24  	ctx1.SetProviderInput("foo", expected1)
    25  
    26  	expected2 := map[string]interface{}{"value": "bar"}
    27  	ctx2.SetProviderInput("foo", expected2)
    28  
    29  	actual1 := ctx1.ProviderInput("foo")
    30  	actual2 := ctx2.ProviderInput("foo")
    31  
    32  	if !reflect.DeepEqual(actual1, expected1) {
    33  		t.Fatalf("bad: %#v %#v", actual1, expected1)
    34  	}
    35  	if !reflect.DeepEqual(actual2, expected2) {
    36  		t.Fatalf("bad: %#v %#v", actual2, expected2)
    37  	}
    38  }
    39  
    40  func testBuiltinEvalContext(t *testing.T) *BuiltinEvalContext {
    41  	return &BuiltinEvalContext{}
    42  }