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  }