public async Task GetListReturnsOkResultWhenSuccessAnswerAsync()
        {
            // Arrange
            var appEntities = new List <Geo>();
            var apiEntities = new List <ApiGeo>();

            appEntities.AddRange(Enumerable.Range(0, 5)
                                 .Select(x => new Geo()
            {
                Id = x.ToString()
            }));
            var query = new ApiGeoListQuery();

            apiEntities.AddRange(Enumerable.Range(0, 5)
                                 .Select(x => new ApiGeo()
            {
                Id = x.ToString()
            }));
            var expectedAnswer = new ApiList <ApiGeo>()
            {
                TotalCount = apiEntities.Count
            };

            expectedAnswer.Entities.AddRange(apiEntities);
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <GeoListQuery>(),
                                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(
                new ListResponse <Geo>(appEntities, appEntities.Count))
            .Verifiable("Query was not sent.");
            var controller = BuildController(mediator);

            // Act
            var answer = await controller.Get(query);

            // Assert
            Assert.IsType <OkObjectResult>(answer);
            Assert.Equal(expectedAnswer.Entities.Select(x => x.Id),
                         (((OkObjectResult)answer).Value as ApiList <ApiGeo>)
                         .Entities.Select(x => x.Id));
            mediator.Verify(x => x.Send(It.IsAny <GeoListQuery>(),
                                        It.IsAny <CancellationToken>()));
        }
        public async Task GetListReturnsBadResultWhenNotSuccessAnswerAsync()
        {
            // Arrange
            var query    = new ApiGeoListQuery();
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <GeoListQuery>(),
                                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(
                new ListResponse <Geo>(new string[] { "Error answer" }))
            .Verifiable("Query was not sent.");
            var controller = BuildController(mediator);

            // Act
            var answer = await controller.Get(query);

            // Assert
            Assert.IsType <BadRequestResult>(answer);
            mediator.Verify(x => x.Send(It.IsAny <GeoListQuery>(),
                                        It.IsAny <CancellationToken>()));
        }