diff --git a/quartz/cron_test.go b/quartz/cron_test.go index 759e504..10cc57a 100644 --- a/quartz/cron_test.go +++ b/quartz/cron_test.go @@ -299,7 +299,27 @@ func iterate(prev int64, cronTrigger *quartz.CronTrigger, iterations int) (strin func TestCronExpressionError(t *testing.T) { tests := []string{ + "-1 * * * * *", + "X * * * * *", + "* X * * * *", + "* * X * * *", + "* * * X * *", + "* * * * X *", + "* * * * * X", + "* * * * * * X", + "1,X/1 * * * * *", + "1,X-1 * * * * *", + "1-2-3 * * * * *", + "X-2 * * * * *", + "1-X * * * * *", + "100-200 * * * * *", + "1/2/3 * * * * *", + "1-2-3/4 * * * * *", + "X-2/4 * * * * *", + "1-X/4 * * * * *", + "X/4 * * * * *", "*/X * * * * *", + "200/100 * * * * *", } for _, test := range tests { t.Run(test, func(t *testing.T) { diff --git a/quartz/job_key_test.go b/quartz/job_key_test.go index 7de9d87..645fa62 100644 --- a/quartz/job_key_test.go +++ b/quartz/job_key_test.go @@ -11,9 +11,13 @@ import ( func TestJobKey(t *testing.T) { name := "jobName" jobKey1 := quartz.NewJobKey(name) + assert.Equal(t, jobKey1.Name(), name) + assert.Equal(t, jobKey1.Group(), quartz.DefaultGroup) assert.Equal(t, jobKey1.String(), fmt.Sprintf("%s::%s", quartz.DefaultGroup, name)) jobKey2 := quartz.NewJobKeyWithGroup(name, "") + assert.Equal(t, jobKey2.Name(), name) + assert.Equal(t, jobKey2.Group(), quartz.DefaultGroup) assert.Equal(t, jobKey2.String(), fmt.Sprintf("%s::%s", quartz.DefaultGroup, name)) if !jobKey1.Equals(jobKey2) { diff --git a/quartz/scheduler_test.go b/quartz/scheduler_test.go index a626898..6476726 100644 --- a/quartz/scheduler_test.go +++ b/quartz/scheduler_test.go @@ -13,6 +13,7 @@ import ( "github.com/reugn/go-quartz/internal/assert" "github.com/reugn/go-quartz/internal/mock" "github.com/reugn/go-quartz/job" + "github.com/reugn/go-quartz/matcher" "github.com/reugn/go-quartz/quartz" ) @@ -307,6 +308,11 @@ func TestScheduler_JobWithRetries(t *testing.T) { ) err := sched.ScheduleJob(jobDetail, quartz.NewRunOnceTrigger(time.Millisecond)) assert.IsNil(t, err) + err = sched.ScheduleJob(jobDetail, quartz.NewRunOnceTrigger(time.Millisecond)) + assert.ErrorIs(t, err, quartz.ErrIllegalState) + jobDetail.Options().Replace = true + err = sched.ScheduleJob(jobDetail, quartz.NewRunOnceTrigger(time.Millisecond)) + assert.IsNil(t, err) assert.Equal(t, funcRetryJob.JobStatus(), job.StatusNA) assert.Equal(t, int(atomic.LoadInt32(&n)), 0) @@ -425,6 +431,10 @@ func TestScheduler_PauseResumeErrors(t *testing.T) { err = sched.PauseJob(quartz.NewJobKey("funcJob2")) assert.ErrorIs(t, err, quartz.ErrJobNotFound) + assert.Equal(t, len(sched.GetJobKeys(matcher.JobPaused())), 1) + assert.Equal(t, len(sched.GetJobKeys(matcher.JobActive())), 0) + assert.Equal(t, len(sched.GetJobKeys()), 1) + sched.Stop() }