58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
package terraform
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestSMCUserVariables(t *testing.T) {
|
|
c := testConfig(t, "smc-uservars")
|
|
|
|
// Required variables not set
|
|
errs := smcUserVariables(c, nil)
|
|
if len(errs) == 0 {
|
|
t.Fatal("should have errors")
|
|
}
|
|
|
|
// Required variables set, optional variables unset
|
|
errs = smcUserVariables(c, map[string]interface{}{"foo": "bar"})
|
|
if len(errs) != 0 {
|
|
t.Fatalf("err: %#v", errs)
|
|
}
|
|
|
|
// Mapping element override
|
|
errs = smcUserVariables(c, map[string]interface{}{
|
|
"foo": "bar",
|
|
"map.foo": "baz",
|
|
})
|
|
if len(errs) == 0 {
|
|
t.Fatalf("err: %#v", errs)
|
|
}
|
|
|
|
// Mapping complete override
|
|
errs = smcUserVariables(c, map[string]interface{}{
|
|
"foo": "bar",
|
|
"map": "baz",
|
|
})
|
|
if len(errs) == 0 {
|
|
t.Fatal("should have errors")
|
|
}
|
|
|
|
}
|
|
|
|
func TestSMCUserVariables_mapFromJSON(t *testing.T) {
|
|
c := testConfig(t, "uservars-map")
|
|
|
|
// ensure that a single map in a list can satisfy a map variable, since it
|
|
// will be coerced later to a map
|
|
err := smcUserVariables(c, map[string]interface{}{
|
|
"test_map": []map[string]interface{}{
|
|
map[string]interface{}{
|
|
"foo": "bar",
|
|
},
|
|
},
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|