e3b2497729
* Extract TomlTree conversion to its own file * Implement ToMap * Reorder imports in tomltree_conversions
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package toml
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func testMaps(t *testing.T, actual, expected map[string]interface{}) {
|
|
if !reflect.DeepEqual(actual, expected) {
|
|
t.Fatal("trees aren't equal.\n", "Expected:\n", expected, "\nActual:\n", actual)
|
|
}
|
|
}
|
|
|
|
func TestTomlTreeConversionToMapSimple(t *testing.T) {
|
|
tree, _ := Load("a = 42\nb = 17")
|
|
|
|
expected := map[string]interface{}{
|
|
"a": int64(42),
|
|
"b": int64(17),
|
|
}
|
|
|
|
testMaps(t, tree.ToMap(), expected)
|
|
}
|
|
|
|
func TestTomlTreeConversionToMapExampleFile(t *testing.T) {
|
|
tree, _ := LoadFile("example.toml")
|
|
expected := map[string]interface{}{
|
|
"title": "TOML Example",
|
|
"owner": map[string]interface{}{
|
|
"name": "Tom Preston-Werner",
|
|
"organization": "GitHub",
|
|
"bio": "GitHub Cofounder & CEO\nLikes tater tots and beer.",
|
|
"dob": time.Date(1979, time.May, 27, 7, 32, 0, 0, time.UTC),
|
|
},
|
|
"database": map[string]interface{}{
|
|
"server": "192.168.1.1",
|
|
"ports": []interface{}{int64(8001), int64(8001), int64(8002)},
|
|
"connection_max": int64(5000),
|
|
"enabled": true,
|
|
},
|
|
"servers": map[string]interface{}{
|
|
"alpha": map[string]interface{}{
|
|
"ip": "10.0.0.1",
|
|
"dc": "eqdc10",
|
|
},
|
|
"beta": map[string]interface{}{
|
|
"ip": "10.0.0.2",
|
|
"dc": "eqdc10",
|
|
},
|
|
},
|
|
"clients": map[string]interface{}{
|
|
"data": []interface{}{
|
|
[]interface{}{"gamma", "delta"},
|
|
[]interface{}{int64(1), int64(2)},
|
|
},
|
|
},
|
|
}
|
|
testMaps(t, tree.ToMap(), expected)
|
|
}
|