Expect(getHeartbeatEvent(instrumentedEmitter).GetReceivedCount()).To(BeNumerically("==", 1))
		})
		Context("when the concrete ByteEmitter returns no error on Emit()", func() {
			It("increments the SentMetricsCounter", func() {
				Expect(getHeartbeatEvent(instrumentedEmitter).GetSentCount()).To(BeNumerically("==", 0))

				err := instrumentedEmitter.Emit(testData)
				Expect(err).ToNot(HaveOccurred())

				Expect(getHeartbeatEvent(instrumentedEmitter).GetSentCount()).To(BeNumerically("==", 1))
			})
		})
		Context("when the concrete ByteEmitter returns an error on Emit()", func() {
			BeforeEach(func() {
				fakeEmitter.ReturnError = errors.New("fake error")
			})
			It("increments the ErrorCounter", func() {
				Expect(getHeartbeatEvent(instrumentedEmitter).GetErrorCount()).To(BeNumerically("==", 0))
				Expect(getHeartbeatEvent(instrumentedEmitter).GetReceivedCount()).To(BeNumerically("==", 0))
				Expect(getHeartbeatEvent(instrumentedEmitter).GetSentCount()).To(BeNumerically("==", 0))

				err := instrumentedEmitter.Emit(testData)
				Expect(err).To(HaveOccurred())

				Expect(getHeartbeatEvent(instrumentedEmitter).GetErrorCount()).To(BeNumerically("==", 1))
				Expect(getHeartbeatEvent(instrumentedEmitter).GetReceivedCount()).To(BeNumerically("==", 1))
				Expect(getHeartbeatEvent(instrumentedEmitter).GetSentCount()).To(BeNumerically("==", 0))
			})
		})
	})