Ejemplo n.º 1
0
        public void Process_WithTwoReadingsWithSameNameButDifferentReadingDataNames_SendsOneDataPointToSubscribersWithTwoReadingDataValues()
        {
            IList <FeatureStatistics> passedDataPoints = null;

            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) =>
            {
                passedDataPoints = dataPoints;
            }));
            ReadingPublisher.PublishReading(new Reading {
                FeatureName = "DataPointName", Data = new Int32ReadingData(1)
                {
                    Name = "Number"
                }
            });
            ReadingPublisher.PublishReading(new Reading {
                FeatureName = "DataPointName", Data = new Int32ReadingData(1)
                {
                    Name = "Error"
                }
            });

            ReadingPublisher.Start(100, false);
            ReadingPublisher.Process();

            FeatureStatistics dataPoint = passedDataPoints.First();

            Assert.That(dataPoint.Readings.Count, Is.EqualTo(2));
            Assert.That(dataPoint.Readings.First().Name, Is.EqualTo("Number"));
            Assert.That(dataPoint.Readings.Last().Name, Is.EqualTo("Error"));
        }
Ejemplo n.º 2
0
        public void Process_WithTwoReadingsWithSameNameButDifferentGroups_CreatesTwoFeatureStatsWithSameNamesButDifferentGroups()
        {
            IList <FeatureStatistics> featureStats = null;

            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) =>
            {
                featureStats = dataPoints;
            }));
            string group1      = "Group1";
            string group2      = "Group2";
            string featureName = "featureName";

            ReadingPublisher.PublishReading(new Reading {
                FeatureName = featureName, FeatureGroup = group1, Data = new Int32ReadingData(1)
                {
                    Name = "Number"
                }
            });
            ReadingPublisher.PublishReading(new Reading {
                FeatureName = featureName, FeatureGroup = group2, Data = new Int32ReadingData(1)
                {
                    Name = "Error"
                }
            });

            ReadingPublisher.Start(100, false);
            ReadingPublisher.Process();

            Assert.That(featureStats.Count, Is.EqualTo(2));

            Assert.That(featureStats.First().Name, Is.EqualTo(featureStats.Last().Name));
            Assert.That(featureStats.First().Group, Is.EqualTo(group1));
            Assert.That(featureStats.Last().Group, Is.EqualTo(group2));
        }
Ejemplo n.º 3
0
        public void Add_AddsReadingToMonitor()
        {
            var reading = GetReading();

            ReadingPublisher.PublishReading(reading);

            Assert.AreEqual(1, ReadingPublisher.Readings.Count);
        }
Ejemplo n.º 4
0
        public void Reset_ClearsAllSubscribers()
        {
            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) => Console.Write("Subscriber")));

            Assert.That(ReadingPublisher.Subscribers, Is.Not.Empty);

            ReadingPublisher.Reset();
            Assert.That(ReadingPublisher.Subscribers, Is.Empty);
        }
 public void Setup()
 {
     _dataPoints = new List <FeatureStatistics>();
     ReadingPublisher.Start(100, false);
     ReadingPublisher.Subscribe(GetSubscriber((dp)
                                              =>
                                              _dataPoints.AddRange(dp)
                                              ));
 }
Ejemplo n.º 6
0
        public void Process_ClearsReadingsFromReadingsQueue()
        {
            ReadingPublisher.PublishReading(GetReading());
            ReadingPublisher.PublishReading(GetReading());

            ReadingPublisher.Process();

            Assert.That(ReadingPublisher.Readings.Count, Is.EqualTo(0));
        }
        public void Process_With2ReadingsWithDifferentNames_PassesOnTwoSeparateDataPointsToSubscribers()
        {
            ReadingPublisher.PublishReading(GetNumberReading("test", 1));
            ReadingPublisher.PublishReading(GetNumberReading("test1", 1));

            ReadingPublisher.Process();

            Assert.That(_dataPoints.Count, Is.EqualTo(2));
        }
Ejemplo n.º 8
0
        public void Reset_ClearsAllMonitorReadings()
        {
            var reading = GetReading();

            ReadingPublisher.PublishReading(reading);

            ReadingPublisher.Reset();

            Assert.That(ReadingPublisher.Readings.Count, Is.EqualTo(0));
        }
        public void Process_WithMultipleReadings_PassesOnOneDataPointWithCombinedDataToSubscribers()
        {
            string readingName = "test";

            ReadingPublisher.PublishReading(GetNumberReading(readingName, 1));
            ReadingPublisher.PublishReading(GetNumberReading(readingName, 1));

            ReadingPublisher.Process();

            Assert.That(_dataPoints.Count, Is.EqualTo(1));
            Assert.That(_dataPoints.First().Readings.First().GetValue(), Is.EqualTo(2));
        }
        public void Process_WithMultipleReadings_CombinesTheReadingsIntoDataPoint()
        {
            string readingName = "test";

            ReadingPublisher.PublishReading(GetNumberReading(readingName, 1));
            ReadingPublisher.PublishReading(GetNumberReading(readingName, 1));

            ReadingPublisher.Process();

            Assert.That(_dataPoints.Count, Is.EqualTo(1));
            Assert.That(_dataPoints.First().Name, Is.EqualTo(readingName));
        }
