public async void GetRideMetrics_Should_Return_Not_Found_Result_If_Data_Not_Found()
        {
            var mediatorMock = new Mock <IMediator>();
            var loggerMock   = new Mock <ILogger>();

            mediatorMock
            .Setup(x => x.Send(It.IsAny <GetRideMetricsByPeriodSelectionQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new QueryResult <RideMetrics>()
            {
                Type = QueryResultTypeEnum.NotFound
            });
            var controller = new RideController(
                loggerMock.Object,
                mediatorMock.Object
                );

            var response = await controller.GetRideMetrics(PeriodSelectionEnum.AllTime);

            Assert.IsType <NotFoundResult>(response.Result);
        }
        public async void GetRideMetrics_Should_Return_Ok_Result()
        {
            var mediatorMock = new Mock <IMediator>();
            var loggerMock   = new Mock <ILogger>();

            mediatorMock
            .Setup(x => x.Send(It.IsAny <GetRideMetricsByPeriodSelectionQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new QueryResult <RideMetrics>()
            {
                Type = QueryResultTypeEnum.Success
            });
            var controller = new RideController(
                loggerMock.Object,
                mediatorMock.Object
                );

            var response = await controller.GetRideMetrics(PeriodSelectionEnum.AllTime);

            Assert.IsType <OkObjectResult>(response.Result);
            mediatorMock.Verify(x => x.Send(It.IsAny <GetRideMetricsByPeriodSelectionQuery>(), It.IsAny <CancellationToken>()), Times.Once());
        }