153 lines
3.5 KiB
Go
153 lines
3.5 KiB
Go
package xtime
|
|
|
|
import (
|
|
"github.com/golang-module/carbon/v2"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestSetTimeOffset(t *testing.T) {
|
|
loc, err := time.LoadLocation("Asia/Shanghai")
|
|
assert.NoError(t, err)
|
|
loc2, err := time.LoadLocation("America/New_York")
|
|
assert.NoError(t, err)
|
|
a := time.Now().In(loc)
|
|
b := time.Now().In(loc2)
|
|
t.Log(a.String())
|
|
t.Log(b.String())
|
|
Now()
|
|
t.Log(a.Sub(b))
|
|
}
|
|
|
|
func TestFormatDayNum(t *testing.T) {
|
|
t1 := Parse("2023-01-01 00:00:00", 0)
|
|
assert.Equal(t, FormatDateNum(t1), 20221231)
|
|
t2 := Parse("2023-01-01 04:00:00", 0)
|
|
assert.Equal(t, FormatDateNum(t2), 20230101)
|
|
}
|
|
|
|
func TestNow(t *testing.T) {
|
|
now := Now()
|
|
sc := carbon.Now(carbon.SaoPaulo)
|
|
|
|
b := func(args ...int) []int { return args }
|
|
assert.Equal(t, b(now.Time()), b(sc.Time()))
|
|
|
|
}
|
|
|
|
func TestIsToday(t *testing.T) {
|
|
now := time.Now()
|
|
|
|
assert.True(t, IsToday(now))
|
|
|
|
assert.False(t, IsToday(now.Add(24*time.Hour)))
|
|
assert.False(t, IsToday(now.Add(-24*time.Hour)))
|
|
|
|
}
|
|
|
|
func TestIsTodayTimestamp(t *testing.T) {
|
|
now := Now()
|
|
st := now.Timestamp()
|
|
|
|
assert.True(t, IsTodayTimestamp(st))
|
|
|
|
//assert.False(t, IsTodayTimestamp(now.Yesterday().Timestamp()))
|
|
assert.False(t, IsTodayTimestamp(now.AddDay().Timestamp()))
|
|
}
|
|
|
|
func TestIsAfterNow(t *testing.T) {
|
|
t.Run("std Time", func(t *testing.T) {
|
|
now := time.Now()
|
|
after := now.Add(time.Hour)
|
|
assert.True(t, IsAfterNow(after))
|
|
now = time.Now()
|
|
before := now.Add(-time.Hour)
|
|
assert.False(t, IsAfterNow(before))
|
|
})
|
|
|
|
t.Run("carbon", func(t *testing.T) {
|
|
now := Now()
|
|
after := now.AddHour()
|
|
assert.True(t, IsAfterNow(after))
|
|
now = Now()
|
|
before := now.SubHour()
|
|
assert.False(t, IsAfterNow(before))
|
|
})
|
|
t.Run("timestamp", func(t *testing.T) {
|
|
now := time.Now().Unix()
|
|
after := now + 3600
|
|
assert.True(t, IsAfterNow(after))
|
|
now = time.Now().Unix()
|
|
before := now - 3600
|
|
assert.False(t, IsAfterNow(before))
|
|
|
|
})
|
|
}
|
|
|
|
func TestIsBeforeNow(t *testing.T) {
|
|
t.Run("std Time", func(t *testing.T) {
|
|
now := time.Now()
|
|
before := now.Add(-time.Hour)
|
|
assert.True(t, IsBeforeNow(before))
|
|
now = time.Now()
|
|
after := now.Add(time.Hour)
|
|
assert.False(t, IsBeforeNow(after))
|
|
})
|
|
|
|
t.Run("carbon", func(t *testing.T) {
|
|
now := Now()
|
|
before := now.SubHour()
|
|
assert.True(t, IsBeforeNow(before))
|
|
now = Now()
|
|
after := now.AddHour()
|
|
assert.False(t, IsBeforeNow(after))
|
|
})
|
|
t.Run("timestamp", func(t *testing.T) {
|
|
now := time.Now().Unix()
|
|
before := now - 3600
|
|
assert.True(t, IsBeforeNow(before))
|
|
now = time.Now().Unix()
|
|
after := now + 3600
|
|
assert.False(t, IsBeforeNow(after))
|
|
|
|
})
|
|
}
|
|
|
|
func TestIsInDuration(t *testing.T) {
|
|
|
|
t.Run("std Time", func(t *testing.T) {
|
|
now := time.Now()
|
|
start := now.Add(-time.Hour)
|
|
end := now.Add(time.Hour)
|
|
assert.True(t, IsInDuration(now, start, end))
|
|
assert.False(t, IsInDuration(now.Add(10*time.Hour), start, end))
|
|
assert.False(t, IsInDuration(now.Add(-10*time.Hour), start, end))
|
|
})
|
|
|
|
t.Run("carbon", func(t *testing.T) {
|
|
now := Now()
|
|
start := now.SubHour()
|
|
end := now.AddHour()
|
|
assert.True(t, IsInDuration(now, start, end))
|
|
assert.False(t, IsInDuration(now.AddHours(10), start, end))
|
|
assert.False(t, IsInDuration(now.SubHours(10), start, end))
|
|
})
|
|
t.Run("timestamp", func(t *testing.T) {
|
|
now := time.Now().Unix()
|
|
start := now - 3600
|
|
end := now + 3600
|
|
assert.True(t, IsInDuration(now, start, end))
|
|
assert.False(t, IsInDuration(now+3600*10, start, end))
|
|
assert.False(t, IsInDuration(now-3600*10, start, end))
|
|
|
|
})
|
|
|
|
}
|
|
|
|
func TestClean(t *testing.T) {
|
|
_ = t
|
|
_ = TimestampToTime[int]
|
|
_ = FormatDuration[int64]
|
|
}
|