2020-03-06 01:38:02 +00:00
|
|
|
package utils
|
|
|
|
|
|
|
|
import (
|
2020-12-03 05:23:52 +00:00
|
|
|
"crypto/tls"
|
2020-03-06 01:38:02 +00:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
2020-05-04 19:39:25 +00:00
|
|
|
"github.com/stretchr/testify/require"
|
2020-03-06 01:38:02 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestShouldSplitIntoEvenStringsOfFour(t *testing.T) {
|
2020-05-02 16:20:40 +00:00
|
|
|
input := testStringInput
|
2020-03-06 01:38:02 +00:00
|
|
|
arrayOfStrings := SliceString(input, 4)
|
|
|
|
assert.Equal(t, len(arrayOfStrings), 3)
|
|
|
|
assert.Equal(t, "abcd", arrayOfStrings[0])
|
|
|
|
assert.Equal(t, "efgh", arrayOfStrings[1])
|
|
|
|
assert.Equal(t, "ijkl", arrayOfStrings[2])
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestShouldSplitIntoEvenStringsOfOne(t *testing.T) {
|
2020-05-02 16:20:40 +00:00
|
|
|
input := testStringInput
|
2020-03-06 01:38:02 +00:00
|
|
|
arrayOfStrings := SliceString(input, 1)
|
|
|
|
assert.Equal(t, 12, len(arrayOfStrings))
|
|
|
|
assert.Equal(t, "a", arrayOfStrings[0])
|
|
|
|
assert.Equal(t, "b", arrayOfStrings[1])
|
|
|
|
assert.Equal(t, "c", arrayOfStrings[2])
|
|
|
|
assert.Equal(t, "d", arrayOfStrings[3])
|
|
|
|
assert.Equal(t, "l", arrayOfStrings[11])
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestShouldSplitIntoUnevenStringsOfFour(t *testing.T) {
|
2020-05-02 16:20:40 +00:00
|
|
|
input := testStringInput + "m"
|
2020-03-06 01:38:02 +00:00
|
|
|
arrayOfStrings := SliceString(input, 4)
|
|
|
|
assert.Equal(t, len(arrayOfStrings), 4)
|
|
|
|
assert.Equal(t, "abcd", arrayOfStrings[0])
|
|
|
|
assert.Equal(t, "efgh", arrayOfStrings[1])
|
|
|
|
assert.Equal(t, "ijkl", arrayOfStrings[2])
|
|
|
|
assert.Equal(t, "m", arrayOfStrings[3])
|
|
|
|
}
|
2020-05-04 19:39:25 +00:00
|
|
|
|
|
|
|
func TestShouldFindSliceDifferencesDelta(t *testing.T) {
|
|
|
|
before := []string{"abc", "onetwothree"}
|
|
|
|
after := []string{"abc", "xyz"}
|
|
|
|
added, removed := StringSlicesDelta(before, after)
|
|
|
|
require.Len(t, added, 1)
|
|
|
|
require.Len(t, removed, 1)
|
|
|
|
assert.Equal(t, "onetwothree", removed[0])
|
|
|
|
assert.Equal(t, "xyz", added[0])
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestShouldNotFindSliceDifferencesDelta(t *testing.T) {
|
|
|
|
before := []string{"abc", "onetwothree"}
|
|
|
|
after := []string{"abc", "onetwothree"}
|
|
|
|
added, removed := StringSlicesDelta(before, after)
|
|
|
|
require.Len(t, added, 0)
|
|
|
|
require.Len(t, removed, 0)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestShouldFindSliceDifferences(t *testing.T) {
|
|
|
|
a := []string{"abc", "onetwothree"}
|
|
|
|
b := []string{"abc", "xyz"}
|
|
|
|
diff := IsStringSlicesDifferent(a, b)
|
|
|
|
assert.True(t, diff)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestShouldNotFindSliceDifferences(t *testing.T) {
|
|
|
|
a := []string{"abc", "onetwothree"}
|
|
|
|
b := []string{"abc", "onetwothree"}
|
|
|
|
diff := IsStringSlicesDifferent(a, b)
|
|
|
|
assert.False(t, diff)
|
|
|
|
}
|
2020-12-03 05:23:52 +00:00
|
|
|
|
|
|
|
func TestShouldReturnCorrectTLSVersions(t *testing.T) {
|
|
|
|
tls13 := uint16(tls.VersionTLS13)
|
|
|
|
tls12 := uint16(tls.VersionTLS12)
|
|
|
|
tls11 := uint16(tls.VersionTLS11)
|
|
|
|
tls10 := uint16(tls.VersionTLS10)
|
|
|
|
|
|
|
|
version, err := TLSStringToTLSConfigVersion(TLS13)
|
|
|
|
assert.Equal(t, tls13, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion("TLS" + TLS13)
|
|
|
|
assert.Equal(t, tls13, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion(TLS12)
|
|
|
|
assert.Equal(t, tls12, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion("TLS" + TLS12)
|
|
|
|
assert.Equal(t, tls12, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion(TLS11)
|
|
|
|
assert.Equal(t, tls11, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion("TLS" + TLS11)
|
|
|
|
assert.Equal(t, tls11, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion(TLS10)
|
|
|
|
assert.Equal(t, tls10, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion("TLS" + TLS10)
|
|
|
|
assert.Equal(t, tls10, version)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestShouldReturnZeroAndErrorOnInvalidTLSVersions(t *testing.T) {
|
|
|
|
version, err := TLSStringToTLSConfigVersion("TLS1.4")
|
|
|
|
assert.Error(t, err)
|
|
|
|
assert.Equal(t, uint16(0), version)
|
|
|
|
assert.EqualError(t, err, "supplied TLS version isn't supported")
|
|
|
|
|
|
|
|
version, err = TLSStringToTLSConfigVersion("SSL3.0")
|
|
|
|
assert.Error(t, err)
|
|
|
|
assert.Equal(t, uint16(0), version)
|
|
|
|
assert.EqualError(t, err, "supplied TLS version isn't supported")
|
|
|
|
}
|