Expect(err).NotTo(HaveOccurred()) var request *http.Request Eventually(fakeDoppler.TrafficControllerConnected, 10).Should(Receive(&request)) Expect(request.URL.Path).To(Equal("/apps/1234/stream")) currentTime := time.Now().UnixNano() dropsondeMessage := makeDropsondeMessage("Make me Legacy Format", APP_ID, currentTime) fakeDoppler.SendLogMessage(dropsondeMessage) var receivedMessage *logmessage.LogMessage Eventually(messages).Should(Receive(&receivedMessage)) Expect(receivedMessage.GetMessage()).To(BeEquivalentTo("Make me Legacy Format")) Expect(receivedMessage.GetAppId()).To(Equal(APP_ID)) Expect(receivedMessage.GetTimestamp()).To(Equal(currentTime)) legacy_consumer.Close() }) }) Context("Recent", func() { It("returns a multi-part HTTP response with all recent messages", func() { const messageLength = 5 expectedMessages := make([][]byte, messageLength) for i := 0; i < messageLength; i++ { message := makeDropsondeMessage(strconv.Itoa(i), "1234", 1234) expectedMessages[i] = message fakeDoppler.SendLogMessage(message) }
SourceInstance: proto.String("0"), }, } bytes, _ := proto.Marshal(envelope) msg, err := marshaller.TranslateDropsondeToLegacyLogMessage(bytes) Expect(err).To(BeNil()) var legacyMessage logmessage.LogMessage proto.Unmarshal(msg, &legacyMessage) Expect(legacyMessage.GetMessage()).To(Equal(message)) Expect(legacyMessage.GetAppId()).To(Equal("AppId")) Expect(legacyMessage.GetSourceName()).To(Equal("SRC")) Expect(legacyMessage.GetSourceId()).To(Equal("0")) Expect(legacyMessage.GetTimestamp()).To(BeNumerically("==", 1234)) }) It("returns an error if it fails to unmarshall the envelope", func() { junk := []byte{1, 2, 3} msg, err := marshaller.TranslateDropsondeToLegacyLogMessage(junk) Expect(msg).To(BeNil()) Expect(err.Error()).To(ContainSubstring("Unable to unmarshal")) }) It("returns an error if the envelope is of type other than LogMessage", func() { envelope := &events.Envelope{ Origin: proto.String("origin"), EventType: events.Envelope_CounterEvent.Enum(),