Files
ezbookkeeping/pkg/utils/strings_test.go
T
2023-08-13 17:08:36 +08:00

146 lines
3.8 KiB
Go

package utils
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
func TestSubString(t *testing.T) {
str := "foobar"
expectedValue := "f"
actualValue := SubString(str, 0, 1)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "fo"
actualValue = SubString(str, 0, 2)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "oba"
actualValue = SubString(str, 2, 3)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "foobar"
actualValue = SubString(str, 0, 6)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "ba"
actualValue = SubString(str, -3, 2)
assert.Equal(t, expectedValue, actualValue)
}
func TestSubString_EmptyStr(t *testing.T) {
str := ""
expectedValue := ""
actualValue := SubString(str, 0, 1)
assert.Equal(t, expectedValue, actualValue)
expectedValue = ""
actualValue = SubString(str, 0, 2)
assert.Equal(t, expectedValue, actualValue)
expectedValue = ""
actualValue = SubString(str, 2, 3)
assert.Equal(t, expectedValue, actualValue)
}
func TestSubString_OverBoundary(t *testing.T) {
str := "foobar"
expectedValue := ""
actualValue := SubString(str, 100, 1)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "foobar"
actualValue = SubString(str, 0, 100)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "obar"
actualValue = SubString(str, 2, 100)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "bar"
actualValue = SubString(str, -3, 100)
assert.Equal(t, expectedValue, actualValue)
expectedValue = "foobar"
actualValue = SubString(str, -100, 100)
assert.Equal(t, expectedValue, actualValue)
expectedValue = ""
actualValue = SubString(str, 0, -100)
assert.Equal(t, expectedValue, actualValue)
}
func TestGetFirstLowerCharString(t *testing.T) {
expectedValue := "fooBar"
actualValue := GetFirstLowerCharString("fooBar")
assert.Equal(t, expectedValue, actualValue)
expectedValue = "fooBar"
actualValue = GetFirstLowerCharString("FooBar")
assert.Equal(t, expectedValue, actualValue)
}
func TestGetRandomString(t *testing.T) {
actualValue, err := GetRandomString(10)
assert.Equal(t, nil, err)
assert.Len(t, actualValue, 10)
}
func TestGetRandomNumberOrLetter(t *testing.T) {
actualValue, err := GetRandomNumberOrLetter(10)
assert.Equal(t, nil, err)
assert.Len(t, actualValue, 10)
}
func TestGetRandomNumberOrLowercaseLetter(t *testing.T) {
actualValue, err := GetRandomNumberOrLowercaseLetter(10)
assert.Equal(t, nil, err)
assert.Len(t, actualValue, 10)
}
func TestMD5Encode(t *testing.T) {
str := "foobar"
expectedValue := "3858f62230ac3c915f300c664312c63f"
actualData := MD5Encode([]byte(str))
actualValue := fmt.Sprintf("%x", actualData)
assert.Equal(t, expectedValue, actualValue)
str = ""
expectedValue = "d41d8cd98f00b204e9800998ecf8427e"
actualData = MD5Encode([]byte(str))
actualValue = fmt.Sprintf("%x", actualData)
assert.Equal(t, expectedValue, actualValue)
}
func TestMD5EncodeToString(t *testing.T) {
str := "foobar"
expectedValue := "3858f62230ac3c915f300c664312c63f"
actualValue := MD5EncodeToString([]byte(str))
assert.Equal(t, expectedValue, actualValue)
str = ""
expectedValue = "d41d8cd98f00b204e9800998ecf8427e"
actualValue = MD5EncodeToString([]byte(str))
assert.Equal(t, expectedValue, actualValue)
}
func TestEncodePassword(t *testing.T) {
password := "foobar"
salt := "salt"
expectedValue := "QrpKShMygoe4Ym4ibnA7cNDzCcSonBkgFl69IrtnDmp3oROft3/Td/DNXjsweosa"
actualValue := EncodePassword(password, salt)
assert.Equal(t, expectedValue, actualValue)
}
func TestEncryptSecretAndDecryptSecret(t *testing.T) {
str := "foo"
key := "bar"
expectedValue := str
encryptedStr, err := EncryptSecret(str, key)
actualValue, err := DecryptSecret(encryptedStr, key)
assert.Equal(t, nil, err)
assert.Equal(t, expectedValue, actualValue)
}