github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/selection/names_test.go (about) 1 package selection 2 3 import ( 4 "testing" 5 ) 6 7 // TestEnsureNameValid tests that EnsureNameValid behaves as expected for a 8 // variety of test cases. 9 func TestEnsureNameValid(t *testing.T) { 10 // Set up test cases. 11 testCases := []struct { 12 name string 13 expectFailure bool 14 }{ 15 {"", false}, 16 {"a", false}, 17 {"abc93ba1udah", false}, 18 {"Ac93ba1udah", false}, 19 {"Äbc93ba1udah", false}, 20 {"_", true}, 21 {"a9B_1", true}, 22 {"a b", true}, 23 {" ", true}, 24 {"-ab4", true}, 25 {"a-b", false}, 26 {"d9d02c4d-6328-4cb2-95ac-1eedde979ee0", true}, 27 {"D9D02C4D-6328-4CB2-95AC-1EEDDE979EE0", true}, 28 {"defaults", true}, 29 } 30 31 // Process test cases. 32 for _, testCase := range testCases { 33 err := EnsureNameValid(testCase.name) 34 if err != nil && !testCase.expectFailure { 35 t.Errorf("name (%s) failed validation unexpectedly: %v", testCase.name, err) 36 } else if err == nil && testCase.expectFailure { 37 t.Errorf("name (%s) passed validation unexpectedly", testCase.name) 38 } 39 } 40 }