BeforeEach(func() {
			errorChan = make(chan error, 10)
			finishedChan = make(chan struct{})
			incomingChan = make(chan *events.Envelope)
		})

		AfterEach(func() {
			close(messagesToSend)
			<-finishedChan
		})

		perform := func() {
			connection = noaa.NewConsumer(endpoint, tlsSettings, consumerProxyFunc)

			go func() {
				errorChan <- connection.StreamWithoutReconnect(appGuid, authToken, incomingChan)
				close(finishedChan)
			}()
		}

		It("connects using valid URL to running consumerProxyFunc server", func() {
			messagesToSend <- marshalMessage(createMessage("hello", 0))
			perform()

			message := <-incomingChan

			Expect(message.GetLogMessage().GetMessage()).To(Equal([]byte("hello")))
		})

		It("connects using valid URL to a stopped consumerProxyFunc server", func() {
			testProxyServer.Close()
Example #2
0
			Eventually(errorChan).Should(BeClosed())
			Consistently(fakeHandler.wasCalled, 2).Should(BeFalse())
			Eventually(doneChan, 5).Should(BeClosed())
		})
	})

	Describe("StreamWithoutReconnect", func() {
		var incomingChan chan *events.Envelope
		var streamErrorChan chan error
		var finishedChan chan struct{}

		perform := func() {
			streamErrorChan = make(chan error, 10)
			cnsmr = noaa.NewConsumer(trafficControllerUrl, tlsSettings, consumerProxyFunc)
			go func() {
				streamErrorChan <- cnsmr.StreamWithoutReconnect(appGuid, authToken, incomingChan)
				close(finishedChan)
			}()
		}

		BeforeEach(func() {
			incomingChan = make(chan *events.Envelope)
			finishedChan = make(chan struct{})
			startFakeTrafficController()
		})

		AfterEach(func() {
			cnsmr.Close()
			<-finishedChan
		})