|  | package matchers_test | 
|  |  | 
|  | import ( | 
|  | . "github.com/onsi/ginkgo" | 
|  | . "github.com/onsi/gomega" | 
|  | . "github.com/onsi/gomega/matchers" | 
|  | ) | 
|  |  | 
|  | var _ = Describe("BeClosedMatcher", func() { | 
|  | Context("when passed a channel", func() { | 
|  | It("should do the right thing", func() { | 
|  | openChannel := make(chan bool) | 
|  | Ω(openChannel).ShouldNot(BeClosed()) | 
|  |  | 
|  | var openReaderChannel <-chan bool | 
|  | openReaderChannel = openChannel | 
|  | Ω(openReaderChannel).ShouldNot(BeClosed()) | 
|  |  | 
|  | closedChannel := make(chan bool) | 
|  | close(closedChannel) | 
|  |  | 
|  | Ω(closedChannel).Should(BeClosed()) | 
|  |  | 
|  | var closedReaderChannel <-chan bool | 
|  | closedReaderChannel = closedChannel | 
|  | Ω(closedReaderChannel).Should(BeClosed()) | 
|  | }) | 
|  | }) | 
|  |  | 
|  | Context("when passed a send-only channel", func() { | 
|  | It("should error", func() { | 
|  | openChannel := make(chan bool) | 
|  | var openWriterChannel chan<- bool | 
|  | openWriterChannel = openChannel | 
|  |  | 
|  | success, err := (&BeClosedMatcher{}).Match(openWriterChannel) | 
|  | Ω(success).Should(BeFalse()) | 
|  | Ω(err).Should(HaveOccurred()) | 
|  |  | 
|  | closedChannel := make(chan bool) | 
|  | close(closedChannel) | 
|  |  | 
|  | var closedWriterChannel chan<- bool | 
|  | closedWriterChannel = closedChannel | 
|  |  | 
|  | success, err = (&BeClosedMatcher{}).Match(closedWriterChannel) | 
|  | Ω(success).Should(BeFalse()) | 
|  | Ω(err).Should(HaveOccurred()) | 
|  |  | 
|  | }) | 
|  | }) | 
|  |  | 
|  | Context("when passed something else", func() { | 
|  | It("should error", func() { | 
|  | var nilChannel chan bool | 
|  |  | 
|  | success, err := (&BeClosedMatcher{}).Match(nilChannel) | 
|  | Ω(success).Should(BeFalse()) | 
|  | Ω(err).Should(HaveOccurred()) | 
|  |  | 
|  | success, err = (&BeClosedMatcher{}).Match(nil) | 
|  | Ω(success).Should(BeFalse()) | 
|  | Ω(err).Should(HaveOccurred()) | 
|  |  | 
|  | success, err = (&BeClosedMatcher{}).Match(7) | 
|  | Ω(success).Should(BeFalse()) | 
|  | Ω(err).Should(HaveOccurred()) | 
|  | }) | 
|  | }) | 
|  | }) |