package main import ( "sort" "testing" "text/template" ) func TestTemplateNameListSort(t *testing.T) { t.Parallel() templs := templateNameList{ "bob.tpl", "all.tpl", "struct.tpl", "ttt.tpl", } expected := []string{"bob.tpl", "all.tpl", "struct.tpl", "ttt.tpl"} for i, v := range templs { if v != expected[i] { t.Errorf("Order mismatch, expected: %s, got: %s", expected[i], v) } } expected = []string{"struct.tpl", "all.tpl", "bob.tpl", "ttt.tpl"} sort.Sort(templs) for i, v := range templs { if v != expected[i] { t.Errorf("Order mismatch, expected: %s, got: %s", expected[i], v) } } } func TestTemplateList_Templates(t *testing.T) { t.Parallel() tpl := template.New("") tpl.New("wat.tpl").Parse("hello") tpl.New("que.tpl").Parse("there") tpl.New("not").Parse("hello") tplList := templateList{tpl} foundWat, foundQue, foundNot := false, false, false for _, n := range tplList.Templates() { switch n { case "wat.tpl": foundWat = true case "que.tpl": foundQue = true case "not": foundNot = true } } if !foundWat { t.Error("want wat") } if !foundQue { t.Error("want que") } if foundNot { t.Error("don't want not") } }