MCPcopy
hub / github.com/robfig/cron / TestConstantDelayNext

Function TestConstantDelayNext

constantdelay_test.go:8–54  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

6)
7
8func TestConstantDelayNext(t *testing.T) {
9 tests := []struct {
10 time string
11 delay time.Duration
12 expected string
13 }{
14 // Simple cases
15 {"Mon Jul 9 14:45 2012", 15*time.Minute + 50*time.Nanosecond, "Mon Jul 9 15:00 2012"},
16 {"Mon Jul 9 14:59 2012", 15 * time.Minute, "Mon Jul 9 15:14 2012"},
17 {"Mon Jul 9 14:59:59 2012", 15 * time.Minute, "Mon Jul 9 15:14:59 2012"},
18
19 // Wrap around hours
20 {"Mon Jul 9 15:45 2012", 35 * time.Minute, "Mon Jul 9 16:20 2012"},
21
22 // Wrap around days
23 {"Mon Jul 9 23:46 2012", 14 * time.Minute, "Tue Jul 10 00:00 2012"},
24 {"Mon Jul 9 23:45 2012", 35 * time.Minute, "Tue Jul 10 00:20 2012"},
25 {"Mon Jul 9 23:35:51 2012", 44*time.Minute + 24*time.Second, "Tue Jul 10 00:20:15 2012"},
26 {"Mon Jul 9 23:35:51 2012", 25*time.Hour + 44*time.Minute + 24*time.Second, "Thu Jul 11 01:20:15 2012"},
27
28 // Wrap around months
29 {"Mon Jul 9 23:35 2012", 91*24*time.Hour + 25*time.Minute, "Thu Oct 9 00:00 2012"},
30
31 // Wrap around minute, hour, day, month, and year
32 {"Mon Dec 31 23:59:45 2012", 15 * time.Second, "Tue Jan 1 00:00:00 2013"},
33
34 // Round to nearest second on the delay
35 {"Mon Jul 9 14:45 2012", 15*time.Minute + 50*time.Nanosecond, "Mon Jul 9 15:00 2012"},
36
37 // Round up to 1 second if the duration is less.
38 {"Mon Jul 9 14:45:00 2012", 15 * time.Millisecond, "Mon Jul 9 14:45:01 2012"},
39
40 // Round to nearest second when calculating the next time.
41 {"Mon Jul 9 14:45:00.005 2012", 15 * time.Minute, "Mon Jul 9 15:00 2012"},
42
43 // Round to nearest second for both.
44 {"Mon Jul 9 14:45:00.005 2012", 15*time.Minute + 50*time.Nanosecond, "Mon Jul 9 15:00 2012"},
45 }
46
47 for _, c := range tests {
48 actual := Every(c.delay).Next(getTime(c.time))
49 expected := getTime(c.expected)
50 if actual != expected {
51 t.Errorf("%s, \"%s\": (expected) %v != %v (actual)", c.time, c.delay, expected, actual)
52 }
53 }
54}

Callers

nothing calls this directly

Calls 3

EveryFunction · 0.85
getTimeFunction · 0.85
NextMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…