unmarshaller = eventunmarshaller.New(mockWriter, loggertesthelper.Logger()) event = &events.Envelope{ Origin: proto.String("fake-origin-3"), EventType: events.Envelope_ValueMetric.Enum(), ValueMetric: factories.NewValueMetric("value-name", 1.0, "units"), } message, _ = proto.Marshal(event) fakeSender = fake.NewFakeMetricSender() metricBatcher := metricbatcher.New(fakeSender, time.Millisecond) metrics.Initialize(fakeSender, metricBatcher) }) Context("UnmarshallMessage", func() { It("unmarshalls bytes", func() { output, _ := unmarshaller.UnmarshallMessage(message) Expect(output).To(Equal(event)) }) It("handles bad input gracefully", func() { output, err := unmarshaller.UnmarshallMessage(make([]byte, 4)) Expect(output).To(BeNil()) Expect(err).To(HaveOccurred()) }) It("doesn't write unknown event types", func() { unknownEventTypeMessage := &events.Envelope{ Origin: proto.String("fake-origin-2"), EventType: events.Envelope_EventType(2000).Enum(), ValueMetric: &events.ValueMetric{
mockWriter = &mocks.MockEnvelopeWriter{} unmarshaller = eventunmarshaller.New(mockWriter, loggertesthelper.Logger()) event = &events.Envelope{ Origin: proto.String("fake-origin-3"), EventType: events.Envelope_ValueMetric.Enum(), ValueMetric: factories.NewValueMetric("value-name", 1.0, "units"), } message, _ = proto.Marshal(event) fakeEventEmitter.Reset() metricBatcher.Reset() }) Context("UnmarshallMessage", func() { It("unmarshalls bytes", func() { output, _ := unmarshaller.UnmarshallMessage(message) Expect(output).To(Equal(event)) }) It("handles bad input gracefully", func() { output, err := unmarshaller.UnmarshallMessage(make([]byte, 4)) Expect(output).To(BeNil()) Expect(err).To(HaveOccurred()) }) }) Context("Write", func() { It("unmarshalls byte arrays and writes to an EnvelopeWriter", func() { unmarshaller.Write(message)