tpl: Add tests for word and rune counting

This commit is contained in:
Bjørn Erik Pedersen 2016-02-07 14:51:06 +01:00
parent ec49dbb8f5
commit 0888ddd01f
2 changed files with 28 additions and 2 deletions

View file

@ -1445,7 +1445,7 @@ func countWords(content interface{}) (int, error) {
conv, err := cast.ToStringE(content)
if err != nil {
return 0, errors.New("Failed to convert content to string: " + err.Error())
return 0, fmt.Errorf("Failed to convert content to string: %s", err.Error())
}
counter := 0
@ -1466,7 +1466,7 @@ func countRunes(content interface{}) (int, error) {
conv, err := cast.ToStringE(content)
if err != nil {
return 0, errors.New("Failed to convert content to string: " + err.Error())
return 0, fmt.Errorf("Failed to convert content to string: %s", err.Error())
}
counter := 0

View file

@ -1559,6 +1559,32 @@ func TestInflect(t *testing.T) {
}
}
func TestCounterFuncs(t *testing.T) {
for i, this := range []struct {
countFunc func(i interface{}) (int, error)
in string
expected int
}{
{countWords, "Do Be Do Be Do", 5},
{countWords, "旁边", 2},
{countRunes, "旁边", 2},
} {
result, err := this.countFunc(this.in)
if err != nil {
t.Errorf("[%d] Unexpected counter error: %s", i, err)
} else if result != this.expected {
t.Errorf("[%d] Count method error, got %v expected %v", i, result, this.expected)
}
_, err = this.countFunc(t)
if err == nil {
t.Errorf("[%d] Expected Count error", i)
}
}
}
func TestReplace(t *testing.T) {
v, _ := replace("aab", "a", "b")
assert.Equal(t, "bbb", v)