public void ProcessRecords_BatchRecordsEndMidBatch_ProcessedProperly()
        {
            var config = new DataCollectorConfiguration {
                MsmqQueueName = "unittest-2-" + DateTime.Now.ToString("u")
            };
            var q = new MsmqRecordRepository(new DatasourceRecordSerializer(), config);

            var dummyData = PushDummyRecords(q, 5);
            var processed = new List <IEnumerable <DatasourceRecord> >();

            q.ProcessRecords(processed.Add, 2);

            Assert.AreEqual(3, processed.Count);

            Assert.AreEqual(2, processed[0].Count());
            Assert.IsTrue(dummyData[0].Equivalent(processed[0].ToArray()[0]));
            Assert.IsTrue(dummyData[1].Equivalent(processed[0].ToArray()[1]));

            Assert.AreEqual(2, processed[1].Count());
            Assert.IsTrue(dummyData[2].Equivalent(processed[1].ToArray()[0]));
            Assert.IsTrue(dummyData[3].Equivalent(processed[1].ToArray()[1]));

            Assert.AreEqual(1, processed[2].Count());
            Assert.IsTrue(dummyData[4].Equivalent(processed[2].ToArray()[0]));
        }
Esempio n. 2
0
        public RandomDatasource(DataCollectorConfiguration configuration)
        {
            _min = (double)configuration.RandomDatasourceMin;
            _max = (double)configuration.RandomDatasourceMax;

            Id       = configuration.RandomDatasourceDeviceID;
            Schedule = configuration.RandomDatasourceSchedule;//configuration.RandomDatasourceIntervalSeconds
        }
        public void ProcessRecords_InvalidBatchSize_RaiseException()
        {
            var config = new DataCollectorConfiguration {
                MsmqQueueName = "unittest-3-" + DateTime.Now.ToString("u")
            };
            var q = new MsmqRecordRepository(new DatasourceRecordSerializer(), config);

            var processed = new List <IEnumerable <DatasourceRecord> >();

            q.ProcessRecords(processed.Add, 0);
        }
        public void ProcessRecords_NoRecords_DontBomb()
        {
            var config = new DataCollectorConfiguration {
                MsmqQueueName = "unittest-3-" + DateTime.Now.ToString("u")
            };
            var q = new MsmqRecordRepository(new DatasourceRecordSerializer(), config);

            var processed = new List <IEnumerable <DatasourceRecord> >();

            q.ProcessRecords(processed.Add, 999);

            Assert.AreEqual(0, processed.Count);
        }
Esempio n. 5
0
        public ItemLoadedDatasource(ITimer timer, DataCollectorConfiguration configuration)
        {
            _timer = timer;

            _variation = configuration.ItemProducedTimeVariation;
            _rate      = configuration.ItemProducedSampleRate;
            _rand      = new Random();
            _maxitems  = configuration.ItemProducedMax;

            _timer.Tick += (sender, args) => StartRead();

            _timer.Change(TimeSpan.Zero, TimeSpan.FromSeconds(_rate)
                          + TimeSpan.FromSeconds((_rand.NextDouble() - 0.5) * _variation));

            Id = configuration.ItemProducedDeviceID;
        }
Esempio n. 6
0
        public void StartRead_CreatesValue()
        {
            var config = new DataCollectorConfiguration
            {
                RandomDatasourceMin = 10,
                RandomDatasourceMax = 20
            };
            var r = new RandomDatasource(config);

            DataReceivedEventArgs <decimal> args = null;

            r.DataReceived += (s, a) => args = a;
            r.StartRead();

            Assert.IsTrue(args.Value > 10);
            Assert.IsTrue(args.Value < 20);
        }
        public void ProcessRecords_RecordsWithoutBatching_ProcessedProperly()
        {
            var config = new DataCollectorConfiguration {
                MsmqQueueName = "unittest-1-" + DateTime.Now.ToString("u")
            };
            var q = new MsmqRecordRepository(new DatasourceRecordSerializer(), config);

            var dummyData = PushDummyRecords(q, 5);
            var processed = new List <IEnumerable <DatasourceRecord> >();

            q.ProcessRecords(processed.Add, 999);

            Assert.AreEqual(1, processed.Count);
            Assert.AreEqual(5, processed[0].Count());
            //Sometimes we do unspeakable things in unit tests
            Assert.IsTrue(dummyData[0].Equivalent(processed[0].ToArray()[0]));
            Assert.IsTrue(dummyData[1].Equivalent(processed[0].ToArray()[1]));
            Assert.IsTrue(dummyData[2].Equivalent(processed[0].ToArray()[2]));
            Assert.IsTrue(dummyData[3].Equivalent(processed[0].ToArray()[3]));
            Assert.IsTrue(dummyData[4].Equivalent(processed[0].ToArray()[4]));
        }
 public CPUDatasource(DataCollectorConfiguration configuration)
 {
     Id       = configuration.CPUDeviceID;
     Schedule = configuration.CPUDeviceSchedule; //configuration.CPUSampleRateSeconds
 }
Esempio n. 9
0
 public ApiHost(DataCollectorConfiguration configuration, IContainer controllerResolver)
 {
     _configuration      = configuration;
     _controllerResolver = controllerResolver;
 }