github.com/rmenn/terraform@v0.3.8-0.20150225065417-fc84b3a78802/terraform/eval_provider_test.go (about) 1 package terraform 2 3 import ( 4 "reflect" 5 "testing" 6 ) 7 8 func TestEvalConfigProvider_impl(t *testing.T) { 9 var _ EvalNode = new(EvalConfigProvider) 10 } 11 12 func TestEvalConfigProvider(t *testing.T) { 13 config := testResourceConfig(t, map[string]interface{}{}) 14 provider := &MockResourceProvider{} 15 n := &EvalConfigProvider{Config: &config} 16 17 ctx := &MockEvalContext{ProviderProvider: provider} 18 if _, err := n.Eval(ctx); err != nil { 19 t.Fatalf("err: %s", err) 20 } 21 22 if !ctx.ConfigureProviderCalled { 23 t.Fatal("should be called") 24 } 25 if !reflect.DeepEqual(ctx.ConfigureProviderConfig, config) { 26 t.Fatalf("bad: %#v", ctx.ConfigureProviderConfig) 27 } 28 } 29 30 func TestEvalInitProvider_impl(t *testing.T) { 31 var _ EvalNode = new(EvalInitProvider) 32 } 33 34 func TestEvalInitProvider(t *testing.T) { 35 n := &EvalInitProvider{Name: "foo"} 36 provider := &MockResourceProvider{} 37 ctx := &MockEvalContext{InitProviderProvider: provider} 38 if _, err := n.Eval(ctx); err != nil { 39 t.Fatalf("err: %s", err) 40 } 41 42 if !ctx.InitProviderCalled { 43 t.Fatal("should be called") 44 } 45 if ctx.InitProviderName != "foo" { 46 t.Fatalf("bad: %#v", ctx.InitProviderName) 47 } 48 } 49 50 func TestEvalGetProvider_impl(t *testing.T) { 51 var _ EvalNode = new(EvalGetProvider) 52 } 53 54 func TestEvalGetProvider(t *testing.T) { 55 var actual ResourceProvider 56 n := &EvalGetProvider{Name: "foo", Output: &actual} 57 provider := &MockResourceProvider{} 58 ctx := &MockEvalContext{ProviderProvider: provider} 59 if _, err := n.Eval(ctx); err != nil { 60 t.Fatalf("err: %s", err) 61 } 62 if actual != provider { 63 t.Fatalf("bad: %#v", actual) 64 } 65 66 if !ctx.ProviderCalled { 67 t.Fatal("should be called") 68 } 69 if ctx.ProviderName != "foo" { 70 t.Fatalf("bad: %#v", ctx.ProviderName) 71 } 72 }