github.com/devcamcar/cli@v0.0.0-20181107134215-706a05759d18/objects/context/context_test.go (about) 1 package context 2 3 import ( 4 "testing" 5 ) 6 7 func TestValidateContextName(t *testing.T) { 8 var testsCases = []struct { 9 name string 10 expectedErr string 11 }{ 12 {name: "local", expectedErr: ""}, 13 {name: "Local", expectedErr: ""}, 14 {name: "local-context", expectedErr: ""}, 15 {name: "local_context", expectedErr: ""}, 16 {name: "local1", expectedErr: ""}, 17 {name: "local-context-1", expectedErr: ""}, 18 {name: "../local", expectedErr: "Please enter a context name with only Alphanumeric, _, or -"}, 19 {name: "local?context", expectedErr: "Please enter a context name with only Alphanumeric, _, or -"}, 20 {name: "context>?", expectedErr: "Please enter a context name with only Alphanumeric, _, or -"}, 21 } 22 for _, tc := range testsCases { 23 t.Run(tc.name, func(t *testing.T) { 24 errString := "" 25 if err := ValidateContextName(tc.name); err != nil { 26 errString = err.Error() 27 } 28 if tc.expectedErr != errString { 29 t.Fatalf("Expected %s but got %s", tc.expectedErr, errString) 30 } 31 }) 32 } 33 } 34 35 func TestValidateAPIURL(t *testing.T) { 36 var testCases = []struct { 37 apiURL string 38 expectedErr string 39 }{ 40 {apiURL: "http://test.com", expectedErr: ""}, 41 {apiURL: "http://test", expectedErr: ""}, 42 {apiURL: "test.com", expectedErr: "Invalid Fn API URL: does not contain ://"}, 43 {apiURL: "http:/test.com", expectedErr: "Invalid Fn API URL: does not contain ://"}, 44 {apiURL: "://testcom", expectedErr: "Invalid Fn API URL: parse ://testcom: missing protocol scheme"}, 45 } 46 for _, tc := range testCases { 47 t.Run(tc.apiURL, func(t *testing.T) { 48 errString := "" 49 if err := ValidateAPIURL(tc.apiURL); err != nil { 50 errString = err.Error() 51 } 52 if tc.expectedErr != errString { 53 t.Fatalf("Expected %s but got %s", tc.expectedErr, errString) 54 } 55 }) 56 } 57 }