mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-21 02:04:26 +08:00
add unit test
This commit is contained in:
@@ -0,0 +1,101 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestInt32ToString(t *testing.T) {
|
||||||
|
expectedValue := "-123456789"
|
||||||
|
actualValue := Int32ToString(-123456789)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringToInt32(t *testing.T) {
|
||||||
|
expectedValue := -123456789
|
||||||
|
actualValue, err := StringToInt32("-123456789")
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringToInt32_InvalidNumber(t *testing.T) {
|
||||||
|
_, err := StringToInt32("")
|
||||||
|
assert.NotEqual(t, nil, err)
|
||||||
|
|
||||||
|
_, err = StringToInt32("null")
|
||||||
|
assert.NotEqual(t, nil, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringTryToInt32_InvalidNumber(t *testing.T) {
|
||||||
|
expectedValue := -1
|
||||||
|
actualValue := StringTryToInt32("", -1)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
actualValue = StringTryToInt32("null", -1)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInt64ToString(t *testing.T) {
|
||||||
|
expectedValue := "-123456789012345"
|
||||||
|
actualValue := Int64ToString(-123456789012345)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInt64ArrayToStringArray(t *testing.T) {
|
||||||
|
expectedValue := []string{"0", "1", "-123456789012345", "12345678", "1234567890123456"}
|
||||||
|
actualValue := Int64ArrayToStringArray([]int64{0, 1, -123456789012345, 12345678, 1234567890123456})
|
||||||
|
assert.EqualValues(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringToInt64(t *testing.T) {
|
||||||
|
expectedValue := int64(-123456789012345)
|
||||||
|
actualValue, err := StringToInt64("-123456789012345")
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringToInt64_InvalidNumber(t *testing.T) {
|
||||||
|
_, err := StringToInt64("")
|
||||||
|
assert.NotEqual(t, nil, err)
|
||||||
|
|
||||||
|
_, err = StringToInt64("null")
|
||||||
|
assert.NotEqual(t, nil, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringArrayToInt64Array(t *testing.T) {
|
||||||
|
expectedValue := []int64{0, 1, -123456789012345, 12345678, 1234567890123456}
|
||||||
|
actualValue, err := StringArrayToInt64Array([]string{"0", "1", "-123456789012345", "12345678", "1234567890123456"})
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.EqualValues(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringArrayToInt64Array_InvalidNumber(t *testing.T) {
|
||||||
|
_, err := StringArrayToInt64Array([]string{"0", "1", "", "12345678", "1234567890123456"})
|
||||||
|
assert.NotEqual(t, nil, err)
|
||||||
|
|
||||||
|
_, err = StringArrayToInt64Array([]string{"0", "1", "null", "12345678", "1234567890123456"})
|
||||||
|
assert.NotEqual(t, nil, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringTryToInt64_InvalidNumber(t *testing.T) {
|
||||||
|
expectedValue := int64(-1)
|
||||||
|
actualValue := StringTryToInt64("", -1)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
actualValue = StringTryToInt64("null", -1)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFloat64ToString(t *testing.T) {
|
||||||
|
expectedValue := "-123456789.123456"
|
||||||
|
actualValue := Float64ToString(-123456789.123456)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringToFloat64(t *testing.T) {
|
||||||
|
expectedValue := -123456789.123456
|
||||||
|
actualValue, err := StringToFloat64("-123456789.123456")
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestFormatUnixTimeToLongDateTimeWithoutSecond(t *testing.T) {
|
||||||
|
unixTime := int64(1617228083)
|
||||||
|
utcTimezone := time.FixedZone("Test Timezone", 0) // UTC
|
||||||
|
utc8Timezone := time.FixedZone("Test Timezone", 28800) // UTC+8
|
||||||
|
|
||||||
|
expectedValue := "2021-03-31 22:01"
|
||||||
|
actualValue := FormatUnixTimeToLongDateTimeWithoutSecond(unixTime, utcTimezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
expectedValue = "2021-04-01 06:01"
|
||||||
|
actualValue = FormatUnixTimeToLongDateTimeWithoutSecond(unixTime, utc8Timezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFormatUnixTimeToYearMonth(t *testing.T) {
|
||||||
|
unixTime := int64(1617228083)
|
||||||
|
utcTimezone := time.FixedZone("Test Timezone", 0) // UTC
|
||||||
|
utc8Timezone := time.FixedZone("Test Timezone", 28800) // UTC+8
|
||||||
|
|
||||||
|
expectedValue := "2021-03"
|
||||||
|
actualValue := FormatUnixTimeToYearMonth(unixTime, utcTimezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
expectedValue = "2021-04"
|
||||||
|
actualValue = FormatUnixTimeToYearMonth(unixTime, utc8Timezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseFromUnixTime(t *testing.T) {
|
||||||
|
expectedValue := int64(1617228083)
|
||||||
|
actualTime := ParseFromUnixTime(expectedValue)
|
||||||
|
actualValue := actualTime.Unix()
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseFromLongDateTime(t *testing.T) {
|
||||||
|
expectedValue := int64(1617228083)
|
||||||
|
actualTime, err := ParseFromLongDateTime("2021-04-01 06:01:23", 480)
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
|
||||||
|
actualValue := actualTime.Unix()
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseFromShortDateTime(t *testing.T) {
|
||||||
|
expectedValue := int64(1617228083)
|
||||||
|
actualTime, err := ParseFromShortDateTime("2021-4-1 6:1:23", 480)
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
|
||||||
|
actualValue := actualTime.Unix()
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetMinTransactionTimeFromUnixTime(t *testing.T) {
|
||||||
|
expectedValue := int64(1617228083000)
|
||||||
|
actualValue := GetMinTransactionTimeFromUnixTime(1617228083)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetMaxTransactionTimeFromUnixTime(t *testing.T) {
|
||||||
|
expectedValue := int64(1617228083999)
|
||||||
|
actualValue := GetMaxTransactionTimeFromUnixTime(1617228083)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetUnixTimeFromTransactionTime(t *testing.T) {
|
||||||
|
expectedValue := int64(1617228083)
|
||||||
|
actualValue := GetUnixTimeFromTransactionTime(1617228083999)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/mayswind/lab/pkg/settings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestClone(t *testing.T) {
|
||||||
|
expectedObject := &settings.Config{
|
||||||
|
AppName: "lab",
|
||||||
|
Mode: settings.MODE_PRODUCTION,
|
||||||
|
DatabaseConfig: &settings.DatabaseConfig{
|
||||||
|
DatabaseType: settings.MySqlDbType,
|
||||||
|
DatabaseHost: "localhost",
|
||||||
|
ConnectionMaxLifeTime: 60,
|
||||||
|
},
|
||||||
|
LogModes: []string{"console", "file"},
|
||||||
|
}
|
||||||
|
actualObject := &settings.Config{}
|
||||||
|
err := Clone(expectedObject, actualObject)
|
||||||
|
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.EqualValues(t, expectedObject, actualObject)
|
||||||
|
}
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestInt64SliceEquals_Equals(t *testing.T) {
|
||||||
|
s1 := []int64{0, 1, 2, 3}
|
||||||
|
s2 := []int64{0, 1, 2, 3}
|
||||||
|
expectedValue := true
|
||||||
|
actualValue := Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInt64SliceEquals_NotEquals(t *testing.T) {
|
||||||
|
s1 := []int64{0, 1, 2, 3}
|
||||||
|
s2 := []int64{0, 1, 3, 2}
|
||||||
|
expectedValue := false
|
||||||
|
actualValue := Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{0, 1, 2, 3}
|
||||||
|
s2 = []int64{0}
|
||||||
|
expectedValue = false
|
||||||
|
actualValue = Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{0, 1, 2, 3}
|
||||||
|
s2 = []int64{}
|
||||||
|
expectedValue = false
|
||||||
|
actualValue = Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInt64SliceEquals_NilOrEmpty(t *testing.T) {
|
||||||
|
var s1 []int64 = nil
|
||||||
|
s2 := []int64{0, 1, 2, 3}
|
||||||
|
expectedValue := false
|
||||||
|
actualValue := Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{0, 1, 2, 3}
|
||||||
|
s2 = nil
|
||||||
|
expectedValue = false
|
||||||
|
actualValue = Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = nil
|
||||||
|
s2 = nil
|
||||||
|
expectedValue = true
|
||||||
|
actualValue = Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{}
|
||||||
|
s2 = []int64{}
|
||||||
|
expectedValue = true
|
||||||
|
actualValue = Int64SliceEquals(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInt64SliceMinus(t *testing.T) {
|
||||||
|
s1 := []int64{0, 1, 2, 3}
|
||||||
|
s2 := []int64{0, 1, 2, 3}
|
||||||
|
expectedValue := []int64{}
|
||||||
|
actualValue := Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{0, 1, 2, 3}
|
||||||
|
s2 = []int64{0, 2}
|
||||||
|
expectedValue = []int64{1, 3}
|
||||||
|
actualValue = Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{0, 1, 2, 3}
|
||||||
|
s2 = []int64{}
|
||||||
|
expectedValue = []int64{0, 1, 2, 3}
|
||||||
|
actualValue = Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{}
|
||||||
|
s2 = []int64{0, 1, 2, 3}
|
||||||
|
expectedValue = []int64{}
|
||||||
|
actualValue = Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{0, 1, 2, 3}
|
||||||
|
s2 = []int64{1, 2, 3, 4}
|
||||||
|
expectedValue = []int64{0}
|
||||||
|
actualValue = Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInt64SliceMinus_NilOrEmpty(t *testing.T) {
|
||||||
|
var s1 []int64 = nil
|
||||||
|
s2 := []int64{0, 1, 2, 3}
|
||||||
|
var expectedValue []int64 = nil
|
||||||
|
actualValue := Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = []int64{0, 1, 2, 3}
|
||||||
|
s2 = nil
|
||||||
|
expectedValue = []int64{0, 1, 2, 3}
|
||||||
|
actualValue = Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
s1 = nil
|
||||||
|
s2 = nil
|
||||||
|
expectedValue = nil
|
||||||
|
actualValue = Int64SliceMinus(s1, s2)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestToUniqueInt64Slice(t *testing.T) {
|
||||||
|
arr := []int64{0, 1, 2, 3, 2, 4, 0}
|
||||||
|
expectedValue := []int64{0, 1, 2, 3, 4}
|
||||||
|
actualValue := ToUniqueInt64Slice(arr)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestToUniqueInt64Slice_NilOrEmpty(t *testing.T) {
|
||||||
|
var arr []int64 = nil
|
||||||
|
expectedValue := []int64{}
|
||||||
|
actualValue := ToUniqueInt64Slice(arr)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
arr = []int64{}
|
||||||
|
expectedValue = []int64{}
|
||||||
|
actualValue = ToUniqueInt64Slice(arr)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
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 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 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 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)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user