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