Пример #1
0
        public void GetMetricsByPercentileFromAgent_ReturnsCorrectMetric()
        {
            //Arrange
            var request = new CpuMetricGetByIntervalForAgentRequest()
            {
                AgentId  = 1,
                FromTime = DateTimeOffset.MinValue,
                ToTime   = DateTimeOffset.Now
            };
            var percentile = Percentile.P90;

            //фейковые метрики возвращаемые репозиторием
            var mockMetrics = new AllMetrics <CpuMetric>();

            mockMetrics.Metrics.Add(new CpuMetric()
            {
                AgentId = 1, Time = DateTimeOffset.MinValue, Value = 100
            });

            mockRepository.
            Setup(repository => repository.GetByTimeIntervalPercentile(
                      It.IsAny <int>(),
                      It.IsAny <DateTimeOffset>(),
                      It.IsAny <DateTimeOffset>(),
                      It.IsAny <Percentile>())).
            Returns(mockMetrics);

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

            // Assert
            Assert.True(CompareMetricsContainers(result, mockMetrics));
        }
        public IActionResult GetMetricsFromAgent([FromRoute] CpuMetricGetByIntervalForAgentRequest request)
        {
            _logger.LogDebug("Вызов метода. Параметры:" +
                             $" {nameof(request.AgentId)} = {request.AgentId}" +
                             $" {nameof(request.FromTime)} = {request.FromTime}" +
                             $" {nameof(request.ToTime)} = {request.ToTime}");

            var metrics = _repository.GetByTimeInterval(request.AgentId, request.FromTime, request.ToTime);

            var response = new AllMetricsResponse <CpuMetricDto>();

            foreach (var metric in metrics.Metrics)
            {
                response.Metrics.Add(_mapper.Map <CpuMetricDto>(metric));
            }

            return(Ok(response));
        }