func TestNextRunTime(t *testing.T) { for _, testCase := range TestCases { /* * Set up */ var job *jobfile.Job = jobfile.NewJob("JobA", "blah", "dude") timeSpec, _ := jobfile.ParseFullTimeSpec(testCase.timeSpec) job.FullTimeSpec = *timeSpec var now time.Time = testCase.startTime for _, expRunTime := range testCase.expRunTimes { fmt.Printf("time spec: %v\n", testCase.timeSpec) fmt.Printf("now: %v\n", TimeString(now)) /* * Call */ var actualRunTime *time.Time = nextRunTime(job, now) /* * Test */ require.NotNil(t, actualRunTime) msg := fmt.Sprintf("%v != %v", TimeString(expRunTime), TimeString(*actualRunTime)) require.Equal(t, expRunTime, *actualRunTime, msg) now = actualRunTime.Add(time.Second) } } }