utils_test.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package utils
  2. import (
  3. "testing"
  4. "time"
  5. "regexp"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestInitStructWithDefaultTag(t *testing.T) {
  9. config := &struct {
  10. B bool `default:"true"`;
  11. S string `default:"default string"`;
  12. I int `default:"10"`
  13. T time.Duration `default:"100"`
  14. E int `default:""`
  15. }{}
  16. InitStructWithDefaultTag(config)
  17. assert.NotNil(t, config)
  18. assert.Equal(t, true, config.B)
  19. assert.Equal(t, "default string", config.S)
  20. assert.Equal(t, 10, config.I)
  21. assert.Equal(t, time.Duration(100), config.T)
  22. assert.Equal(t, 0, config.E)
  23. }
  24. func TestGetUUIDV4(t *testing.T) {
  25. uuid := GetUUIDV4()
  26. assert.Equal(t, 32, len(uuid))
  27. assert.NotEqual(t, GetUUIDV4(), GetUUIDV4())
  28. }
  29. func TestGetMD5Base64(t *testing.T) {
  30. assert.Equal(t, "ERIHLmRX2uZmssDdxQnnxQ==",
  31. GetMD5Base64([]byte("That's all folks!!")))
  32. assert.Equal(t, "GsJRdI3kAbAnHo/0+3wWJw==",
  33. GetMD5Base64([]byte("中文也没啥问题")))
  34. }
  35. func TestGetTimeInFormatRFC2616(t *testing.T) {
  36. s := GetTimeInFormatRFC2616()
  37. assert.Equal(t, 29, len(s))
  38. 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$`)
  39. assert.True(t, re.MatchString(s))
  40. }
  41. func TestGetTimeInFormatISO8601(t *testing.T) {
  42. s := GetTimeInFormatISO8601()
  43. assert.Equal(t, 20, len(s))
  44. // 2006-01-02T15:04:05Z
  45. re := regexp.MustCompile(`^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$`)
  46. assert.True(t, re.MatchString(s))
  47. }
  48. func TestGetUrlFormedMap(t *testing.T) {
  49. m := make(map[string]string)
  50. m["key"] = "value"
  51. s := GetUrlFormedMap(m)
  52. assert.Equal(t, "key=value", s)
  53. m["key2"] = "http://domain/?key=value&key2=value2"
  54. s2 := GetUrlFormedMap(m)
  55. assert.Equal(t, "key=value&key2=http%3A%2F%2Fdomain%2F%3Fkey%3Dvalue%26key2%3Dvalue2", s2)
  56. }