Exemple #1
0
        public void Read_ReturnsCorrectAgentsInfo()
        {
            //Arrange
            //фейковые данные об агентах
            var mockAgentsInfo = new AllAgentsInfo();

            mockAgentsInfo.Agents.Add(new AgentInfo()
            {
                AgentId = 1, AgentUri = "url1"
            });
            mockAgentsInfo.Agents.Add(new AgentInfo()
            {
                AgentId = 2, AgentUri = "url2"
            });

            mockAgentsRepository.
            Setup(repository => repository.GetAllAgentsInfo()).
            Returns(mockAgentsInfo);

            //Act
            var result = controller.Read();

            var responseMetrics = ((result as OkObjectResult).Value as AllAgentsInfoResponse);

            bool check = true;

            if (mockAgentsInfo.Agents.Count == responseMetrics.Agents.Count)
            {
                for (int i = 0; i < mockAgentsInfo.Agents.Count; i++)
                {
                    if ((mockAgentsInfo.Agents[i].AgentId != responseMetrics.Agents[i].AgentId) ||
                        (mockAgentsInfo.Agents[i].AgentUri != responseMetrics.Agents[i].AgentUri))
                    {
                        check = false;                        //Если хоть одоин элемент в любой паре метрик не совпадает - проверка провалена
                    }
                }
            }
            else            //Если длина контейнеров не совпадает - проверка провалена
            {
                check = false;
            }

            // Assert
            Assert.True(check);
        }
Exemple #2
0
        public AllAgentsInfo GetAllAgentsInfo()
        {
            var agentsInfo = new AllAgentsInfo();

            using (var connection = new SQLiteConnection(mySql.ConnectionString))
            {
                try
                {
                    agentsInfo.Agents = connection.Query <AgentInfo>(
                        "SELECT * " +
                        $"FROM {mySql.AgentsTable} ").ToList();
                }
                catch (Exception ex)
                {
                    _logger.LogDebug(ex.Message);
                }
            }

            return(agentsInfo);
        }
Exemple #3
0
        public void GetMetricsByPercentileFromAllCluster_ReturnsOk()
        {
            //Arrange
            var request = new DotNetMetricGetByIntervalForClusterRequest()
            {
                FromTime = DateTimeOffset.MinValue,
                ToTime   = DateTimeOffset.Now
            };
            var percentile = Percentile.P95;

            //фейковые данные об агентах
            var mockAgentsInfo = new AllAgentsInfo();

            mockAgentsInfo.Agents.Add(new AgentInfo()
            {
                AgentId = 1, AgentUri = "url1"
            });
            mockAgentsInfo.Agents.Add(new AgentInfo()
            {
                AgentId = 2, AgentUri = "url2"
            });

            mockAgentsRepository.
            Setup(repository => repository.GetAllAgentsInfo()).
            Returns(mockAgentsInfo);

            //фейковые метрики возвращаемые репозиторием для всех агентов
            var mockMetrics = new AllMetrics <DotNetMetric>();

            mockMetrics.Metrics.Add(new DotNetMetric()
            {
                AgentId = 1, Time = DateTimeOffset.MinValue, Value = 100
            });
            mockMetrics.Metrics.Add(new DotNetMetric()
            {
                AgentId = 2, Time = DateTimeOffset.UtcNow, Value = 122
            });

            //фейковые метрики возвращаемые репозиторием для первого агента
            var mockMetricsForAgent_1 = new AllMetrics <DotNetMetric>();

            mockMetricsForAgent_1.Metrics.Add(mockMetrics.Metrics[0]);
            //фейковые метрики возвращаемые репозиторием для второго агента
            var mockMetricsForAgent_2 = new AllMetrics <DotNetMetric>();

            mockMetricsForAgent_2.Metrics.Add(mockMetrics.Metrics[1]);

            mockRepository.
            Setup(repository => repository.GetByTimeIntervalPercentile(
                      It.Is <int>(agentId => agentId == 1),
                      It.IsAny <DateTimeOffset>(),
                      It.IsAny <DateTimeOffset>(),
                      It.IsAny <Percentile>())).
            Returns(mockMetricsForAgent_1);
            mockRepository.
            Setup(repository => repository.GetByTimeIntervalPercentile(
                      It.Is <int>(agentId => agentId == 2),
                      It.IsAny <DateTimeOffset>(),
                      It.IsAny <DateTimeOffset>(),
                      It.IsAny <Percentile>())).
            Returns(mockMetricsForAgent_2);

            //Act
            var result = controller.GetMetricsByPercentileFromAllCluster(request, percentile);

            // Assert
            Assert.True(CompareMetricsContainers(result, mockMetrics));
        }