From e69837454adaffbcadfb11bb795db496a0cbb4ad Mon Sep 17 00:00:00 2001 From: Gladkov Alexey Date: Wed, 15 Nov 2017 16:37:43 +0100 Subject: [PATCH] Add tests for configuration parser Signed-off-by: Gladkov Alexey --- configuration/parser_test.go | 70 ++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 configuration/parser_test.go diff --git a/configuration/parser_test.go b/configuration/parser_test.go new file mode 100644 index 00000000..344b2ee4 --- /dev/null +++ b/configuration/parser_test.go @@ -0,0 +1,70 @@ +package configuration + +import ( + "os" + "reflect" + + . "gopkg.in/check.v1" +) + +type localConfiguration struct { + Version Version `yaml:"version"` + Log *Log `yaml:"log"` +} + +type Log struct { + Formatter string `yaml:"formatter,omitempty"` +} + +var expectedConfig = localConfiguration{ + Version: "0.1", + Log: &Log{ + Formatter: "json", + }, +} + +type ParserSuite struct{} + +var _ = Suite(new(ParserSuite)) + +func (suite *ParserSuite) TestParserOverwriteIninitializedPoiner(c *C) { + config := localConfiguration{} + + os.Setenv("REGISTRY_LOG_FORMATTER", "json") + defer os.Unsetenv("REGISTRY_LOG_FORMATTER") + + p := NewParser("registry", []VersionedParseInfo{ + { + Version: "0.1", + ParseAs: reflect.TypeOf(config), + ConversionFunc: func(c interface{}) (interface{}, error) { + return c, nil + }, + }, + }) + + err := p.Parse([]byte(`{version: "0.1", log: {formatter: "text"}}`), &config) + c.Assert(err, IsNil) + c.Assert(config, DeepEquals, expectedConfig) +} + +func (suite *ParserSuite) TestParseOverwriteUnininitializedPoiner(c *C) { + config := localConfiguration{} + + os.Setenv("REGISTRY_LOG_FORMATTER", "json") + defer os.Unsetenv("REGISTRY_LOG_FORMATTER") + + p := NewParser("registry", []VersionedParseInfo{ + { + Version: "0.1", + ParseAs: reflect.TypeOf(config), + ConversionFunc: func(c interface{}) (interface{}, error) { + return c, nil + }, + }, + }) + + err := p.Parse([]byte(`{version: "0.1"}`), &config) + c.Assert(err, IsNil) + c.Assert(config, DeepEquals, expectedConfig) +}