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>())); }