enrich_date_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package parser
  2. import (
  3. "testing"
  4. log "github.com/sirupsen/logrus"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/crowdsecurity/go-cs-lib/cstest"
  7. "github.com/crowdsecurity/crowdsec/pkg/types"
  8. )
  9. func TestDateParse(t *testing.T) {
  10. tests := []struct {
  11. name string
  12. evt types.Event
  13. expectedErr string
  14. expected string
  15. }{
  16. {
  17. name: "RFC3339",
  18. evt: types.Event{
  19. StrTime: "2019-10-12T07:20:50.52Z",
  20. },
  21. expected: "2019-10-12T07:20:50.52Z",
  22. },
  23. {
  24. name: "02/Jan/2006:15:04:05 -0700",
  25. evt: types.Event{
  26. StrTime: "02/Jan/2006:15:04:05 -0700",
  27. },
  28. expected: "2006-01-02T15:04:05-07:00",
  29. },
  30. {
  31. name: "Dec 17 08:17:43",
  32. evt: types.Event{
  33. StrTime: "2011 X 17 zz 08X17X43 oneone Dec",
  34. StrTimeFormat: "2006 X 2 zz 15X04X05 oneone Jan",
  35. },
  36. expected: "2011-12-17T08:17:43Z",
  37. },
  38. }
  39. logger := log.WithFields(log.Fields{
  40. "test": "test",
  41. })
  42. for _, tt := range tests {
  43. tt := tt
  44. t.Run(tt.name, func(t *testing.T) {
  45. strTime, err := ParseDate(tt.evt.StrTime, &tt.evt, logger)
  46. cstest.RequireErrorContains(t, err, tt.expectedErr)
  47. if tt.expectedErr != "" {
  48. return
  49. }
  50. assert.Equal(t, tt.expected, strTime["MarshaledTime"])
  51. })
  52. }
  53. }