Files
jiacrontab/pkg/crontab/job_test.go
jiazhizhong 1279635d7f fix
2022-03-10 17:09:03 +08:00

71 lines
1.4 KiB
Go

package crontab
import (
"jiacrontab/pkg/test"
"testing"
"time"
)
func TestJob_NextExecutionTime(t *testing.T) {
timeLayout := "2006-01-02 15:04:05"
j := &Job{
Second: "48",
Minute: "3",
Hour: "12",
Day: "25",
Weekday: "*",
Month: "1",
}
tt, err := j.NextExecutionTime(time.Now())
test.Nil(t, err)
test.Equal(t, "2020-01-25 12:03:48", tt.Format(timeLayout))
tt, err = j.NextExecutionTime(tt)
test.Nil(t, err)
test.Equal(t, "2021-01-25 12:03:48", tt.Format(timeLayout))
tt, err = j.NextExecutionTime(tt)
test.Equal(t, "2022-01-25 12:03:48", tt.Format(timeLayout))
j = &Job{
Second: "58",
Minute: "*/4",
Hour: "12",
Day: "4",
Weekday: "*",
Month: "3",
}
tt, err = j.NextExecutionTime(time.Now())
test.Nil(t, err)
test.Equal(t, "2020-03-04 12:00:58", tt.Format(timeLayout))
tt, err = j.NextExecutionTime(tt)
test.Nil(t, err)
test.Equal(t, "2020-03-04 12:04:58", tt.Format(timeLayout))
tt, err = j.NextExecutionTime(tt)
test.Nil(t, err)
test.Equal(t, "2020-03-04 12:08:58", tt.Format(timeLayout))
j = &Job{
Second: "0",
Minute: "*",
Hour: "*",
Day: "*",
Weekday: "*",
Month: "*",
}
tt, err = j.NextExecutionTime(time.Now())
test.Nil(t, err)
t.Log(tt, j.GetLastExecTime())
for i := 0; i < 1000; i++ {
tt, err = j.NextExecutionTime(tt)
test.Nil(t, err)
t.Log(tt, j.GetLastExecTime())
}
t.Log("end")
}