Ejemplo n.º 11
0
        public void Process_WithNoReadings_PassesAnEmptyListOfDataPointsToAllSubscribers()
        {
            IList <FeatureStatistics> passedDataPoints = null;

            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) =>
            {
                passedDataPoints = dataPoints;
            }));

            ReadingPublisher.Process();

            Assert.That(passedDataPoints, Is.Empty);
        }
Ejemplo n.º 12
0
        public void Process_CallsAllSubsribers()
        {
            bool sub1called = false;
            bool sub2called = false;

            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) => sub1called = true));
            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) => sub2called = true));

            ReadingPublisher.Process();

            Assert.That(sub1called, Is.True);
            Assert.That(sub2called, Is.True);
        }
Ejemplo n.º 13
0
        protected void AddReading(ReadingData data)
        {
            if (string.IsNullOrEmpty(data.Name))
            {
                data.Name = ReadingName;
            }

            FeatureDescriptor descriptor = GetFeatureDescriptor();
            var newReading = new Reading {
                FeatureName = descriptor.Name, FeatureGroup = descriptor.Group, Data = data
            };

            ReadingPublisher.PublishReading(newReading);
        }
Ejemplo n.º 14
0
        public void Process_WhenASubscriberFailsStillNotifiesTheRestOfTheSubscribers()
        {
            bool sub2called = false;

            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) =>
            {
                throw new Exception("Subscriber failed");
            }));
            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) => sub2called = true));

            ReadingPublisher.Process();

            Assert.That(sub2called, Is.True);
        }
Ejemplo n.º 15
0
        public void Initialise_100MsForProcessTime_StartsATimeThatCallsAfter100ms()
        {
            bool processed = false;

            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) =>
            {
                processed = true;
            }));

            ReadingPublisher.Start(100);

            Thread.Sleep(300);

            Assert.That(processed, Is.True);
        }
Ejemplo n.º 16
0
        public void Shutdown_StopsEnsuresProcessIsNotCalledAgain()
        {
            bool processed = false;

            Console.Write("Monitor Subscribers: " + ReadingPublisher.Subscribers.Count);
            Console.Write("processed: " + processed);
            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) =>
            {
                processed = true;
            }));

            ReadingPublisher.Start(100);
            ReadingPublisher.Stop();
            Thread.Sleep(150);

            Assert.That(processed, Is.False);
        }
Ejemplo n.º 17
0
        public void Process_WithAReading_SendsOneDataPointWithCurrentDate()
        {
            IList <FeatureStatistics> passedDataPoints = null;

            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) =>
            {
                passedDataPoints = dataPoints;
            }));
            ReadingPublisher.PublishReading(new Reading {
                FeatureName = "DataPointName", Data = new Int32ReadingData(1)
                {
                    Name = "Number"
                }
            });

            ReadingPublisher.Start(100, false);
            ReadingPublisher.Process();

            Assert.That(passedDataPoints.First().Timestamp - DateTime.Now, Is.LessThan(TimeSpan.FromSeconds(1)));
        }
Ejemplo n.º 18
0
        public void Process_WithAReading_CreatedFeatureWithCorrectGroup()
        {
            IList <FeatureStatistics> featurestats = null;

            ReadingPublisher.Subscribe(GetSubscriber((stats) =>
            {
                featurestats = stats;
            }));

            string group = "Group";

            ReadingPublisher.PublishReading(new Reading {
                FeatureName = "DataPointName", FeatureGroup = group, Data = new Int32ReadingData(1)
                {
                    Name = "Number"
                }
            });

            ReadingPublisher.Start(100, false);
            ReadingPublisher.Process();

            Assert.That(featurestats.First().Group, Is.EqualTo(group));
        }
 public void Subscribe()
 {
     ReadingPublisher.Subscribe(new ReadingSubscriber("ServerDensity", ProcessStats));
 }
Ejemplo n.º 20
0
 public static void Shutdown()
 {
     ReadingPublisher.Stop();
 }
Ejemplo n.º 21
0
        public static void Subscribe(string name, Action <IList <FeatureStatistics> > dataAction)
        {
            var subscriber = new ReadingSubscriber(name, dataAction);

            ReadingPublisher.Subscribe(subscriber);
        }
Ejemplo n.º 22
0
 public static void Initialise(GlobalFilterCollection filters, string featureName = null, string groupName = null)
 {
     filters.Add(new NotificationFilter(featureName, groupName));
     ReadingPublisher.Start((int)TimeSpan.FromMinutes(1).TotalMilliseconds);
 }
 public static void Subscribe()
 {
     ReadingPublisher.Subscribe(new ReadingSubscriber(typeof(LoggingSubscriber).Name, ProcessStats));
 }
Ejemplo n.º 24
0
 public void Teardown()
 {
     CountSensor.SetThreadScopedFeatureName(null);
     ReadingPublisher.Reset();
 }
Ejemplo n.º 25
0
        public void Subscribe_RegistersSubscribesToTheMonitor()
        {
            ReadingPublisher.Subscribe(GetSubscriber((dataPoints) => Console.Write("Subscribed")));

            Assert.That(ReadingPublisher.Subscribers.Count, Is.EqualTo(1));
        }
Ejemplo n.º 26
0
 public void Teardown()
 {
     ReadingPublisher.Reset();
 }
Ejemplo n.º 27
0
 public void TearDown()
 {
     SensorBase.SetThreadScopedFeatureName(null);
     ReadingPublisher.Reset();
 }
Ejemplo n.º 28
0
 public void Setup()
 {
     ReadingPublisher.Start(1000, false);
 }