Example #1
0
        public IActionResult Get([FromQuery] DateTimeRangeRequestDto dateTimeRange)
        {
            var query  = new HardDriveMetricsGetQuery(dateTimeRange);
            var result = _mediator.Send(query);

            return(Ok(result.Result));
        }
Example #2
0
        public void HardDriveMetricsGetQueryHandlerTest()
        {
            //Arrange
            var dateTimeRange = new AutoFaker <DateTimeRangeRequestDto>()
                                .RuleFor(x => x.From, f => f.Date.RecentOffset(5))
                                .RuleFor(x => x.To, f => f.Date.SoonOffset(5))
                                .Generate();

            IReadOnlyCollection <HardDriveMetric> metricsList = new AutoFaker <HardDriveMetric>()
                                                                .RuleFor(x => x.DateTime, x => x.Date.BetweenOffset(dateTimeRange.From, dateTimeRange.To))
                                                                .RuleFor(x => x.Something, x => x.Random.Int(0))
                                                                .Generate(4).ToList();
            var expected = metricsList.Adapt <IReadOnlyCollection <HardDriveMetricResponseDto> >();

            _repository.GetMetricsByTimePeriod(Arg.Any <DateTimeOffset>(), Arg.Any <DateTimeOffset>()).Returns(metricsList);
            var query = new HardDriveMetricsGetQuery(dateTimeRange);

            //Act
            var resultMetricsList = base.Handle(query);

            //Assert
            _repository.Received(1).GetMetricsByTimePeriod(dateTimeRange.From, dateTimeRange.To);
            resultMetricsList.Should().BeEquivalentTo(expected);
        }
Example #3
0
        protected override IReadOnlyCollection <HardDriveMetricResponseDto> Handle(HardDriveMetricsGetQuery request)
        {
            var result = _repository.GetMetricsByTimePeriod(request.DateTimeRange.From, request.DateTimeRange.To);

            return(result.Adapt <IReadOnlyCollection <HardDriveMetricResponseDto> >());
        }