예제 #1
0
 public NodeStats(ILogger <NodeStats> logger, IProcessNodeStatistics processor, KongoOptions opts, KongoStatusModel kongoStatus)
 {
     _logger      = logger;
     _httpClient  = new HttpClient();
     _processor   = processor;
     _sb          = new StringBuilder();
     _opts        = opts;
     _kongoStatus = kongoStatus;
 }
        public void InvalidNodeStatisticStream_Throws_ArgumentException(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new NodeStatisticsProcessor(storage, opts);
            storage.Database.EnsureDeleted();
            Assert.ThrowsAsync <ArgumentException>(() => _processor.ProcessNodeStatistics(value));
        }
        public async Task ProcessValidNodeStatisticStream(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new NodeStatisticsProcessor(storage, opts);
            var nodeStats = await _processor.ProcessNodeStatistics(value);

            storage.Database.EnsureDeleted();
            Assert.True(nodeStats != null, "nodeStats == null");
            Assert.True(nodeStats.BlockRecvCnt > 0, $"BlockRecvCnt = {nodeStats.BlockRecvCnt}");
            Assert.True(nodeStats.LastBlockTime != default, $"LastBlockTime = {nodeStats.LastBlockTime}");
        }