BeforeEach(func() { conf, _ := config.DefaultConfig() storeAdapter = fakestoreadapter.New() store = storepackage.NewStore(conf, storeAdapter, fakelogger.NewFakeLogger()) timeProvider = fakeclock.NewFakeClock(time.Unix(100, 0)) metricsAccountant = &fakemetricsaccountant.FakeMetricsAccountant{} metricsServer = New(nil, nil, metricsAccountant, fakelogger.NewFakeLogger(), store, timeProvider, conf) }) Describe("message metrics", func() { BeforeEach(func() { metricsAccountant.GetMetricsReturns(map[string]float64{ "foo": 1, "bar": 2, }, nil) }) Context("when the metrics fetch succesfully", func() { It("should return them", func() { context := metricsServer.Emit() Ω(context.Metrics).Should(ContainElement(instrumentation.Metric{Name: "foo", Value: float64(1.0)})) Ω(context.Metrics).Should(ContainElement(instrumentation.Metric{Name: "bar", Value: float64(2.0)})) }) }) Context("when the metrics fail to fetch", func() { BeforeEach(func() { metricsAccountant.GetMetricsReturns(nil, errors.New("oops")) })