Describe("Delegators", func() { It("delegates Close() to the concreteEmitter", func() { instrumentedEmitter.Close() Eventually(fakeEmitter.IsClosed).Should(BeTrue()) }) }) Describe("Emit()", func() { var testData = []byte("hello") It("calls the concrete emitter", func() { Expect(fakeEmitter.Messages).To(HaveLen(0)) err := instrumentedEmitter.Emit(testData) Expect(err).ToNot(HaveOccurred()) Expect(fakeEmitter.Messages).To(HaveLen(1)) Expect(fakeEmitter.Messages[0]).To(Equal(testData)) }) It("increments the ReceivedMetricsCounter", func() { Expect(getHeartbeatEvent(instrumentedEmitter).GetReceivedCount()).To(BeNumerically("==", 0)) err := instrumentedEmitter.Emit(testData) Expect(err).ToNot(HaveOccurred()) Expect(getHeartbeatEvent(instrumentedEmitter).GetReceivedCount()).To(BeNumerically("==", 1)) }) Context("when the concrete ByteEmitter returns no error on Emit()", func() { It("increments the SentMetricsCounter", func() {