Ejemplo n.º 1
0
        public IActionResult Get([FromQuery] DateTimeRangeRequestDto dateTimeRange)
        {
            var query  = new DotNetMetricsGetQuery(dateTimeRange);
            var result = _mediator.Send(query);

            return(Ok(result.Result));
        }
        public void DotNetMetricsGetQueryHandlerTest()
        {
            //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 <DotNetMetric> metricsList = new AutoFaker <DotNetMetric>()
                                                             .RuleFor(x => x.DateTime, x => x.Date.BetweenOffset(dateTimeRange.From, dateTimeRange.To))
                                                             .RuleFor(x => x.Something, x => x.Hacker.Phrase())
                                                             .Generate(4).ToList();
            var expected = metricsList.Adapt <IReadOnlyCollection <DotNetMetricResponseDto> >();

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

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

            //Assert
            _repository.Received(1).GetMetricsByTimePeriod(dateTimeRange.From, dateTimeRange.To);
            resultMetricsList.Should().BeEquivalentTo(expected);
        }
        protected override IReadOnlyCollection <DotNetMetricResponseDto> Handle(DotNetMetricsGetQuery request)
        {
            var result = _repository.GetMetricsByTimePeriod(request.DateTimeRange.From, request.DateTimeRange.To);

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