BeforeEach(func() { conf, _ := config.DefaultConfig() storeAdapter = fakestoreadapter.New() store = storepackage.NewStore(conf, storeAdapter, fakelogger.NewFakeLogger()) timeProvider = &faketimeprovider.FakeTimeProvider{TimeToProvide: time.Unix(100, 0)} metricsAccountant = fakemetricsaccountant.New() metricsServer = New(nil, nil, metricsAccountant, fakelogger.NewFakeLogger(), store, timeProvider, conf) }) Describe("message metrics", func() { BeforeEach(func() { metricsAccountant.GetMetricsMetrics = map[string]float64{ "foo": 1, "bar": 2, } }) 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.GetMetricsError = errors.New("oops") })