diff --git a/realis.go b/realis.go index af7fb34..20614f1 100644 --- a/realis.go +++ b/realis.go @@ -349,7 +349,7 @@ func NewRealisClient(options ...ClientOption) (Realis, error) { return nil, errors.New("incomplete Options -- url, cluster.json, or Zookeeper address required") } - url, err = validateAndPopulateAuroraURL(url) + url, err = validateAuroraURL(url) if err != nil { return nil, errors.Wrap(err, "invalid Aurora url") } diff --git a/realis_e2e_test.go b/realis_e2e_test.go index 606f2b3..86be02c 100644 --- a/realis_e2e_test.go +++ b/realis_e2e_test.go @@ -903,7 +903,3 @@ func TestAuroraJob_UpdateSlaPolicy(t *testing.T) { }) } } - -func TestAuroraURLValidator(t *testing.T) { - -} diff --git a/util.go b/util.go index 372d995..79a6bae 100644 --- a/util.go +++ b/util.go @@ -40,7 +40,7 @@ func init() { } } -func validateAndPopulateAuroraURL(urlStr string) (string, error) { +func validateAuroraURL(urlStr string) (string, error) { // If no protocol defined, assume http if !strings.Contains(urlStr, "://") { diff --git a/util_test.go b/util_test.go new file mode 100644 index 0000000..ce4e7c2 --- /dev/null +++ b/util_test.go @@ -0,0 +1,59 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package realis + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestAuroraURLValidator(t *testing.T) { + t.Run("badURL", func(t *testing.T) { + url, err := validateAuroraURL("http://badurl.com/badpath") + assert.Empty(t, url) + assert.Error(t, err) + }) + + t.Run("URLHttp", func(t *testing.T) { + url, err := validateAuroraURL("http://goodurl.com:8081/api") + assert.Equal(t, "http://goodurl.com:8081/api", url) + assert.NoError(t, err) + }) + + t.Run("URLHttps", func(t *testing.T) { + url, err := validateAuroraURL("https://goodurl.com:8081/api") + assert.Equal(t, "https://goodurl.com:8081/api", url) + assert.NoError(t, err) + }) + + t.Run("URLNoPath", func(t *testing.T) { + url, err := validateAuroraURL("http://goodurl.com:8081") + assert.Equal(t, "http://goodurl.com:8081/api", url) + assert.NoError(t, err) + }) + + t.Run("URLNoProtocol", func(t *testing.T) { + url, err := validateAuroraURL("goodurl.com:8081/api") + assert.Equal(t, "http://goodurl.com:8081/api", url) + assert.NoError(t, err) + }) + + t.Run("URLNoProtocolNoPathNoPort", func(t *testing.T) { + url, err := validateAuroraURL("goodurl.com") + assert.Equal(t, "http://goodurl.com:8081/api", url) + assert.NoError(t, err) + }) +}