src.dualinventive.com/go/lib/config/config_test.go

45 lines
902 B
Go

package config_test
import (
"io/ioutil"
"os"
"strings"
"testing"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"src.dualinventive.com/go/lib/config"
)
type testConfig struct {
config.Config `yaml:",inline"`
TestItem string
}
func TestLoadFullPath(t *testing.T) {
f, err := ioutil.TempFile("", t.Name())
assert.Nil(t, err)
assert.True(t, strings.ContainsRune(f.Name(), os.PathSeparator))
_, err = f.WriteString(`testitem: boembats
logfile: jemoeder.txt
loglevel: error
`)
assert.Nil(t, err)
assert.Nil(t, f.Sync())
assert.Nil(t, f.Close())
cfg := testConfig{}
_, err = config.Load(f.Name(), &cfg)
assert.Nil(t, err)
assert.Equal(t, "error", cfg.GetLoglevel())
assert.Equal(t, "jemoeder.txt", cfg.GetLogfile())
assert.Equal(t, "boembats", cfg.TestItem)
assert.Nil(t, os.Remove(f.Name()))
logrus.SetOutput(os.Stdout)
os.Remove("jemoeder.txt")
}