Clean up the trim template func test
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 15 Feb 2016 23:47:14 +0000 (00:47 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 15 Feb 2016 23:47:14 +0000 (00:47 +0100)
tpl/template_funcs_test.go

index 5f8550c9c3d3cb84769bc24998de1a334772f0ea..c0107cd337c64f9d83d726ead1d01e063692de2b 100644 (file)
@@ -1639,14 +1639,33 @@ func TestReplace(t *testing.T) {
 }
 
 func TestTrim(t *testing.T) {
-       v, _ := trim("1234 my way 13", "123")
-       assert.Equal(t, "4 my way ", v)
-       v, _ = trim("   my way    ", " ")
-       assert.Equal(t, "my way", v)
-       v, _ = trim(1234, "14")
-       assert.Equal(t, "23", v)
-       _, e := trim(tstNoStringer{}, " ")
-       assert.NotNil(t, e, "tstNoStringer isn't trimmable")
+
+       for i, this := range []struct {
+               v1     interface{}
+               v2     string
+               expect interface{}
+       }{
+               {"1234 my way 13", "123 ", "4 my way"},
+               {"      my way  ", " ", "my way"},
+               {1234, "14", "23"},
+               {tstNoStringer{}, " ", false},
+       } {
+               result, err := trim(this.v1, this.v2)
+
+               if b, ok := this.expect.(bool); ok && !b {
+                       if err == nil {
+                               t.Errorf("[%d] trim 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)
+                       }
+               }
+       }
 }
 
 func TestDateFormat(t *testing.T) {