mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
terraform: complete more nodes
This commit is contained in:
parent
ac92c67cba
commit
c2df70e499
@ -18,7 +18,9 @@ func (n *EvalConfigProvider) Args() ([]EvalNode, []EvalType) {
|
|||||||
|
|
||||||
func (n *EvalConfigProvider) Eval(
|
func (n *EvalConfigProvider) Eval(
|
||||||
ctx EvalContext, args []interface{}) (interface{}, error) {
|
ctx EvalContext, args []interface{}) (interface{}, error) {
|
||||||
return nil, nil
|
provider := args[0].(ResourceProvider)
|
||||||
|
config := args[1].(*ResourceConfig)
|
||||||
|
return nil, provider.Configure(config)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *EvalConfigProvider) Type() EvalType {
|
func (n *EvalConfigProvider) Type() EvalType {
|
||||||
|
@ -1,9 +1,53 @@
|
|||||||
package terraform
|
package terraform
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestEvalConfigProvider_impl(t *testing.T) {
|
||||||
|
var _ EvalNode = new(EvalConfigProvider)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEvalConfigProvider(t *testing.T) {
|
||||||
|
config := testResourceConfig(t, map[string]interface{}{})
|
||||||
|
provider := &MockResourceProvider{}
|
||||||
|
n := &EvalConfigProvider{}
|
||||||
|
|
||||||
|
ctx := &MockEvalContext{ProviderProvider: provider}
|
||||||
|
args := []interface{}{provider, config}
|
||||||
|
if actual, err := n.Eval(ctx, args); err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
} else if actual != nil {
|
||||||
|
t.Fatalf("bad: %#v", actual)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !provider.ConfigureCalled {
|
||||||
|
t.Fatal("should be called")
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(provider.ConfigureConfig, config) {
|
||||||
|
t.Fatalf("bad: %#v", provider.ConfigureConfig)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEvalConfigProvider_args(t *testing.T) {
|
||||||
|
config := testResourceConfig(t, map[string]interface{}{})
|
||||||
|
provider := &MockResourceProvider{}
|
||||||
|
providerNode := &EvalLiteral{Value: provider}
|
||||||
|
configNode := &EvalLiteral{Value: config}
|
||||||
|
n := &EvalConfigProvider{Provider: providerNode, Config: configNode}
|
||||||
|
|
||||||
|
args, types := n.Args()
|
||||||
|
expectedArgs := []EvalNode{providerNode, configNode}
|
||||||
|
expectedTypes := []EvalType{EvalTypeResourceProvider, EvalTypeConfig}
|
||||||
|
if !reflect.DeepEqual(args, expectedArgs) {
|
||||||
|
t.Fatalf("bad: %#v", args)
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(types, expectedTypes) {
|
||||||
|
t.Fatalf("bad: %#v", args)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestEvalInitProvider_impl(t *testing.T) {
|
func TestEvalInitProvider_impl(t *testing.T) {
|
||||||
var _ EvalNode = new(EvalInitProvider)
|
var _ EvalNode = new(EvalInitProvider)
|
||||||
}
|
}
|
||||||
|
@ -116,3 +116,13 @@ func TestResourceConfigGet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testResourceConfig(
|
||||||
|
t *testing.T, c map[string]interface{}) *ResourceConfig {
|
||||||
|
raw, err := config.NewRawConfig(c)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return NewResourceConfig(raw)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user