package utils import "testing" type canBeEdited struct { file string result bool } var canBeEditedPairs = []canBeEdited{ {"file.markdown", true}, {"file.md", true}, {"file.json", true}, {"file.toml", true}, {"file.yaml", true}, {"file.css", true}, {"file.sass", true}, {"file.scss", true}, {"file.js", true}, {"file.html", true}, {"file.git", false}, {"file.log", false}, {"file.sh", false}, {"file.png", false}, {"file.jpg", false}, } func TestCanBeEdited(t *testing.T) { for _, pair := range canBeEditedPairs { v := CanBeEdited(pair.file) if v != pair.result { t.Error( "For", pair.file, "expected", pair.result, "got", v, ) } } } func TestCopyFile(t *testing.T) { err := CopyFile("test_data/file_to_copy.txt", "test_data/copied_file.txt") if err != nil { t.Error("Can't copy the file.") } } type testDefinedData struct { f1 string f2 bool f3 int f4 func() } type testDefined struct { data interface{} field string result bool } var testDefinedCases = []testDefined{ {testDefinedData{}, "f1", true}, {testDefinedData{}, "f2", true}, {testDefinedData{}, "f3", true}, {testDefinedData{}, "f4", true}, {testDefinedData{}, "f5", false}, {[]string{}, "", false}, {map[string]int{"oi": 4}, "", false}, {"asa", "", false}, {"int", "", false}, } func TestDefined(t *testing.T) { for _, pair := range testDefinedCases { v := Defined(pair.data, pair.field) if v != pair.result { t.Error( "For", pair.data, "expected", pair.result, "got", v, ) } } } type testSplitCapitalize struct { name string result string } var testSplitCapitalizeCases = []testSplitCapitalize{ {"loremIpsum", "Lorem ipsum"}, {"LoremIpsum", "Lorem ipsum"}, {"loremipsum", "Loremipsum"}, {"YouTube", "YouTube"}, {"GitHub", "GitHub"}, {"GooglePlus", "Google Plus"}, {"Facebook", "Facebook"}, } func TestSplitCapitalize(t *testing.T) { for _, pair := range testSplitCapitalizeCases { v := SplitCapitalize(pair.name) if v != pair.result { t.Error( "For", pair.name, "expected", pair.result, "got", v, ) } } }