writer = mocks.MockByteArrayWriter{} reader = networkreader.New(address, "networkReader", &writer, loggertesthelper.Logger()) }) Context("without a running listener", func() { It("Emit returns a context with the given name", func() { context := reader.Emit() Expect(context.Name).To(Equal("networkReader")) }) }) Context("with a reader running", func() { BeforeEach(func() { loggertesthelper.TestLoggerSink.Clear() go reader.Start() expectedLog := fmt.Sprintf("Listening on port %s", address) Eventually(loggertesthelper.TestLoggerSink.LogContents).Should(ContainSubstring(expectedLog)) }) AfterEach(func() { reader.Stop() }) It("sends data recieved on UDP socket to its writer", func() { expectedData := "Some Data" otherData := "More stuff" connection, err := net.Dial("udp", address)
port = 3456 + GinkgoParallelNode() address = net.JoinHostPort("127.0.0.1", strconv.Itoa(port)) writer = mocks.MockByteArrayWriter{} reader = networkreader.New(address, "networkReader", &writer, loggertesthelper.Logger()) readerStopped = make(chan struct{}) }) Context("with a reader running", func() { BeforeEach(func() { loggertesthelper.TestLoggerSink.Clear() fakeMetricSender = fake.NewFakeMetricSender() metricBatcher := metricbatcher.New(fakeMetricSender, time.Millisecond) metrics.Initialize(fakeMetricSender, metricBatcher) go func() { reader.Start() close(readerStopped) }() expectedLog := fmt.Sprintf("Listening on port %s", address) Eventually(loggertesthelper.TestLoggerSink.LogContents).Should(ContainSubstring(expectedLog)) }) AfterEach(func() { reader.Stop() <-readerStopped }) It("sends data recieved on UDP socket to its writer", func() { expectedData := "Some Data" otherData := "More stuff"
var ( writer *fakeWriter dropsondeReader *networkreader.NetworkReader ) BeforeEach(func() { logger := loggertesthelper.Logger() writer = &fakeWriter{} mockBatcher := newMockEventBatcher() mockChainer := newMockBatchCounterChainer() testhelpers.AlwaysReturn(mockBatcher.BatchCounterOutput, mockChainer) testhelpers.AlwaysReturn(mockChainer.SetTagOutput, mockChainer) var err error dropsondeUnmarshaller := eventunmarshaller.New(writer, mockBatcher, logger) dropsondeReader, err = networkreader.New("127.0.0.1:37474", "dropsondeAgentListener", dropsondeUnmarshaller, logger) Expect(err).NotTo(HaveOccurred()) }) Context("LinuxFileDescriptor", func() { It("sends open file descriptor metrics", func() { defer dropsondeReader.Stop() go dropsondeReader.Start() Eventually(func() uint64 { return atomic.LoadUint64(&writer.openFileDescriptors) }, 3).Should(BeNumerically("~", 15, 3)) }) }) })