comparison zs_test.go @ 18:ae3116ea938b draft

started migration to go templates
author zaitsev.serge
date Sat, 29 Aug 2015 16:46:05 +0000
parents 0214b1b5f5eb
children 802b96e67bae
comparison
equal deleted inserted replaced
17:0214b1b5f5eb 18:ae3116ea938b
7 "log" 7 "log"
8 "os" 8 "os"
9 "os/exec" 9 "os/exec"
10 "strings" 10 "strings"
11 "testing" 11 "testing"
12 "text/template"
12 ) 13 )
13 14
14 func TestSplit2(t *testing.T) { 15 func TestSplit2(t *testing.T) {
15 if a, b := split2("a:b", ":"); a != "a" || b != "b" { 16 if a, b := split2("a:b", ":"); a != "a" || b != "b" {
16 t.Fail() 17 t.Fail()
74 t.Error(v, body) 75 t.Error(v, body)
75 } 76 }
76 } 77 }
77 78
78 func TestRender(t *testing.T) { 79 func TestRender(t *testing.T) {
79 eval := func(a []string, vars Vars) (string, error) { 80 vars := map[string]string{"foo": "bar"}
80 return "hello", nil 81 funcs := template.FuncMap{
82 "greet": func(s ...string) string {
83 if len(s) == 0 {
84 return "hello"
85 } else {
86 return "hello " + strings.Join(s, " ")
87 }
88 },
81 } 89 }
82 vars := map[string]string{"foo": "bar"}
83 90
84 if s, err := render("plain text", vars, eval); err != nil || s != "plain text" { 91 if s, err := render("plain text", funcs, vars); err != nil || s != "plain text" {
85 t.Error() 92 t.Error(s, err)
86 } 93 }
87 if s, err := render("a {{greet}} text", vars, eval); err != nil || s != "a hello text" { 94 if s, err := render("a {{greet}} text", funcs, vars); err != nil || s != "a hello text" {
88 t.Error() 95 t.Error(s, err)
89 } 96 }
90 if s, err := render("{{greet}} x{{foo}}z", vars, eval); err != nil || s != "hello xbarz" { 97 if s, err := render("{{greet}} x{{foo}}z", funcs, vars); err != nil || s != "hello xbarz" {
91 t.Error() 98 t.Error(s, err)
92 } 99 }
93 // Test error case 100 // Test error case
94 if s, err := render("a {{greet text ", vars, eval); err == nil || len(s) != 0 { 101 if s, err := render("a {{greet text ", funcs, vars); err == nil || len(s) != 0 {
95 t.Error() 102 t.Error(s, err)
96 } 103 }
97 } 104 }
98 105
99 func TestEnv(t *testing.T) { 106 func TestEnv(t *testing.T) {
100 e := env(map[string]string{"foo": "bar", "baz": "hello world"}) 107 e := env(map[string]string{"foo": "bar", "baz": "hello world"})