github.com/gogf/gf@v1.16.9/encoding/gtoml/gtoml_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 package gtoml_test 7 8 import ( 9 "testing" 10 11 "github.com/gogf/gf/encoding/gparser" 12 "github.com/gogf/gf/encoding/gtoml" 13 "github.com/gogf/gf/test/gtest" 14 ) 15 16 var tomlStr string = ` 17 # 模板引擎目录 18 viewpath = "/home/www/templates/" 19 # MySQL数据库配置 20 [redis] 21 disk = "127.0.0.1:6379,0" 22 cache = "127.0.0.1:6379,1" 23 ` 24 25 var tomlErr string = ` 26 # 模板引擎目录 27 viewpath = "/home/www/templates/" 28 # MySQL数据库配置 29 [redis] 30 dd = 11 31 [redis] 32 disk = "127.0.0.1:6379,0" 33 cache = "127.0.0.1:6379,1" 34 ` 35 36 func TestEncode(t *testing.T) { 37 gtest.C(t, func(t *gtest.T) { 38 m := make(map[string]string) 39 m["toml"] = tomlStr 40 res, err := gtoml.Encode(m) 41 if err != nil { 42 t.Errorf("encode failed. %v", err) 43 return 44 } 45 46 p, err := gparser.LoadContent(res) 47 if err != nil { 48 t.Errorf("parser failed. %v", err) 49 return 50 } 51 52 t.Assert(p.GetString("toml"), tomlStr) 53 }) 54 55 gtest.C(t, func(t *gtest.T) { 56 _, err := gtoml.Encode(tomlErr) 57 if err == nil { 58 t.Errorf("encode should be failed. %v", err) 59 return 60 } 61 }) 62 } 63 64 func TestDecode(t *testing.T) { 65 gtest.C(t, func(t *gtest.T) { 66 m := make(map[string]string) 67 m["toml"] = tomlStr 68 res, err := gtoml.Encode(m) 69 if err != nil { 70 t.Errorf("encode failed. %v", err) 71 return 72 } 73 74 decodeStr, err := gtoml.Decode(res) 75 if err != nil { 76 t.Errorf("decode failed. %v", err) 77 return 78 } 79 80 t.Assert(decodeStr.(map[string]interface{})["toml"], tomlStr) 81 82 decodeStr1 := make(map[string]interface{}) 83 err = gtoml.DecodeTo(res, &decodeStr1) 84 if err != nil { 85 t.Errorf("decodeTo failed. %v", err) 86 return 87 } 88 t.Assert(decodeStr1["toml"], tomlStr) 89 }) 90 91 gtest.C(t, func(t *gtest.T) { 92 _, err := gtoml.Decode([]byte(tomlErr)) 93 if err == nil { 94 t.Errorf("decode failed. %v", err) 95 return 96 } 97 98 decodeStr1 := make(map[string]interface{}) 99 err = gtoml.DecodeTo([]byte(tomlErr), &decodeStr1) 100 if err == nil { 101 t.Errorf("decodeTo failed. %v", err) 102 return 103 } 104 }) 105 } 106 107 func TestToJson(t *testing.T) { 108 gtest.C(t, func(t *gtest.T) { 109 m := make(map[string]string) 110 m["toml"] = tomlStr 111 res, err := gtoml.Encode(m) 112 if err != nil { 113 t.Errorf("encode failed. %v", err) 114 return 115 } 116 117 jsonToml, err := gtoml.ToJson(res) 118 if err != nil { 119 t.Errorf("ToJson failed. %v", err) 120 return 121 } 122 123 p, err := gparser.LoadContent(res) 124 if err != nil { 125 t.Errorf("parser failed. %v", err) 126 return 127 } 128 expectJson, err := p.ToJson() 129 if err != nil { 130 t.Errorf("parser ToJson failed. %v", err) 131 return 132 } 133 t.Assert(jsonToml, expectJson) 134 }) 135 136 gtest.C(t, func(t *gtest.T) { 137 _, err := gtoml.ToJson([]byte(tomlErr)) 138 if err == nil { 139 t.Errorf("ToJson failed. %v", err) 140 return 141 } 142 }) 143 }