Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }