Files
ezbookkeeping/pkg/utils/converter_test.go
T
2023-03-27 23:58:33 +08:00

125 lines
3.5 KiB
Go

package utils
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestIntToString(t *testing.T) {
expectedValue := "-123456789"
actualValue := IntToString(-123456789)
assert.Equal(t, expectedValue, actualValue)
}
func TestStringToInt(t *testing.T) {
expectedValue := -123456789
actualValue, err := StringToInt("-123456789")
assert.Equal(t, nil, err)
assert.Equal(t, expectedValue, actualValue)
}
func TestStringToInt_InvalidNumber(t *testing.T) {
_, err := StringToInt("")
assert.NotEqual(t, nil, err)
_, err = StringToInt("null")
assert.NotEqual(t, nil, err)
}
func TestStringToInt32(t *testing.T) {
expectedValue := int32(-123456789)
actualValue, err := StringToInt32("-123456789")
assert.Equal(t, nil, err)
assert.Equal(t, expectedValue, actualValue)
}
func TestStringToInt32_OutOfRange(t *testing.T) {
_, err := StringToInt32("2147483648")
assert.NotEqual(t, nil, err)
_, err = StringToInt32("-2147483649")
assert.NotEqual(t, nil, err)
}
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 := StringTryToInt("", -1)
assert.Equal(t, expectedValue, actualValue)
actualValue = StringTryToInt("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)
}