2014-09-10 17:30:03 +00:00
|
|
|
package helpers
|
|
|
|
|
|
|
|
import (
|
2015-01-20 16:44:35 +00:00
|
|
|
"github.com/stretchr/testify/assert"
|
2015-01-07 20:40:35 +00:00
|
|
|
"strings"
|
2014-09-10 17:30:03 +00:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2015-01-20 16:44:35 +00:00
|
|
|
func TestGuessType(t *testing.T) {
|
|
|
|
for i, this := range []struct {
|
|
|
|
in string
|
|
|
|
expect string
|
|
|
|
}{
|
|
|
|
{"md", "markdown"},
|
|
|
|
{"markdown", "markdown"},
|
|
|
|
{"mdown", "markdown"},
|
|
|
|
{"rst", "rst"},
|
|
|
|
{"html", "html"},
|
|
|
|
{"htm", "html"},
|
|
|
|
{"excel", "unknown"},
|
|
|
|
} {
|
|
|
|
result := GuessType(this.in)
|
|
|
|
if result != this.expect {
|
|
|
|
t.Errorf("[%d] GuessType guessed wrong, expected %s, got %s", i, this.expect, result)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestBytesToReader(t *testing.T) {
|
|
|
|
asBytes := ReaderToBytes(strings.NewReader("Hello World!"))
|
|
|
|
asReader := BytesToReader(asBytes)
|
|
|
|
assert.Equal(t, []byte("Hello World!"), asBytes)
|
|
|
|
assert.Equal(t, asBytes, ReaderToBytes(asReader))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestStringToReader(t *testing.T) {
|
|
|
|
asString := ReaderToString(strings.NewReader("Hello World!"))
|
|
|
|
assert.Equal(t, "Hello World!", asString)
|
|
|
|
asReader := StringToReader(asString)
|
|
|
|
assert.Equal(t, asString, ReaderToString(asReader))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestFindAvailablePort(t *testing.T) {
|
|
|
|
addr, err := FindAvailablePort()
|
|
|
|
assert.Nil(t, err)
|
|
|
|
assert.NotNil(t, addr)
|
|
|
|
assert.True(t, addr.Port > 0)
|
|
|
|
}
|
|
|
|
|
2015-01-07 20:40:35 +00:00
|
|
|
func TestInStringArrayCaseSensitive(t *testing.T) {
|
2014-09-10 17:30:03 +00:00
|
|
|
type test struct {
|
2015-01-07 20:40:35 +00:00
|
|
|
input string
|
|
|
|
expected bool
|
|
|
|
}
|
|
|
|
array := []string{
|
|
|
|
"Albert",
|
|
|
|
"Joe",
|
|
|
|
"Francis",
|
2014-09-10 17:30:03 +00:00
|
|
|
}
|
|
|
|
data := []test{
|
2015-01-07 20:40:35 +00:00
|
|
|
{"Albert", true},
|
|
|
|
{"ALBERT", false},
|
|
|
|
}
|
|
|
|
for _, in := range data {
|
|
|
|
output := InStringArray(array, in.input)
|
|
|
|
if output != in.expected {
|
|
|
|
t.Errorf("TestInStringArrayCase failed. Expected %t. Got %t.", in.expected, output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSliceToLowerStable(t *testing.T) {
|
|
|
|
input := []string{
|
|
|
|
"New York",
|
|
|
|
"BARCELONA",
|
|
|
|
"COffEE",
|
|
|
|
"FLOWer",
|
|
|
|
"CanDY",
|
|
|
|
}
|
|
|
|
|
|
|
|
output := SliceToLower(input)
|
|
|
|
|
|
|
|
for i, e := range output {
|
|
|
|
if e != strings.ToLower(input[i]) {
|
|
|
|
t.Errorf("Expected %s. Found %s.", strings.ToLower(input[i]), e)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSliceToLowerNil(t *testing.T) {
|
|
|
|
var input []string
|
|
|
|
|
|
|
|
output := SliceToLower(input)
|
|
|
|
|
|
|
|
if output != nil {
|
|
|
|
t.Errorf("Expected nil to be returned. Had %s.", output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSliceToLowerNonDestructive(t *testing.T) {
|
|
|
|
input := []string{
|
|
|
|
"New York",
|
|
|
|
"BARCELONA",
|
|
|
|
"COffEE",
|
|
|
|
"FLOWer",
|
|
|
|
"CanDY",
|
|
|
|
}
|
|
|
|
|
|
|
|
// This assignment actually copies the content
|
|
|
|
// of input into a new object.
|
|
|
|
// Otherwise, the test would not make sense...
|
|
|
|
input_copy := input
|
|
|
|
|
|
|
|
SliceToLower(input)
|
|
|
|
|
|
|
|
for i, e := range input {
|
|
|
|
if e != input_copy[i] {
|
|
|
|
t.Errorf("TestSliceToLowerNonDestructive failed. Expected element #%d of input slice to be %s. Found %s.", i, input_copy[i], input[i])
|
2014-09-10 17:30:03 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-01-07 20:40:35 +00:00
|
|
|
|
|
|
|
// Just make sure there is no error for empty-like strings
|
|
|
|
func TestMd5StringEmpty(t *testing.T) {
|
|
|
|
inputs := []string{"", " ", " "}
|
|
|
|
|
|
|
|
for _, in := range inputs {
|
|
|
|
Md5String(in)
|
|
|
|
}
|
|
|
|
}
|