| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package utils
- import (
- "fmt"
- "regexp"
- "strings"
- "testing"
- "time"
- "github.com/stretchr/testify/assert"
- )
- func TestInitStructWithDefaultTag(t *testing.T) {
- config := &struct {
- B bool `default:"true"`
- S string `default:"default string"`
- I int `default:"10"`
- T time.Duration `default:"100"`
- E int `default:""`
- }{}
- InitStructWithDefaultTag(config)
- assert.NotNil(t, config)
- assert.Equal(t, true, config.B)
- assert.Equal(t, "default string", config.S)
- assert.Equal(t, 10, config.I)
- assert.Equal(t, time.Duration(100), config.T)
- assert.Equal(t, 0, config.E)
- }
- func TestGetUUIDV4(t *testing.T) {
- uuid := GetUUIDV4()
- assert.Equal(t, 32, len(uuid))
- assert.NotEqual(t, GetUUIDV4(), GetUUIDV4())
- }
- func TestGetMD5Base64(t *testing.T) {
- assert.Equal(t, "ERIHLmRX2uZmssDdxQnnxQ==",
- GetMD5Base64([]byte("That's all folks!!")))
- assert.Equal(t, "GsJRdI3kAbAnHo/0+3wWJw==",
- GetMD5Base64([]byte("中文也没啥问题")))
- }
- func TestGetTimeInFormatRFC2616(t *testing.T) {
- s := GetTimeInFormatRFC2616()
- assert.Equal(t, 29, len(s))
- re := regexp.MustCompile(`^[A-Z][a-z]{2}, [0-9]{2} [A-Z][a-z]{2} [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$`)
- assert.True(t, re.MatchString(s))
- }
- func TestGetTimeInFormatISO8601(t *testing.T) {
- s := GetTimeInFormatISO8601()
- assert.Equal(t, 20, len(s))
- // 2006-01-02T15:04:05Z
- re := regexp.MustCompile(`^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$`)
- assert.True(t, re.MatchString(s))
- }
- func TestGetUrlFormedMap(t *testing.T) {
- m := make(map[string]string)
- m["key"] = "value"
- s := GetUrlFormedMap(m)
- assert.Equal(t, "key=value", s)
- m["key2"] = "http://domain/?key=value&key2=value2"
- s2 := GetUrlFormedMap(m)
- assert.Equal(t, "key=value&key2=http%3A%2F%2Fdomain%2F%3Fkey%3Dvalue%26key2%3Dvalue2", s2)
- }
- func TestGetTimeInFormatISO8601WithTZData(t *testing.T) {
- TZData = []byte(`"GMT"`)
- LoadLocationFromTZData = func(name string, data []byte) (location *time.Location, e error) {
- if strings.Contains(string(data), name) {
- location, _ = time.LoadLocation(name)
- }
- e = fmt.Errorf("There is a error in test.")
- return location, e
- }
- defer func() {
- err := recover()
- assert.NotNil(t, err)
- }()
- s := GetTimeInFormatISO8601()
- assert.Equal(t, 20, len(s))
- // 2006-01-02T15:04:05Z
- re := regexp.MustCompile(`^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$`)
- assert.True(t, re.MatchString(s))
- }
- func TestGetTimeInFormatRFC2616WithTZData(t *testing.T) {
- defer func() {
- err := recover()
- assert.NotNil(t, err)
- }()
- s := GetTimeInFormatRFC2616()
- assert.Equal(t, 29, len(s))
- re := regexp.MustCompile(`^[A-Z][a-z]{2}, [0-9]{2} [A-Z][a-z]{2} [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$`)
- assert.True(t, re.MatchString(s))
- }
|