Added test
This commit is contained in:
parent
dbe859620b
commit
272452f813
|
@ -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")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue