blob: 0a525687ce66af283f36332bc7a0a49fffc2f958 [file] [log] [blame]
package utils
import (
"fmt"
"testing"
"time"
"github.com/magiconair/properties/assert"
"github.com/merico-dev/lake/logger"
)
func TestConvertStringToTime(t *testing.T) {
timeString := "2021-07-30T19:14:33Z"
convertedTime, err := ConvertStringToTime(timeString)
assert.Equal(t, err, nil)
assert.Equal(t, convertedTime.Year(), 2021)
assert.Equal(t, convertedTime.Month(), time.Month(7))
assert.Equal(t, convertedTime.Day(), 30)
}
func TestConvertStringToTime_Alternate1(t *testing.T) {
timeString := "2021-07-07T17:07:24.121Z"
convertedTime, err := ConvertStringToTime(timeString)
assert.Equal(t, err, nil)
assert.Equal(t, convertedTime.Year(), 2021)
assert.Equal(t, convertedTime.Month(), time.Month(7))
assert.Equal(t, convertedTime.Day(), 7)
}
func TestConvertStringToTime_Alternate2(t *testing.T) {
timeString := "2021-07-21T16:49:47Z"
convertedTime, err := ConvertStringToTime(timeString)
assert.Equal(t, err, nil)
assert.Equal(t, convertedTime.Year(), 2021)
assert.Equal(t, convertedTime.Month(), time.Month(7))
assert.Equal(t, convertedTime.Day(), 21)
}
func TestConvertStringToTime_Alternate3(t *testing.T) {
fmt.Println("INFO >>> Handles alternate format 3")
timeString := "2021-07-07T17:07:15.000+00:00"
convertedTime, err := ConvertStringToTime(timeString)
assert.Equal(t, err, nil)
assert.Equal(t, convertedTime.Year(), 2021)
assert.Equal(t, convertedTime.Month(), time.Month(7))
assert.Equal(t, convertedTime.Day(), 7)
}
func TestConvertStringToTime_EmptyString(t *testing.T) {
logger.Color("Handles empty string")
timeString := ""
convertedTime, err := ConvertStringToTime(timeString)
assert.Equal(t, err != nil, true)
assert.Equal(t, convertedTime.IsZero(), true)
}
func TestConvertStringToTime_BadString(t *testing.T) {
logger.Color("Handles bad string")
timeString := "sdflkajsdfoij"
convertedTime, err := ConvertStringToTime(timeString)
assert.Equal(t, err != nil, true)
assert.Equal(t, convertedTime.IsZero(), true)
}
func TestConvertStringToSqlNullTime(t *testing.T) {
timeString := "2021-07-07T17:07:24.121Z"
nullTime := ConvertStringToSqlNullTime(timeString)
assert.Equal(t, nullTime.Valid, true)
assert.Equal(t, nullTime.Time.Year(), 2021)
}
func TestConvertStringToSqlNullTime_Alternate(t *testing.T) {
timeString := "2021-07-07T17:07:15.000+00:00"
nullTime := ConvertStringToSqlNullTime(timeString)
assert.Equal(t, nullTime.Valid, true)
assert.Equal(t, nullTime.Time.Year(), 2021)
}
func TestConvertStringToSqlNullTime_EmptyString(t *testing.T) {
timeString := ""
nullTime := ConvertStringToSqlNullTime(timeString)
assert.Equal(t, nullTime.Time.IsZero(), true)
assert.Equal(t, nullTime.Valid, false)
}
func TestConvertStringToSqlNullTime_BadString(t *testing.T) {
timeString := "aodviij8we32bkj"
nullTime := ConvertStringToSqlNullTime(timeString)
assert.Equal(t, nullTime.Time.IsZero(), true)
assert.Equal(t, nullTime.Valid, false)
}
func TestFormatTimeString_Plus(t *testing.T) {
fmt.Println("INFO >>> Handles +00:00 (for example)")
timeString := "2021-07-07T17:07:15.000+00:00"
formattedString := FormatTimeStringForParsing(timeString)
assert.Equal(t, formattedString, "2021-07-07T17:07:15.000Z")
}
func TestFormatTimeString_Minus(t *testing.T) {
fmt.Println("INFO >>> Handles -00:00 (for example)")
timeString := "2021-07-07T17:07:15.000-00:00"
formattedString := FormatTimeStringForParsing(timeString)
assert.Equal(t, formattedString, "2021-07-07T17:07:15.000Z")
}
func TestFormatTimeStringForParsing_NormalString(t *testing.T) {
fmt.Println("INFO >>> Handles normal string (does nothing)")
timeString := "2021-07-07T17:07:15.000Z"
formattedString := FormatTimeStringForParsing(timeString)
assert.Equal(t, formattedString, "2021-07-07T17:07:15.000Z")
}
func TestFormatTimeStringForParsing_EmptyString(t *testing.T) {
timeString := ""
formattedString := FormatTimeStringForParsing(timeString)
assert.Equal(t, formattedString, "")
}