ref: be4fe8f8afb09e8fd0d50f000d52619d3824516d
parent: 04817c7b83e4b555ee22e21dadc0b8ddaf6423a0
author: bep <bjorn.erik.pedersen@gmail.com>
date: Sun Mar 22 09:52:35 EDT 2015
Polish Substr and Split tests
--- a/tpl/template_test.go
+++ b/tpl/template_test.go
@@ -278,59 +278,64 @@
func TestSubstr(t *testing.T) { for i, this := range []struct {- v1 interface{}- v2 int
- v3 int
- expect string
+ v1 interface{}+ v2 int
+ v3 int
+ expect interface{} }{ {"abc", 1, 2, "b"}, {"abc", 1, 3, "bc"}, {"abc", 0, 1, "a"},+ {123, 1, 3, "23"},+ {tstNoStringer{}, 0, 1, false}, } {result, err := Substr(this.v1, this.v2, this.v3)
- if err != nil {- t.Errorf("[%d] failed: %s", i, err)- continue
+ if b, ok := this.expect.(bool); ok && !b {+ if err == nil {+ t.Errorf("[%d] Substr didn't return an expected error", i)+ }
+ } else {+ if err != nil {+ t.Errorf("[%d] failed: %s", i, err)+ continue
+ }
+ if !reflect.DeepEqual(result, this.expect) {+ t.Errorf("[%d] Got %s but expected %s", i, result, this.expect)+ }
}
-
- if result != this.expect {- t.Errorf("[%d] Got %v but expected %v", i, result, this.expect)- }
}
-
- _, err := Substr(tstNoStringer{}, 0, 1)- if err == nil {- t.Error("Expected error for non-string-convertable variable")- }
}
func TestSplit(t *testing.T) { for i, this := range []struct {- v1 interface{}- v2 string
- expect []string
+ v1 interface{}+ v2 string
+ expect interface{} }{ {"a, b", ", ", []string{"a", "b"}}, {"a & b & c", " & ", []string{"a", "b", "c"}}, {"http://exmaple.com", "http://", []string{"", "exmaple.com"}},+ {123, "2", []string{"1", "3"}},+ {tstNoStringer{}, ",", false}, } {result, err := Split(this.v1, this.v2)
- if err != nil {- t.Errorf("[%d] failed: %s", i, err)- continue
+ if b, ok := this.expect.(bool); ok && !b {+ if err == nil {+ t.Errorf("[%d] Split didn't return an expected error", i)+ }
+ } else {+ if err != nil {+ t.Errorf("[%d] failed: %s", i, err)+ continue
+ }
+ if !reflect.DeepEqual(result, this.expect) {+ t.Errorf("[%d] Got %s but expected %s", i, result, this.expect)+ }
}
-
- if !reflect.DeepEqual(result, this.expect) {- t.Errorf("[%d] Got %s but expected %s", i, result, this.expect)- }
}
- _, err := Split(tstNoStringer{}, ",")- if err == nil {- t.Error("Expected error for non-string-convertable variable")- }
}
func TestIntersect(t *testing.T) {--
⑨