| package matchers_test |
| |
| import ( |
| . "github.com/onsi/ginkgo" |
| . "github.com/onsi/gomega" |
| . "github.com/onsi/gomega/matchers" |
| "time" |
| ) |
| |
| var _ = Describe("BeTemporally", func() { |
| |
| var t0, t1, t2 time.Time |
| BeforeEach(func() { |
| t0 = time.Now() |
| t1 = t0.Add(time.Second) |
| t2 = t0.Add(-time.Second) |
| }) |
| |
| Context("When comparing times", func() { |
| |
| It("should support ==", func() { |
| Ω(t0).Should(BeTemporally("==", t0)) |
| Ω(t1).ShouldNot(BeTemporally("==", t0)) |
| Ω(t0).ShouldNot(BeTemporally("==", t1)) |
| Ω(t0).ShouldNot(BeTemporally("==", time.Time{})) |
| }) |
| |
| It("should support >", func() { |
| Ω(t0).Should(BeTemporally(">", t2)) |
| Ω(t0).ShouldNot(BeTemporally(">", t0)) |
| Ω(t2).ShouldNot(BeTemporally(">", t0)) |
| }) |
| |
| It("should support <", func() { |
| Ω(t0).Should(BeTemporally("<", t1)) |
| Ω(t0).ShouldNot(BeTemporally("<", t0)) |
| Ω(t1).ShouldNot(BeTemporally("<", t0)) |
| }) |
| |
| It("should support >=", func() { |
| Ω(t0).Should(BeTemporally(">=", t2)) |
| Ω(t0).Should(BeTemporally(">=", t0)) |
| Ω(t0).ShouldNot(BeTemporally(">=", t1)) |
| }) |
| |
| It("should support <=", func() { |
| Ω(t0).Should(BeTemporally("<=", t1)) |
| Ω(t0).Should(BeTemporally("<=", t0)) |
| Ω(t0).ShouldNot(BeTemporally("<=", t2)) |
| }) |
| |
| Context("when passed ~", func() { |
| Context("and there is no precision parameter", func() { |
| BeforeEach(func() { |
| t1 = t0.Add(time.Millisecond / 2) |
| t2 = t0.Add(-2 * time.Millisecond) |
| }) |
| It("should approximate", func() { |
| Ω(t0).Should(BeTemporally("~", t0)) |
| Ω(t0).Should(BeTemporally("~", t1)) |
| Ω(t0).ShouldNot(BeTemporally("~", t2)) |
| }) |
| }) |
| |
| Context("and there is a precision parameter", func() { |
| BeforeEach(func() { |
| t2 = t0.Add(3 * time.Second) |
| }) |
| It("should use precision paramter", func() { |
| d := 2 * time.Second |
| Ω(t0).Should(BeTemporally("~", t0, d)) |
| Ω(t0).Should(BeTemporally("~", t1, d)) |
| Ω(t0).ShouldNot(BeTemporally("~", t2, d)) |
| }) |
| }) |
| }) |
| }) |
| |
| Context("when passed a non-time", func() { |
| It("should error", func() { |
| success, err := (&BeTemporallyMatcher{Comparator: "==", CompareTo: t0}).Match("foo") |
| Ω(success).Should(BeFalse()) |
| Ω(err).Should(HaveOccurred()) |
| |
| success, err = (&BeTemporallyMatcher{Comparator: "=="}).Match(nil) |
| Ω(success).Should(BeFalse()) |
| Ω(err).Should(HaveOccurred()) |
| }) |
| }) |
| |
| Context("when passed an unsupported comparator", func() { |
| It("should error", func() { |
| success, err := (&BeTemporallyMatcher{Comparator: "!=", CompareTo: t0}).Match(t2) |
| Ω(success).Should(BeFalse()) |
| Ω(err).Should(HaveOccurred()) |
| }) |
| }) |
| }) |