It("marshals envelopes into bytes", func() { envelope := &events.Envelope{ Origin: proto.String("fake-origin-3"), EventType: events.Envelope_Heartbeat.Enum(), Heartbeat: factories.NewHeartbeat(1, 2, 3), } message, _ := proto.Marshal(envelope) inputChan <- envelope outputMessage := <-outputChan Expect(outputMessage).To(Equal(message)) }) Context("metrics", func() { It("emits the correct metrics context", func() { Expect(marshaller.Emit().Name).To(Equal("dropsondeMarshaller")) }) It("emits a heartbeat counter", func() { envelope := &events.Envelope{ Origin: proto.String("fake-origin-3"), EventType: events.Envelope_Heartbeat.Enum(), Heartbeat: factories.NewHeartbeat(1, 2, 3), } inputChan <- envelope testhelpers.EventuallyExpectMetric(marshaller, "heartbeatMarshalled", 1) }) It("emits a marshal error counter", func() { envelope := &events.Envelope{}