calendar_test.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package ut_test
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/go-playground/universal-translator"
  6. _ "github.com/go-playground/universal-translator/resources/locales"
  7. . "gopkg.in/go-playground/assert.v1"
  8. )
  9. // NOTES:
  10. // - Run "go test" to run tests
  11. // - Run "gocov test | gocov report" to report on test converage by file
  12. // - Run "gocov test | gocov annotate -" to report on all code and functions, those ,marked with "MISS" were never called
  13. //
  14. // or
  15. //
  16. // -- may be a good idea to change to output path to somewherelike /tmp
  17. // go test -coverprofile cover.out && go tool cover -html=cover.out -o cover.html
  18. //
  19. var dateTimeString = "Jan 2, 2006 at 3:04:05pm"
  20. func TestDateTime(t *testing.T) {
  21. en, err := ut.GetTranslator("en")
  22. Equal(t, err, nil)
  23. datetime, err := time.Parse(dateTimeString, dateTimeString)
  24. Equal(t, err, nil)
  25. // test the public method
  26. dt, err := en.FmtDateFullSafe(datetime)
  27. Equal(t, err, nil)
  28. Equal(t, dt, "Monday, January 2, 2006")
  29. dt = en.FmtDateFull(datetime)
  30. Equal(t, dt, "Monday, January 2, 2006")
  31. dt, err = en.FmtDateLongSafe(datetime)
  32. Equal(t, err, nil)
  33. Equal(t, dt, "January 2, 2006")
  34. dt = en.FmtDateLong(datetime)
  35. Equal(t, dt, "January 2, 2006")
  36. dt, err = en.FmtDateMediumSafe(datetime)
  37. Equal(t, err, nil)
  38. Equal(t, dt, "Jan 2, 2006")
  39. dt = en.FmtDateMedium(datetime)
  40. Equal(t, dt, "Jan 2, 2006")
  41. dt, err = en.FmtDateShortSafe(datetime)
  42. Equal(t, err, nil)
  43. Equal(t, dt, "1/2/06")
  44. dt = en.FmtDateShort(datetime)
  45. Equal(t, dt, "1/2/06")
  46. dt, err = en.FmtTimeFullSafe(datetime)
  47. Equal(t, err, nil)
  48. Equal(t, dt, "3:04:05 PM")
  49. dt = en.FmtTimeFull(datetime)
  50. Equal(t, dt, "3:04:05 PM")
  51. dt, err = en.FmtTimeLongSafe(datetime)
  52. Equal(t, err, nil)
  53. Equal(t, dt, "3:04:05 PM")
  54. dt = en.FmtTimeLong(datetime)
  55. Equal(t, dt, "3:04:05 PM")
  56. dt, err = en.FmtTimeMediumSafe(datetime)
  57. Equal(t, err, nil)
  58. Equal(t, dt, "3:04:05 PM")
  59. dt = en.FmtTimeMedium(datetime)
  60. Equal(t, dt, "3:04:05 PM")
  61. dt, err = en.FmtTimeShortSafe(datetime)
  62. Equal(t, err, nil)
  63. Equal(t, dt, "3:04 PM")
  64. dt = en.FmtTimeShort(datetime)
  65. Equal(t, dt, "3:04 PM")
  66. dt, err = en.FmtDateTimeFullSafe(datetime)
  67. Equal(t, err, nil)
  68. Equal(t, dt, "Monday, January 2, 2006 at 3:04:05 PM")
  69. dt = en.FmtDateTimeFull(datetime)
  70. Equal(t, dt, "Monday, January 2, 2006 at 3:04:05 PM")
  71. dt, err = en.FmtDateTimeLongSafe(datetime)
  72. Equal(t, err, nil)
  73. Equal(t, dt, "January 2, 2006 at 3:04:05 PM")
  74. dt = en.FmtDateTimeLong(datetime)
  75. Equal(t, dt, "January 2, 2006 at 3:04:05 PM")
  76. dt, err = en.FmtDateTimeMediumSafe(datetime)
  77. Equal(t, err, nil)
  78. Equal(t, dt, "Jan 2, 2006, 3:04:05 PM")
  79. dt = en.FmtDateTimeMedium(datetime)
  80. Equal(t, dt, "Jan 2, 2006, 3:04:05 PM")
  81. dt, err = en.FmtDateTimeShortSafe(datetime)
  82. Equal(t, err, nil)
  83. Equal(t, dt, "1/2/06, 3:04 PM")
  84. dt = en.FmtDateTimeShort(datetime)
  85. Equal(t, dt, "1/2/06, 3:04 PM")
  86. dt, err = en.FmtDateTimeSafe(datetime, "MMMM d yy")
  87. Equal(t, err, nil)
  88. Equal(t, dt, "January 2 06")
  89. dt = en.FmtDateTime(datetime, "MMMM d yy")
  90. Equal(t, err, nil)
  91. Equal(t, dt, "January 2 06")
  92. dt, err = en.FmtDateTimeSafe(datetime, "not a date pattern")
  93. NotEqual(t, err, nil)
  94. Equal(t, dt, "")
  95. Equal(t, err.Error(), "unknown datetime format unit: n")
  96. }