2015-12-07 22:37:05 +00:00
|
|
|
package internal
|
|
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
|
|
func testGlobMatch(t *testing.T, pattern, subj string) {
|
|
|
|
if !Glob(pattern, subj) {
|
|
|
|
t.Errorf("%s should match %s", pattern, subj)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func testGlobNoMatch(t *testing.T, pattern, subj string) {
|
|
|
|
if Glob(pattern, subj) {
|
|
|
|
t.Errorf("%s should not match %s", pattern, subj)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestEmptyPattern(t *testing.T) {
|
|
|
|
testGlobMatch(t, "", "")
|
|
|
|
testGlobNoMatch(t, "", "test")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPatternWithoutGlobs(t *testing.T) {
|
|
|
|
testGlobMatch(t, "test", "test")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestGlob(t *testing.T) {
|
|
|
|
for _, pattern := range []string{
|
|
|
|
"*test", // Leading glob
|
|
|
|
"this*", // Trailing glob
|
|
|
|
"*is*a*", // Lots of globs
|
|
|
|
"**test**", // Double glob characters
|
|
|
|
"**is**a***test*", // Varying number of globs
|
|
|
|
} {
|
|
|
|
testGlobMatch(t, pattern, "this_is_a_test")
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, pattern := range []string{
|
|
|
|
"test*", // Implicit substring match should fail
|
|
|
|
"*is", // Partial match should fail
|
|
|
|
"*no*", // Globs without a match between them should fail
|
|
|
|
} {
|
|
|
|
testGlobNoMatch(t, pattern, "this_is_a_test")
|
|
|
|
}
|
|
|
|
}
|
2016-03-23 15:40:38 +00:00
|
|
|
|
|
|
|
type SnakeTest struct {
|
|
|
|
input string
|
|
|
|
output string
|
|
|
|
}
|
|
|
|
|
|
|
|
var tests = []SnakeTest{
|
|
|
|
{"a", "a"},
|
|
|
|
{"snake", "snake"},
|
|
|
|
{"A", "a"},
|
|
|
|
{"ID", "id"},
|
|
|
|
{"MOTD", "motd"},
|
|
|
|
{"Snake", "snake"},
|
|
|
|
{"SnakeTest", "snake_test"},
|
|
|
|
{"APIResponse", "api_response"},
|
|
|
|
{"SnakeID", "snake_id"},
|
|
|
|
{"SnakeIDGoogle", "snake_id_google"},
|
|
|
|
{"LinuxMOTD", "linux_motd"},
|
|
|
|
{"OMGWTFBBQ", "omgwtfbbq"},
|
|
|
|
{"omg_wtf_bbq", "omg_wtf_bbq"},
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSnakeCase(t *testing.T) {
|
|
|
|
for _, test := range tests {
|
|
|
|
if SnakeCase(test.input) != test.output {
|
|
|
|
t.Errorf(`SnakeCase("%s"), wanted "%s", got \%s"`, test.input, test.output, SnakeCase(test.input))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|