| package matchers_test | 
 |  | 
 | import ( | 
 | 	. "github.com/onsi/ginkgo" | 
 | 	. "github.com/onsi/gomega" | 
 | 	. "github.com/onsi/gomega/matchers" | 
 | ) | 
 |  | 
 | var _ = Describe("HaveLen", func() { | 
 | 	Context("when passed a supported type", func() { | 
 | 		It("should do the right thing", func() { | 
 | 			Ω("").Should(HaveLen(0)) | 
 | 			Ω("AA").Should(HaveLen(2)) | 
 |  | 
 | 			Ω([0]int{}).Should(HaveLen(0)) | 
 | 			Ω([2]int{1, 2}).Should(HaveLen(2)) | 
 |  | 
 | 			Ω([]int{}).Should(HaveLen(0)) | 
 | 			Ω([]int{1, 2, 3}).Should(HaveLen(3)) | 
 |  | 
 | 			Ω(map[string]int{}).Should(HaveLen(0)) | 
 | 			Ω(map[string]int{"a": 1, "b": 2, "c": 3, "d": 4}).Should(HaveLen(4)) | 
 |  | 
 | 			c := make(chan bool, 3) | 
 | 			Ω(c).Should(HaveLen(0)) | 
 | 			c <- true | 
 | 			c <- true | 
 | 			Ω(c).Should(HaveLen(2)) | 
 | 		}) | 
 | 	}) | 
 |  | 
 | 	Context("when passed a correctly typed nil", func() { | 
 | 		It("should operate succesfully on the passed in value", func() { | 
 | 			var nilSlice []int | 
 | 			Ω(nilSlice).Should(HaveLen(0)) | 
 |  | 
 | 			var nilMap map[int]string | 
 | 			Ω(nilMap).Should(HaveLen(0)) | 
 | 		}) | 
 | 	}) | 
 |  | 
 | 	Context("when passed an unsupported type", func() { | 
 | 		It("should error", func() { | 
 | 			success, err := (&HaveLenMatcher{Count: 0}).Match(0) | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 |  | 
 | 			success, err = (&HaveLenMatcher{Count: 0}).Match(nil) | 
 | 			Ω(success).Should(BeFalse()) | 
 | 			Ω(err).Should(HaveOccurred()) | 
 | 		}) | 
 | 	}) | 
 | }) |