mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 18:50:54 +00:00
added tests config/json_test that test missing key usecases. created a template function to fetch AppConfig values
This commit is contained in:
parent
61008fe75c
commit
a673a85d4a
@ -100,4 +100,28 @@ func TestJson(t *testing.T) {
|
|||||||
t.Fatal("get host err")
|
t.Fatal("get host err")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if _, err := jsonconf.Int("unknown"); err == nil {
|
||||||
|
t.Error("unknown keys should return an error when expecting an Int")
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := jsonconf.Int64("unknown"); err == nil {
|
||||||
|
t.Error("unknown keys should return an error when expecting an Int64")
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := jsonconf.Float("unknown"); err == nil {
|
||||||
|
t.Error("unknown keys should return an error when expecting a Float")
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := jsonconf.DIY("unknown"); err == nil {
|
||||||
|
t.Error("unknown keys should return an error when expecting an interface{}")
|
||||||
|
}
|
||||||
|
|
||||||
|
if val := jsonconf.String("unknown"); val != "" {
|
||||||
|
t.Error("unknown keys should return an empty string when expecting a String")
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := jsonconf.Bool("unknown"); err == nil {
|
||||||
|
t.Error("unknown keys should return an error when expecting a Bool")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,7 @@ func init() {
|
|||||||
beegoTplFuncMap["renderform"] = RenderForm
|
beegoTplFuncMap["renderform"] = RenderForm
|
||||||
beegoTplFuncMap["assets_js"] = AssetsJs
|
beegoTplFuncMap["assets_js"] = AssetsJs
|
||||||
beegoTplFuncMap["assets_css"] = AssetsCss
|
beegoTplFuncMap["assets_css"] = AssetsCss
|
||||||
|
beegoTplFuncMap["config"] = Config
|
||||||
|
|
||||||
// go1.2 added template funcs
|
// go1.2 added template funcs
|
||||||
// Comparisons
|
// Comparisons
|
||||||
|
@ -131,6 +131,43 @@ func Compare(a, b interface{}) (equal bool) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Config(returnType, key string, defaultVal interface{}) (value interface{}, err error) {
|
||||||
|
switch returnType {
|
||||||
|
case "String":
|
||||||
|
value = AppConfig.String(key)
|
||||||
|
case "Bool":
|
||||||
|
value, err = AppConfig.Bool(key)
|
||||||
|
case "Int":
|
||||||
|
value, err = AppConfig.Int(key)
|
||||||
|
case "Int64":
|
||||||
|
value, err = AppConfig.Int64(key)
|
||||||
|
case "Float":
|
||||||
|
value, err = AppConfig.Float(key)
|
||||||
|
case "DIY":
|
||||||
|
value, err = AppConfig.DIY(key)
|
||||||
|
default:
|
||||||
|
err = errors.New("Config keys must be of type String, Bool, Int, Int64, Float, or DIY!")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
if reflect.TypeOf(returnType) != reflect.TypeOf(defaultVal) {
|
||||||
|
err = errors.New("defaultVal type does not match returnType!")
|
||||||
|
} else {
|
||||||
|
value, err = defaultVal, nil
|
||||||
|
}
|
||||||
|
} else if reflect.TypeOf(value).Kind() == reflect.String {
|
||||||
|
if value == "" {
|
||||||
|
if reflect.TypeOf(defaultVal).Kind() != reflect.String {
|
||||||
|
err = errors.New("defaultVal type must be a String if the returnType is a String")
|
||||||
|
} else {
|
||||||
|
value = defaultVal.(string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Convert string to template.HTML type.
|
// Convert string to template.HTML type.
|
||||||
func Str2html(raw string) template.HTML {
|
func Str2html(raw string) template.HTML {
|
||||||
return template.HTML(raw)
|
return template.HTML(raw)
|
||||||
|
Loading…
Reference in New Issue
Block a user