Expect(fakeCipher.DecodeStrings[0]).To(Equal("SOMECMD :some.server\r\n")) }) Context("with recipients", func() { var ( msg *message.Message msgCh chan *message.Message ) BeforeEach(func() { msgCh = make(chan *message.Message) forwarder.MsgChs["SOMECMD"] = []chan *message.Message{msgCh} msg = &message.Message{ Command: "SOMECMD", Params: "some.server", } fakeCipher.DecodeMessages = []*message.Message{msg, msg} }) It("sends the decoded message on each of the appropriate channels", func() { rdStrCh <- "" forwarder.StartForwarding(fakeReader, fakeCipher) Eventually(msgCh).Should(Receive(Equal(msg))) }) It("works with multiple recipients", func() { secondCh := make(chan *message.Message) forwarder.MsgChs["SOMECMD"] = append(forwarder.MsgChs["SOMECMD"], secondCh) rdStrCh <- "" forwarder.StartForwarding(fakeReader, fakeCipher) Eventually(msgCh).Should(Receive(Equal(msg)))