github.com/hashicorp/terraform-plugin-sdk@v1.17.2/terraform/eval_provisioner_test.go (about) 1 package terraform 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/terraform-plugin-sdk/internal/provisioners" 7 ) 8 9 func TestEvalInitProvisioner_impl(t *testing.T) { 10 var _ EvalNode = new(EvalInitProvisioner) 11 } 12 13 func TestEvalInitProvisioner(t *testing.T) { 14 n := &EvalInitProvisioner{Name: "foo"} 15 provisioner := &MockProvisioner{} 16 ctx := &MockEvalContext{InitProvisionerProvisioner: provisioner} 17 if _, err := n.Eval(ctx); err != nil { 18 t.Fatalf("err: %s", err) 19 } 20 21 if !ctx.InitProvisionerCalled { 22 t.Fatal("should be called") 23 } 24 if ctx.InitProvisionerName != "foo" { 25 t.Fatalf("bad: %#v", ctx.InitProvisionerName) 26 } 27 } 28 29 func TestEvalCloseProvisioner(t *testing.T) { 30 n := &EvalCloseProvisioner{Name: "foo"} 31 provisioner := &MockProvisioner{} 32 ctx := &MockEvalContext{CloseProvisionerProvisioner: provisioner} 33 if _, err := n.Eval(ctx); err != nil { 34 t.Fatalf("err: %s", err) 35 } 36 37 if !ctx.CloseProvisionerCalled { 38 t.Fatal("should be called") 39 } 40 if ctx.CloseProvisionerName != "foo" { 41 t.Fatalf("bad: %#v", ctx.CloseProvisionerName) 42 } 43 } 44 45 func TestEvalGetProvisioner_impl(t *testing.T) { 46 var _ EvalNode = new(EvalGetProvisioner) 47 } 48 49 func TestEvalGetProvisioner(t *testing.T) { 50 var actual provisioners.Interface 51 n := &EvalGetProvisioner{Name: "foo", Output: &actual} 52 provisioner := &MockProvisioner{} 53 ctx := &MockEvalContext{ProvisionerProvisioner: provisioner} 54 if _, err := n.Eval(ctx); err != nil { 55 t.Fatalf("err: %s", err) 56 } 57 if actual != provisioner { 58 t.Fatalf("bad: %#v", actual) 59 } 60 61 if !ctx.ProvisionerCalled { 62 t.Fatal("should be called") 63 } 64 if ctx.ProvisionerName != "foo" { 65 t.Fatalf("bad: %#v", ctx.ProvisionerName) 66 } 67 }