Example #1
0
        public async Task CreateCityAsync_Should_Return_CreatedAtRouteResult_With_CityResponse()
        {
            var createCityRequest = new CreateCityRequest {
                Name = "Name", PolishName = "PolishName"
            };
            var createCityCommand = new CreateCityCommand(Guid.NewGuid(), createCityRequest.Name,
                                                          createCityRequest.PolishName, Guid.NewGuid());
            var cityOutputQuery = new CityOutputQuery(createCityCommand.CityId, Array.Empty <byte>(), createCityCommand.Name,
                                                      createCityCommand.PolishName, createCityCommand.StateId);
            var cityResponse = new CityResponse(cityOutputQuery.Id, cityOutputQuery.RowVersion, cityOutputQuery.Name,
                                                cityOutputQuery.PolishName, cityOutputQuery.StateId);

            _mapperMock.Setup(x => x.Map <CreateCityRequest, CreateCityCommand>(It.IsAny <CreateCityRequest>())).Returns(createCityCommand);
            _communicationBusMock.Setup(x => x.SendCommandAsync(It.IsAny <CreateCityCommand>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);
            _getCityQueryHandlerMock
            .Setup(x => x.HandleAsync(It.IsAny <GetCityInputQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(cityOutputQuery);
            _mapperMock.Setup(x => x.Map <CityOutputQuery, CityResponse>(It.IsAny <CityOutputQuery>())).Returns(cityResponse);

            var result = await _controller.CreateCityAsync(createCityRequest);

            var createdAtRouteResult = result.As <CreatedAtRouteResult>();

            createdAtRouteResult.Value.Should().BeEquivalentTo(cityResponse);
            createdAtRouteResult.RouteName.Should().BeEquivalentTo("GetCity");
            createdAtRouteResult.RouteValues.Should().BeEquivalentTo(new RouteValueDictionary(new { id = cityResponse.Id }));
        }