| package matchers_test |
| |
| import ( |
| "errors" |
| |
| . "github.com/onsi/ginkgo" |
| . "github.com/onsi/gomega" |
| . "github.com/onsi/gomega/matchers" |
| ) |
| |
| var _ = Describe("BeIdenticalTo", func() { |
| Context("when asserting that nil equals nil", func() { |
| It("should error", func() { |
| success, err := (&BeIdenticalToMatcher{Expected: nil}).Match(nil) |
| |
| Ω(success).Should(BeFalse()) |
| Ω(err).Should(HaveOccurred()) |
| }) |
| }) |
| |
| It("should treat the same pointer to a struct as identical", func() { |
| mySpecialStruct := myCustomType{} |
| Ω(&mySpecialStruct).Should(BeIdenticalTo(&mySpecialStruct)) |
| Ω(&myCustomType{}).ShouldNot(BeIdenticalTo(&mySpecialStruct)) |
| }) |
| |
| It("should be strict about types", func() { |
| Ω(5).ShouldNot(BeIdenticalTo("5")) |
| Ω(5).ShouldNot(BeIdenticalTo(5.0)) |
| Ω(5).ShouldNot(BeIdenticalTo(3)) |
| }) |
| |
| It("should treat primtives as identical", func() { |
| Ω("5").Should(BeIdenticalTo("5")) |
| Ω("5").ShouldNot(BeIdenticalTo("55")) |
| |
| Ω(5.55).Should(BeIdenticalTo(5.55)) |
| Ω(5.55).ShouldNot(BeIdenticalTo(6.66)) |
| |
| Ω(5).Should(BeIdenticalTo(5)) |
| Ω(5).ShouldNot(BeIdenticalTo(55)) |
| }) |
| |
| It("should treat the same pointers to a slice as identical", func() { |
| mySlice := []int{1, 2} |
| Ω(&mySlice).Should(BeIdenticalTo(&mySlice)) |
| Ω(&mySlice).ShouldNot(BeIdenticalTo(&[]int{1, 2})) |
| }) |
| |
| It("should treat the same pointers to a map as identical", func() { |
| myMap := map[string]string{"a": "b", "c": "d"} |
| Ω(&myMap).Should(BeIdenticalTo(&myMap)) |
| Ω(myMap).ShouldNot(BeIdenticalTo(map[string]string{"a": "b", "c": "d"})) |
| }) |
| |
| It("should treat the same pointers to an error as identical", func() { |
| myError := errors.New("foo") |
| Ω(&myError).Should(BeIdenticalTo(&myError)) |
| Ω(errors.New("foo")).ShouldNot(BeIdenticalTo(errors.New("bar"))) |
| }) |
| }) |