| package matchers_test | 
 |  | 
 | import ( | 
 | 	. "github.com/onsi/ginkgo" | 
 | 	. "github.com/onsi/gomega" | 
 | 	. "github.com/onsi/gomega/matchers" | 
 | ) | 
 |  | 
 | var _ = Describe("MatchJSONMatcher", func() { | 
 | 	Context("When passed stringifiables", func() { | 
 | 		It("should succeed if the JSON matches", func() { | 
 | 			Ω("{}").Should(MatchJSON("{}")) | 
 | 			Ω(`{"a":1}`).Should(MatchJSON(`{"a":1}`)) | 
 | 			Ω(`{ | 
 | 			             "a":1 | 
 | 			         }`).Should(MatchJSON(`{"a":1}`)) | 
 | 			Ω(`{"a":1, "b":2}`).Should(MatchJSON(`{"b":2, "a":1}`)) | 
 | 			Ω(`{"a":1}`).ShouldNot(MatchJSON(`{"b":2, "a":1}`)) | 
 | 		}) | 
 |  | 
 | 		It("should work with byte arrays", func() { | 
 | 			Ω([]byte("{}")).Should(MatchJSON([]byte("{}"))) | 
 | 			Ω("{}").Should(MatchJSON([]byte("{}"))) | 
 | 			Ω([]byte("{}")).Should(MatchJSON("{}")) | 
 | 		}) | 
 | 	}) | 
 |  | 
 | 	Context("when either side is not valid JSON", func() { | 
 | 		It("should error", func() { | 
 | 			success, err := (&MatchJSONMatcher{JSONToMatch: `oops`}).Match(`{}`) | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 |  | 
 | 			success, err = (&MatchJSONMatcher{JSONToMatch: `{}`}).Match(`oops`) | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 | 		}) | 
 | 	}) | 
 |  | 
 | 	Context("when either side is neither a string nor a stringer", func() { | 
 | 		It("should error", func() { | 
 | 			success, err := (&MatchJSONMatcher{JSONToMatch: "{}"}).Match(2) | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 |  | 
 | 			success, err = (&MatchJSONMatcher{JSONToMatch: 2}).Match("{}") | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 |  | 
 | 			success, err = (&MatchJSONMatcher{JSONToMatch: nil}).Match("{}") | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 |  | 
 | 			success, err = (&MatchJSONMatcher{JSONToMatch: 2}).Match(nil) | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 | 		}) | 
 | 	}) | 
 | }) |