boulder/strictyaml/yaml_test.go

48 lines
800 B
Go

package strictyaml
import (
"io"
"testing"
"github.com/letsencrypt/boulder/test"
)
var (
emptyConfig = []byte(``)
validConfig = []byte(`
a: c
d: c
`)
invalidConfig1 = []byte(`
x: y
`)
invalidConfig2 = []byte(`
a: c
d: c
x:
- hey
`)
)
func TestStrictYAMLUnmarshal(t *testing.T) {
var config struct {
A string `yaml:"a"`
D string `yaml:"d"`
}
err := Unmarshal(validConfig, &config)
test.AssertNotError(t, err, "yaml: unmarshal errors")
test.AssertNotError(t, err, "EOF")
err = Unmarshal(invalidConfig1, &config)
test.AssertError(t, err, "yaml: unmarshal errors")
err = Unmarshal(invalidConfig2, &config)
test.AssertError(t, err, "yaml: unmarshal errors")
// Test an empty buffer (config file)
err = Unmarshal(emptyConfig, &config)
test.AssertErrorIs(t, err, io.EOF)
}