config: tests for instantiating interpolated var types

This commit is contained in:
Mitchell Hashimoto 2014-05-24 11:41:19 -07:00
parent 9fef261eae
commit bb0980f5ba
2 changed files with 42 additions and 2 deletions

View File

@ -52,7 +52,8 @@ type ResourceVariable struct {
// that is inputted from outside the configuration. This looks like // that is inputted from outside the configuration. This looks like
// "${var.foo}" // "${var.foo}"
type UserVariable struct { type UserVariable struct {
name string Name string
key string key string
} }
@ -74,7 +75,7 @@ func NewUserVariable(key string) (*UserVariable, error) {
name := key[len("var."):] name := key[len("var."):]
return &UserVariable{ return &UserVariable{
key: key, key: key,
name: name, Name: name,
}, nil }, nil
} }

View File

@ -1,4 +1,43 @@
package config package config
import (
"testing"
)
// This is the directory where our test fixtures are. // This is the directory where our test fixtures are.
const fixtureDir = "./test-fixtures" const fixtureDir = "./test-fixtures"
func TestNewResourceVariable(t *testing.T) {
v, err := NewResourceVariable("foo.bar.baz")
if err != nil {
t.Fatalf("err: %s", err)
}
if v.Type != "foo" {
t.Fatalf("bad: %#v", v)
}
if v.Name != "bar" {
t.Fatalf("bad: %#v", v)
}
if v.Field != "baz" {
t.Fatalf("bad: %#v", v)
}
if v.FullKey() != "foo.bar.baz" {
t.Fatalf("bad: %#v", v)
}
}
func TestNewUserVariable(t *testing.T) {
v, err := NewUserVariable("var.bar")
if err != nil {
t.Fatalf("err: %s", err)
}
if v.Name != "bar" {
t.Fatalf("bad: %#v", v.Name)
}
if v.FullKey() != "var.bar" {
t.Fatalf("bad: %#v", v)
}
}