packer-cn/config_test.go

65 lines
1.3 KiB
Go

package main
import (
"cgl.tideland.biz/asserts"
"testing"
)
func TestConfig_MergeConfig(t *testing.T) {
assert := asserts.NewTestingAsserts(t, true)
aString := `
[commands]
a = "1"
b = "1"
`
bString := `
[commands]
a = "1"
b = "2"
c = "3"
`
a, _ := parseConfig(aString)
b, _ := parseConfig(bString)
result := mergeConfig(a, b)
assert.Equal(result.Commands["a"], "1", "a should be 1")
assert.Equal(result.Commands["b"], "2", "a should be 2")
assert.Equal(result.Commands["c"], "3", "a should be 3")
}
func TestConfig_ParseConfig_Bad(t *testing.T) {
assert := asserts.NewTestingAsserts(t, true)
data := `
[commands]
foo = bar
`
_, err := parseConfig(data)
assert.NotNil(err, "should have an error")
}
func TestConfig_ParseConfig_DefaultConfig(t *testing.T) {
assert := asserts.NewTestingAsserts(t, true)
_, err := parseConfig(defaultConfig)
assert.Nil(err, "should be able to parse the default config")
}
func TestConfig_ParseConfig_Good(t *testing.T) {
assert := asserts.NewTestingAsserts(t, true)
data := `
[commands]
foo = "bar"
`
c, err := parseConfig(data)
assert.Nil(err, "should not have an error")
assert.Equal(c.CommandNames(), []string{"foo"}, "should have correct command names")
assert.Equal(c.Commands["foo"], "bar", "should have the command")
}