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