75 lines
1.5 KiB
Go
75 lines
1.5 KiB
Go
// Testing support for go-toml
|
|
|
|
package toml
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestTomlHas(t *testing.T) {
|
|
tree, _ := Load(`
|
|
[test]
|
|
key = "value"
|
|
`)
|
|
|
|
if !tree.Has("test.key") {
|
|
t.Errorf("Has - expected test.key to exists")
|
|
}
|
|
}
|
|
|
|
func TestTomlHasPath(t *testing.T) {
|
|
tree, _ := Load(`
|
|
[test]
|
|
key = "value"
|
|
`)
|
|
|
|
if !tree.HasPath([]string{"test", "key"}) {
|
|
t.Errorf("HasPath - expected test.key to exists")
|
|
}
|
|
}
|
|
|
|
func TestTomlGetPath(t *testing.T) {
|
|
node := newTomlTree()
|
|
//TODO: set other node data
|
|
|
|
for idx, item := range []struct {
|
|
Path []string
|
|
Expected *TomlTree
|
|
}{
|
|
{ // empty path test
|
|
[]string{},
|
|
node,
|
|
},
|
|
} {
|
|
result := node.GetPath(item.Path)
|
|
if result != item.Expected {
|
|
t.Errorf("GetPath[%d] %v - expected %v, got %v instead.", idx, item.Path, item.Expected, result)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestTomlQuery(t *testing.T) {
|
|
tree, err := Load("[foo.bar]\na=1\nb=2\n[baz.foo]\na=3\nb=4\n[gorf.foo]\na=5\nb=6")
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
result, err := tree.Query("$.foo.bar")
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
values := result.Values()
|
|
if len(values) != 1 {
|
|
t.Errorf("Expected resultset of 1, got %d instead: %v", len(values), values)
|
|
}
|
|
|
|
if tt, ok := values[0].(*TomlTree); !ok {
|
|
t.Errorf("Expected type of TomlTree: %T Tv", values[0], values[0])
|
|
} else if tt.Get("a") != int64(1) {
|
|
t.Errorf("Expected 'a' with a value 1: %v", tt.Get("a"))
|
|
} else if tt.Get("b") != int64(2) {
|
|
t.Errorf("Expected 'b' with a value 2: %v", tt.Get("b"))
|
|
}
|
|
}
|