From 272452f813dc02b5720a8e0ff33993ee0a1a34d6 Mon Sep 17 00:00:00 2001 From: Stephen Weinberg Date: Tue, 30 Mar 2010 13:58:34 -0400 Subject: [PATCH] Added test --- conf_test.go | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 conf_test.go diff --git a/conf_test.go b/conf_test.go new file mode 100644 index 0000000..bf49180 --- /dev/null +++ b/conf_test.go @@ -0,0 +1,85 @@ +package conf_test + +import( + . "conf" + "testing" + "strconv" +) + +const confFile = ` +[default] +host = example.com +port = 43 +compression = on +active = false + +[service-1] +port = 443 +url = http://%(host)s/something +` + +type stringtest struct { + section string + option string + answer string +} + +type inttest struct { + section string + option string + answer int +} + +type booltest struct { + section string + option string + answer bool +} + +var testSet = []interface{} { + stringtest{"default", "host", "example.com"}, + inttest{"default", "port", 43}, + booltest{"default", "compression", true}, + booltest{"default", "active", false}, + inttest{"service-1", "port", 443}, + stringtest{"service-1", "url", "http://example.com/something"}, +} + +func TestBuild(t *testing.T) { + c, err := ReadConfigBytes([]byte(confFile)) + if err != nil { + t.Error(err.String()) + } + + for _, element := range testSet { + switch i := element.(type) { + case stringtest: + e := element.(stringtest) + ans, err := c.GetString(e.section, e.option) + if err != nil { + t.Error("c.GetString(\"" + e.section + "\",\"" + e.option + "\") returned error: " + err.String()) + } + if ans != e.answer { + t.Error("c.GetString(\"" + e.section + "\",\"" + e.option + "\") returned incorrect answer: " + ans) + } + case inttest: + e := element.(inttest) + ans, err := c.GetInt(e.section, e.option) + if err != nil { + t.Error("c.GetInt(\"" + e.section + "\",\"" + e.option + "\") returned error: " + err.String()) + } + if ans != e.answer { + t.Error("c.GetInt(\"" + e.section + "\",\"" + e.option + "\") returned incorrect answer: " + strconv.Itoa(ans)) + } + case booltest: + e := element.(booltest) + ans, err := c.GetBool(e.section, e.option) + if err != nil { + t.Error("c.GetBool(\"" + e.section + "\",\"" + e.option + "\") returned error: " + err.String()) + } + if ans != e.answer { + t.Error("c.GetBool(\"" + e.section + "\",\"" + e.option + "\") returned incorrect answer") + } + } + } +}