44 lines
697 B
Go
44 lines
697 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const testParserConf = `
|
|
token: "test_token"
|
|
url: test.url
|
|
port: 5010
|
|
`
|
|
|
|
type TestConf struct {
|
|
Token string `yaml:"token"`
|
|
Url string `yaml:"url"`
|
|
Port int `yaml:"port"`
|
|
}
|
|
|
|
func TestParser(t *testing.T) {
|
|
file, err := os.CreateTemp("", "config")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer file.Close()
|
|
|
|
_, err = file.WriteString(testParserConf)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
p := NewParser[TestConf]()
|
|
conf, err := p.ParseFile(file.Name())
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
assert.Equal(t, "test_token", conf.Token)
|
|
assert.Equal(t, "test.url", conf.Url)
|
|
assert.Equal(t, 5010, conf.Port)
|
|
}
|