"os" "sync" ) // these tests need to be invoked individually from an external script, // since environment variables need to be set/unset before starting the tests var _ = Describe("Autowire End-to-End", func() { Context("with DROPSONDE_ORIGIN set", func() { var oldEnv string BeforeEach(func() { oldEnv = os.Getenv("DROPSONDE_ORIGIN") os.Setenv("DROPSONDE_ORIGIN", "test-origin") emitter, _ := autowire.CreateDefaultEmitter() autowire.Initialize(emitter) metrics.Initialize(metric_sender.NewMetricSender(autowire.AutowiredEmitter())) }) AfterEach(func() { os.Setenv("DROPSONDE_ORIGIN", oldEnv) }) It("emits HTTP client/server events and heartbeats", func() { udpListener, err := net.ListenPacket("udp4", ":3457") Expect(err).ToNot(HaveOccurred()) defer udpListener.Close() udpDataChan := make(chan []byte, 16) receivedEvents := make(map[string]bool) lock := sync.RWMutex{} origin := os.Getenv("DROPSONDE_ORIGIN")
package metrics_test import ( "github.com/cloudfoundry/dropsonde/autowire/metrics" "github.com/cloudfoundry/dropsonde/metric_sender/fake" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Metrics", func() { var fakeMetricSender *fake.FakeMetricSender BeforeEach(func() { fakeMetricSender = fake.NewFakeMetricSender() metrics.Initialize(fakeMetricSender) }) It("delegates SendValue", func() { metrics.SendValue("metric", 42.42, "answers") Expect(fakeMetricSender.GetValue("metric").Value).To(Equal(42.42)) Expect(fakeMetricSender.GetValue("metric").Unit).To(Equal("answers")) }) It("delegates IncrementCounter", func() { metrics.IncrementCounter("count") Expect(fakeMetricSender.GetCounter("count")).To(BeEquivalentTo(1)) metrics.IncrementCounter("count")