Describe("ReceiveCounter", func() {
		It("returns a non-nil counter", func() {
			Expect(reporter.ReceivedCounter()).NotTo(BeNil())
		})
	})

	Describe("Rate", func() {
		It("reports rate", func() {
			reporter.SentCounter().IncrementValue()
			time.Sleep(time.Second)

			reporter.Stop()
			end := time.Now()

			expectedRate := float64(reporter.SentCounter().GetTotal()) / end.Sub(start).Seconds()
			Eventually(reporter.Rate()).Should(BeNumerically("~", expectedRate, 0.1))
		})
	})

	Describe("Duration", func() {
		It("reports test duration", func() {
			reporter.ReceivedCounter().IncrementValue()
			time.Sleep(time.Second)

			reporter.Stop()
			end := time.Now()

			Eventually(reporter.Duration()).Should(BeNumerically("~", end.Sub(start), time.Second))
		})
	})