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