mirror of
https://gitee.com/johng/gf.git
synced 2024-12-02 12:17:53 +08:00
Improving gjson Code Coverage And Fix
This commit is contained in:
parent
3a803ac39f
commit
30be5c5e49
@ -15,7 +15,7 @@ import (
|
|||||||
|
|
||||||
func ExampleLoad() {
|
func ExampleLoad() {
|
||||||
jsonFilePath := gdebug.TestDataPath("json", "data1.json")
|
jsonFilePath := gdebug.TestDataPath("json", "data1.json")
|
||||||
j, _ := gjson.Load(jsonFilePath, true)
|
j, _ := gjson.Load(jsonFilePath)
|
||||||
fmt.Println(j.Get("name"))
|
fmt.Println(j.Get("name"))
|
||||||
fmt.Println(j.Get("score"))
|
fmt.Println(j.Get("score"))
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ func ExampleLoad() {
|
|||||||
|
|
||||||
func ExampleLoadJson() {
|
func ExampleLoadJson() {
|
||||||
jsonContent := `{"name":"john", "score":"100"}`
|
jsonContent := `{"name":"john", "score":"100"}`
|
||||||
j, _ := gjson.LoadJson(jsonContent, true)
|
j, _ := gjson.LoadJson(jsonContent)
|
||||||
fmt.Println(j.Get("name"))
|
fmt.Println(j.Get("name"))
|
||||||
fmt.Println(j.Get("score"))
|
fmt.Println(j.Get("score"))
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ func ExampleLoadXml() {
|
|||||||
<name>john</name>
|
<name>john</name>
|
||||||
<score>100</score>
|
<score>100</score>
|
||||||
</base>`
|
</base>`
|
||||||
j, _ := gjson.LoadXml(xmlContent, true)
|
j, _ := gjson.LoadXml(xmlContent)
|
||||||
fmt.Println(j.Get("base.name"))
|
fmt.Println(j.Get("base.name"))
|
||||||
fmt.Println(j.Get("base.score"))
|
fmt.Println(j.Get("base.score"))
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ func ExampleLoadIni() {
|
|||||||
name = john
|
name = john
|
||||||
score = 100
|
score = 100
|
||||||
`
|
`
|
||||||
j, _ := gjson.LoadIni(iniContent, true)
|
j, _ := gjson.LoadIni(iniContent)
|
||||||
fmt.Println(j.Get("base.name"))
|
fmt.Println(j.Get("base.name"))
|
||||||
fmt.Println(j.Get("base.score"))
|
fmt.Println(j.Get("base.score"))
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ func ExampleLoadYaml() {
|
|||||||
name: john
|
name: john
|
||||||
score: 100`
|
score: 100`
|
||||||
|
|
||||||
j, _ := gjson.LoadYaml(yamlContent, true)
|
j, _ := gjson.LoadYaml(yamlContent)
|
||||||
fmt.Println(j.Get("base.name"))
|
fmt.Println(j.Get("base.name"))
|
||||||
fmt.Println(j.Get("base.score"))
|
fmt.Println(j.Get("base.score"))
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ func ExampleLoadToml() {
|
|||||||
name = "john"
|
name = "john"
|
||||||
score = 100`
|
score = 100`
|
||||||
|
|
||||||
j, _ := gjson.LoadToml(tomlContent, true)
|
j, _ := gjson.LoadToml(tomlContent)
|
||||||
fmt.Println(j.Get("base.name"))
|
fmt.Println(j.Get("base.name"))
|
||||||
fmt.Println(j.Get("base.score"))
|
fmt.Println(j.Get("base.score"))
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ func ExampleLoadContentType() {
|
|||||||
<score>100</score>
|
<score>100</score>
|
||||||
</base>`
|
</base>`
|
||||||
|
|
||||||
j, _ := gjson.LoadContentType("json", jsonContent, true)
|
j, _ := gjson.LoadContentType("json", jsonContent)
|
||||||
x, _ := gjson.LoadContentType("xml", xmlContent)
|
x, _ := gjson.LoadContentType("xml", xmlContent)
|
||||||
j1, _ := gjson.LoadContentType("json", "")
|
j1, _ := gjson.LoadContentType("json", "")
|
||||||
|
|
||||||
|
@ -28,11 +28,17 @@ func Test_Load_JSON1(t *testing.T) {
|
|||||||
t.Assert(j.Get("a.1").Int(), 2)
|
t.Assert(j.Get("a.1").Int(), 2)
|
||||||
})
|
})
|
||||||
// JSON
|
// JSON
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
errData := []byte(`{"n":123456789, "m":{"k":"v"}, "a":[1,2,3]`)
|
||||||
|
_, err := gjson.LoadContentType("json", errData, true)
|
||||||
|
t.AssertNE(err, nil)
|
||||||
|
})
|
||||||
|
// JSON
|
||||||
gtest.C(t, func(t *gtest.T) {
|
gtest.C(t, func(t *gtest.T) {
|
||||||
path := "test.json"
|
path := "test.json"
|
||||||
gfile.PutBytes(path, data)
|
gfile.PutBytes(path, data)
|
||||||
defer gfile.Remove(path)
|
defer gfile.Remove(path)
|
||||||
j, err := gjson.Load(path)
|
j, err := gjson.Load(path, true)
|
||||||
t.Assert(err, nil)
|
t.Assert(err, nil)
|
||||||
t.Assert(j.Get("n").String(), "123456789")
|
t.Assert(j.Get("n").String(), "123456789")
|
||||||
t.Assert(j.Get("m").Map(), g.Map{"k": "v"})
|
t.Assert(j.Get("m").Map(), g.Map{"k": "v"})
|
||||||
@ -68,6 +74,22 @@ func Test_Load_XML(t *testing.T) {
|
|||||||
t.Assert(j.Get("doc.a.1").Int(), 2)
|
t.Assert(j.Get("doc.a.1").Int(), 2)
|
||||||
})
|
})
|
||||||
// XML
|
// XML
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
j, err := gjson.LoadXml(data, true)
|
||||||
|
t.Assert(err, nil)
|
||||||
|
t.Assert(j.Get("doc.n").String(), "123456789")
|
||||||
|
t.Assert(j.Get("doc.m").Map(), g.Map{"k": "v"})
|
||||||
|
t.Assert(j.Get("doc.m.k").String(), "v")
|
||||||
|
t.Assert(j.Get("doc.a").Slice(), g.Slice{"1", "2", "3"})
|
||||||
|
t.Assert(j.Get("doc.a.1").Int(), 2)
|
||||||
|
})
|
||||||
|
// XML
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
errData := []byte(`<doc><a>1</a><a>2</a><a>3</a><m><k>v</k></m><n>123456789</n><doc>`)
|
||||||
|
_, err := gjson.LoadContentType("xml", errData, true)
|
||||||
|
t.AssertNE(err, nil)
|
||||||
|
})
|
||||||
|
// XML
|
||||||
gtest.C(t, func(t *gtest.T) {
|
gtest.C(t, func(t *gtest.T) {
|
||||||
path := "test.xml"
|
path := "test.xml"
|
||||||
gfile.PutBytes(path, data)
|
gfile.PutBytes(path, data)
|
||||||
@ -121,6 +143,16 @@ m:
|
|||||||
t.Assert(j.Get("a.1").Int(), 2)
|
t.Assert(j.Get("a.1").Int(), 2)
|
||||||
})
|
})
|
||||||
// YAML
|
// YAML
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
j, err := gjson.LoadYaml(data, true)
|
||||||
|
t.Assert(err, nil)
|
||||||
|
t.Assert(j.Get("n").String(), "123456789")
|
||||||
|
t.Assert(j.Get("m").Map(), g.Map{"k": "v"})
|
||||||
|
t.Assert(j.Get("m.k").String(), "v")
|
||||||
|
t.Assert(j.Get("a").Slice(), g.Slice{1, 2, 3})
|
||||||
|
t.Assert(j.Get("a.1").Int(), 2)
|
||||||
|
})
|
||||||
|
// YAML
|
||||||
gtest.C(t, func(t *gtest.T) {
|
gtest.C(t, func(t *gtest.T) {
|
||||||
path := "test.yaml"
|
path := "test.yaml"
|
||||||
gfile.PutBytes(path, data)
|
gfile.PutBytes(path, data)
|
||||||
@ -142,6 +174,11 @@ func Test_Load_YAML2(t *testing.T) {
|
|||||||
t.Assert(err, nil)
|
t.Assert(err, nil)
|
||||||
t.Assert(j.Get("i"), "123456789")
|
t.Assert(j.Get("i"), "123456789")
|
||||||
})
|
})
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
errData := []byte("i # 123456789")
|
||||||
|
_, err := gjson.LoadContentType("yaml", errData, true)
|
||||||
|
t.AssertNE(err, nil)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Load_TOML1(t *testing.T) {
|
func Test_Load_TOML1(t *testing.T) {
|
||||||
@ -163,6 +200,16 @@ n = 123456789
|
|||||||
t.Assert(j.Get("a.1").Int(), 2)
|
t.Assert(j.Get("a.1").Int(), 2)
|
||||||
})
|
})
|
||||||
// TOML
|
// TOML
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
j, err := gjson.LoadToml(data, true)
|
||||||
|
t.Assert(err, nil)
|
||||||
|
t.Assert(j.Get("n").String(), "123456789")
|
||||||
|
t.Assert(j.Get("m").Map(), g.Map{"k": "v"})
|
||||||
|
t.Assert(j.Get("m.k").String(), "v")
|
||||||
|
t.Assert(j.Get("a").Slice(), g.Slice{"1", "2", "3"})
|
||||||
|
t.Assert(j.Get("a.1").Int(), 2)
|
||||||
|
})
|
||||||
|
// TOML
|
||||||
gtest.C(t, func(t *gtest.T) {
|
gtest.C(t, func(t *gtest.T) {
|
||||||
path := "test.toml"
|
path := "test.toml"
|
||||||
gfile.PutBytes(path, data)
|
gfile.PutBytes(path, data)
|
||||||
@ -184,6 +231,11 @@ func Test_Load_TOML2(t *testing.T) {
|
|||||||
t.Assert(err, nil)
|
t.Assert(err, nil)
|
||||||
t.Assert(j.Get("i"), "123456789")
|
t.Assert(j.Get("i"), "123456789")
|
||||||
})
|
})
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
errData := []byte("i : 123456789")
|
||||||
|
_, err := gjson.LoadContentType("toml", errData, true)
|
||||||
|
t.AssertNE(err, nil)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Load_Basic(t *testing.T) {
|
func Test_Load_Basic(t *testing.T) {
|
||||||
@ -245,6 +297,26 @@ enable=true
|
|||||||
gtest.Fatal(err)
|
gtest.Fatal(err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
j, err := gjson.LoadIni(data, true)
|
||||||
|
if err != nil {
|
||||||
|
gtest.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Assert(j.Get("addr.ip").String(), "127.0.0.1")
|
||||||
|
t.Assert(j.Get("addr.port").String(), "9001")
|
||||||
|
t.Assert(j.Get("addr.enable").String(), "true")
|
||||||
|
t.Assert(j.Get("DBINFO.type").String(), "mysql")
|
||||||
|
t.Assert(j.Get("DBINFO.user").String(), "root")
|
||||||
|
t.Assert(j.Get("DBINFO.password").String(), "password")
|
||||||
|
})
|
||||||
|
|
||||||
|
gtest.C(t, func(t *gtest.T) {
|
||||||
|
errData := []byte("i : 123456789")
|
||||||
|
_, err := gjson.LoadContentType("ini", errData, true)
|
||||||
|
t.AssertNE(err, nil)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Load_YamlWithV3(t *testing.T) {
|
func Test_Load_YamlWithV3(t *testing.T) {
|
||||||
|
@ -197,7 +197,7 @@ func Test_Struct1(t *testing.T) {
|
|||||||
}]
|
}]
|
||||||
}`
|
}`
|
||||||
data := new(UserCollectionAddReq)
|
data := new(UserCollectionAddReq)
|
||||||
j, err := gjson.LoadJson(jsonContent)
|
j, err := gjson.LoadJson(jsonContent, true)
|
||||||
t.Assert(err, nil)
|
t.Assert(err, nil)
|
||||||
err = j.Scan(data)
|
err = j.Scan(data)
|
||||||
t.Assert(err, nil)
|
t.Assert(err, nil)
|
||||||
|
Loading…
Reference in New Issue
Block a user