public async Task ListAsync_WithNoSorting_SendsQueryAndReturnsOk()
        {
            // Arrange
            IEnumerable <ViewDriverDto> expectedResult = new ViewDriverDto[] { };
            var mediator = new Mock <IMediator>();

            mediator
            .Setup(m => m.Send(It.Is <ListDriversQuery>(q => q.OrderBy == ListDriversQuery.Sorting.FirstName), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(expectedResult))
            .Verifiable();
            var controller = new DriversController(mediator.Object);

            // Act
            var response = await controller.ListAsync("");

            // Assert
            mediator.Verify();
            Assert.IsType <OkObjectResult>(response.Result);
            Assert.Equal(expectedResult, ((OkObjectResult)response.Result).Value);
        }
        public async Task GetAsync_WithNonExistingGuid_SendsQueryAndReturnsNotFound()
        {
            // Arrange
            var guid           = Guid.NewGuid();
            var expectedResult = new ViewDriverDto {
            };
            var mediator       = new Mock <IMediator>();

            mediator
            .Setup(m => m.Send(It.Is <GetDriverQuery>(q => q.DriverId == guid), It.IsAny <CancellationToken>()))
            .Returns(Task.FromException <ViewDriverDto>(new NotFoundException("Just not found")))
            .Verifiable();
            var controller = new DriversController(mediator.Object);

            // Act
            var response = await controller.GetAsync(guid);

            // Assert
            mediator.Verify();
            Assert.IsType <NotFoundObjectResult>(response.Result);
            Assert.Equal("Just not found", ((NotFoundObjectResult)response.Result).Value);
        }