|  | 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"))) | 
|  | }) | 
|  | }) |