mirror of https://github.com/hashicorp/terraform
parent
128c07e504
commit
ac92c67cba
@ -0,0 +1,20 @@
|
||||
package terraform
|
||||
|
||||
// EvalLiteral is an EvalNode implementation that returns a literal
|
||||
// value. This is very useful for testing as well as in practice.
|
||||
type EvalLiteral struct {
|
||||
Value interface{}
|
||||
ValueType EvalType
|
||||
}
|
||||
|
||||
func (n *EvalLiteral) Args() ([]EvalNode, []EvalType) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (n *EvalLiteral) Eval(EvalContext, []interface{}) (interface{}, error) {
|
||||
return n.Value, nil
|
||||
}
|
||||
|
||||
func (n *EvalLiteral) Type() EvalType {
|
||||
return n.ValueType
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package terraform
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEvalLiteral_impl(t *testing.T) {
|
||||
var _ EvalNode = new(EvalLiteral)
|
||||
}
|
||||
|
||||
func TestEvalLiteralEval(t *testing.T) {
|
||||
n := &EvalLiteral{Value: 42}
|
||||
actual, err := n.Eval(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
if actual != 42 {
|
||||
t.Fatalf("bad: %#v", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEvalLiteralType(t *testing.T) {
|
||||
n := &EvalLiteral{Value: 42, ValueType: EvalTypeConfig}
|
||||
if actual := n.Type(); actual != EvalTypeConfig {
|
||||
t.Fatalf("bad: %#v", actual)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package terraform
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEvalInitProvider_impl(t *testing.T) {
|
||||
var _ EvalNode = new(EvalInitProvider)
|
||||
}
|
||||
|
||||
func TestEvalInitProvider(t *testing.T) {
|
||||
n := &EvalInitProvider{Name: "foo"}
|
||||
provider := &MockResourceProvider{}
|
||||
ctx := &MockEvalContext{InitProviderProvider: provider}
|
||||
if actual, err := n.Eval(ctx, nil); err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
} else if actual != provider {
|
||||
t.Fatalf("bad: %#v", actual)
|
||||
}
|
||||
|
||||
if !ctx.InitProviderCalled {
|
||||
t.Fatal("should be called")
|
||||
}
|
||||
if ctx.InitProviderName != "foo" {
|
||||
t.Fatalf("bad: %#v", ctx.InitProviderName)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEvalGetProvider_impl(t *testing.T) {
|
||||
var _ EvalNode = new(EvalGetProvider)
|
||||
}
|
||||
|
||||
func TestEvalGetProvider(t *testing.T) {
|
||||
n := &EvalGetProvider{Name: "foo"}
|
||||
provider := &MockResourceProvider{}
|
||||
ctx := &MockEvalContext{ProviderProvider: provider}
|
||||
if actual, err := n.Eval(ctx, nil); err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
} else if actual != provider {
|
||||
t.Fatalf("bad: %#v", actual)
|
||||
}
|
||||
|
||||
if !ctx.ProviderCalled {
|
||||
t.Fatal("should be called")
|
||||
}
|
||||
if ctx.ProviderName != "foo" {
|
||||
t.Fatalf("bad: %#v", ctx.ProviderName)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package terraform
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMockEvalContext_impl(t *testing.T) {
|
||||
var _ EvalContext = new(MockEvalContext)
|
||||
}
|
||||
Loading…
Reference in new issue