public async Task GetStatesAsync_Should_Return_OkObjectResult_With_CollectionResponse_With_StateResponses() { var getStatesRequest = new GetStatesRequest { Page = 1, PageSize = 100, Name = "Name", PolishName = "PolishName", Sort = "name:asc" }; var getStatesInputQuery = new GetStatesInputQuery(getStatesRequest.Page, getStatesRequest.PageSize, getStatesRequest.Sort, getStatesRequest.Name, getStatesRequest.PolishName); var stateOutputQuery = new StateOutputQuery(Guid.NewGuid(), Array.Empty <byte>(), "Name", "PolishName"); var stateOutputQueries = new Collection <StateOutputQuery> { stateOutputQuery }; var collectionOutputQuery = new CollectionOutputQuery <StateOutputQuery>(stateOutputQueries.Count, stateOutputQueries); var stateResponses = stateOutputQueries.Select(x => new StateResponse(x.Id, x.RowVersion, x.Name, x.PolishName)); var collectionResponse = new CollectionResponse <StateResponse>(stateOutputQueries.Count, stateResponses); _mapperMock.Setup(x => x.Map <GetStatesRequest, GetStatesInputQuery>(It.IsAny <GetStatesRequest>())) .Returns(getStatesInputQuery); _getStatesQueryHandlerMock .Setup(x => x.HandleAsync(It.IsAny <GetStatesInputQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(collectionOutputQuery); _mapperMock .Setup(x => x.Map <CollectionOutputQuery <StateOutputQuery>, CollectionResponse <StateResponse> >(It.IsAny <CollectionOutputQuery <StateOutputQuery> >())) .Returns(collectionResponse); var result = await _controller.GetStatesAsync(getStatesRequest); var okResult = result.As <OkObjectResult>(); okResult.Value.Should().BeEquivalentTo(collectionResponse); }
public async Task HandleAsync_Should_Return_CollectionOutputQuery_With_StateOutputQuery_When_Input_Is_Not_Null() { var getStatesInputQuery = new GetStatesInputQuery(1, 100, "name:asc", "Name", "PolishName"); var states = new List <State> { State.Builder() .SetId(Guid.NewGuid()) .SetRowVersion(Array.Empty <byte>()) .SetName("Name") .SetPolishName("PolishName") .Build() }; var stateOutputQueries = states .Select(x => new StateOutputQuery(x.Id, x.RowVersion, x.Name, x.PolishName)).ToList(); var collectionOutputQuery = new CollectionOutputQuery <StateOutputQuery>(states.Count, stateOutputQueries); _stateRepositoryMock.Setup(x => x.FindAsync(It.IsAny <int?>(), It.IsAny <int?>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(states); _stateRepositoryMock.Setup(x => x.CountAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(states.Count); _mapperMock.Setup(x => x.Map <List <State>, IEnumerable <StateOutputQuery> >(It.IsAny <List <State> >())) .Returns(stateOutputQueries); var result = await _queryHandler.HandleAsync(getStatesInputQuery); result.Should().BeEquivalentTo(collectionOutputQuery); }
public async Task <CollectionOutputQuery <StateOutputQuery> > HandleAsync(GetStatesInputQuery inputQuery, CancellationToken cancellationToken = default) { List <State> states; long totalCount; if (inputQuery != null) { states = await _stateRepository.FindAsync(inputQuery.Page, inputQuery.PageSize, inputQuery.Sort, inputQuery.Name, inputQuery.PolishName); totalCount = await _stateRepository.CountAsync(inputQuery.Name, inputQuery.PolishName); } else { states = await _stateRepository.GetAllAsync(); totalCount = await _stateRepository.CountAsync(); } var results = _mapper.Map <List <State>, IEnumerable <StateOutputQuery> >(states); return(new CollectionOutputQuery <StateOutputQuery>(totalCount, results)); }