private static async Task <string> PrepareExpectedResponseAsync(Guid roomForRentAnnouncementId, ICosmosStore <RoomForRentAnnouncementEntity> cosmosStore) { var roomForRentAnnouncementEntity = await cosmosStore.FindAsync(roomForRentAnnouncementId.ToString()); var roomForRentAnnouncementResponse = new RoomForRentAnnouncementResponse( roomForRentAnnouncementEntity.Id, roomForRentAnnouncementEntity.Title, roomForRentAnnouncementEntity.SourceUrl, roomForRentAnnouncementEntity.CityId, roomForRentAnnouncementEntity.Created, roomForRentAnnouncementEntity.Description, roomForRentAnnouncementEntity.Price, roomForRentAnnouncementEntity.RoomTypes.Select(x => RoomForRentAnnouncementProfile.ConvertToRoomTypeEnum(x.ConvertToEnumeration())), roomForRentAnnouncementEntity.CityDistricts); var settings = new JsonSerializerSettings { Formatting = Formatting.Indented, ContractResolver = new DefaultTestPlatformContractResolver { NamingStrategy = new CamelCaseNamingStrategy() }, Converters = new List <JsonConverter> { new IsoDateTimeConverter(), new StringEnumConverter() } }; return(JsonConvert.SerializeObject(roomForRentAnnouncementResponse, settings)); }
public async Task GetRoomForRentAnnouncementAsync_Should_Return_OkObjectResult_With_RoomForRentAnnouncementResponses() { var roomForRentAnnouncementOutputQuery = new RoomForRentAnnouncementOutputQuery(Guid.NewGuid(), "Title", "http://sourceUrl", Guid.NewGuid(), DateTimeOffset.UtcNow, "Description", 100, new List <RoomTypeEnumeration>(), new List <Guid>()); var roomForRentAnnouncementResponse = new RoomForRentAnnouncementResponse( roomForRentAnnouncementOutputQuery.Id, roomForRentAnnouncementOutputQuery.Title, roomForRentAnnouncementOutputQuery.SourceUrl, roomForRentAnnouncementOutputQuery.CityId, roomForRentAnnouncementOutputQuery.Created, roomForRentAnnouncementOutputQuery.Description, roomForRentAnnouncementOutputQuery.Price, roomForRentAnnouncementOutputQuery.RoomTypes.Select(RoomForRentAnnouncementProfile.ConvertToRoomTypeEnum), roomForRentAnnouncementOutputQuery.CityDistricts); _getRoomForRentAnnouncementQueryHandlerMock .Setup(x => x.HandleAsync(It.IsAny <GetRoomForRentAnnouncementInputQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(roomForRentAnnouncementOutputQuery); _mapperMock .Setup(x => x.Map <RoomForRentAnnouncementOutputQuery, RoomForRentAnnouncementResponse>(It.IsAny <RoomForRentAnnouncementOutputQuery>())) .Returns(roomForRentAnnouncementResponse); var result = await _controller.GetRoomForRentAnnouncementAsync(roomForRentAnnouncementOutputQuery.Id); var okResult = result.As <OkObjectResult>(); okResult.Value.Should().BeEquivalentTo(roomForRentAnnouncementResponse); }
public async Task UpdateRoomForRentAnnouncementAsync_Should_Return_OkObjectResult_With_RoomForRentAnnouncementResponse() { var roomForRentAnnouncementId = Guid.NewGuid(); var updateRoomForRentAnnouncementRequest = new UpdateRoomForRentAnnouncementRequest { Id = roomForRentAnnouncementId, Title = "NewTitle", SourceUrl = "http://sourceUrl", CityId = Guid.NewGuid(), Description = "Description", Price = 100, RoomTypes = new List <RoomType> { RoomType.Single }, CityDistricts = new List <Guid> { Guid.NewGuid() } }; var updateRoomForRentAnnouncementCommand = new UpdateRoomForRentAnnouncementCommand( roomForRentAnnouncementId, updateRoomForRentAnnouncementRequest.Title, updateRoomForRentAnnouncementRequest.SourceUrl, updateRoomForRentAnnouncementRequest.CityId, updateRoomForRentAnnouncementRequest.Description, updateRoomForRentAnnouncementRequest.Price, updateRoomForRentAnnouncementRequest.RoomTypes.Select(RoomForRentAnnouncementProfile.ConvertToRoomTypeEnumeration), updateRoomForRentAnnouncementRequest.CityDistricts); var roomForRentAnnouncementOutputQuery = new RoomForRentAnnouncementOutputQuery( updateRoomForRentAnnouncementCommand.RoomForRentAnnouncementId, updateRoomForRentAnnouncementCommand.Title, updateRoomForRentAnnouncementCommand.SourceUrl, updateRoomForRentAnnouncementCommand.CityId, DateTimeOffset.UtcNow, updateRoomForRentAnnouncementCommand.Description, updateRoomForRentAnnouncementCommand.Price, updateRoomForRentAnnouncementCommand.RoomTypes, updateRoomForRentAnnouncementCommand.CityDistricts); var roomForRentAnnouncementResponse = new RoomForRentAnnouncementResponse( roomForRentAnnouncementOutputQuery.Id, roomForRentAnnouncementOutputQuery.Title, roomForRentAnnouncementOutputQuery.SourceUrl, roomForRentAnnouncementOutputQuery.CityId, roomForRentAnnouncementOutputQuery.Created, roomForRentAnnouncementOutputQuery.Description, roomForRentAnnouncementOutputQuery.Price, roomForRentAnnouncementOutputQuery.RoomTypes.Select(RoomForRentAnnouncementProfile.ConvertToRoomTypeEnum), roomForRentAnnouncementOutputQuery.CityDistricts); _mapperMock .Setup(x => x.Map <UpdateRoomForRentAnnouncementRequest, UpdateRoomForRentAnnouncementCommand>(It.IsAny <UpdateRoomForRentAnnouncementRequest>())) .Returns(updateRoomForRentAnnouncementCommand); _communicationBusMock .Setup(x => x.SendCommandAsync(It.IsAny <UpdateRoomForRentAnnouncementCommand>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _getRoomForRentAnnouncementQueryHandlerMock .Setup(x => x.HandleAsync(It.IsAny <GetRoomForRentAnnouncementInputQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(roomForRentAnnouncementOutputQuery); _mapperMock .Setup(x => x.Map <RoomForRentAnnouncementOutputQuery, RoomForRentAnnouncementResponse>(It.IsAny <RoomForRentAnnouncementOutputQuery>())) .Returns(roomForRentAnnouncementResponse); var result = await _controller.UpdateRoomForRentAnnouncementAsync(roomForRentAnnouncementId, updateRoomForRentAnnouncementRequest); var okObjectResult = result.As <OkObjectResult>(); okObjectResult.Value.Should().BeEquivalentTo(roomForRentAnnouncementResponse); }
public async Task CreateRoomForRentAnnouncementAsync_Should_Return_CreatedAtRouteResult_With_RoomForRentAnnouncementResponse() { var createRoomForRentAnnouncementRequest = new CreateRoomForRentAnnouncementRequest { Title = "Title", SourceUrl = "http://sourceUrl", CityId = Guid.NewGuid(), Description = "Description", Price = 100, RoomTypes = new List <RoomType> { RoomType.Double }, CityDistricts = new List <Guid> { Guid.NewGuid() } }; var createRoomForRentAnnouncementCommand = new CreateRoomForRentAnnouncementCommand( Guid.NewGuid(), createRoomForRentAnnouncementRequest.Title, createRoomForRentAnnouncementRequest.SourceUrl, createRoomForRentAnnouncementRequest.CityId, createRoomForRentAnnouncementRequest.Description, createRoomForRentAnnouncementRequest.Price, createRoomForRentAnnouncementRequest.RoomTypes.Select(RoomForRentAnnouncementProfile.ConvertToRoomTypeEnumeration), createRoomForRentAnnouncementRequest.CityDistricts); var roomForRentAnnouncementOutputQuery = new RoomForRentAnnouncementOutputQuery( createRoomForRentAnnouncementCommand.RoomForRentAnnouncementId, createRoomForRentAnnouncementCommand.Title, createRoomForRentAnnouncementCommand.SourceUrl, createRoomForRentAnnouncementCommand.CityId, DateTimeOffset.UtcNow, createRoomForRentAnnouncementCommand.Description, createRoomForRentAnnouncementCommand.Price, createRoomForRentAnnouncementCommand.RoomTypes, createRoomForRentAnnouncementCommand.CityDistricts); var roomForRentAnnouncementResponse = new RoomForRentAnnouncementResponse( roomForRentAnnouncementOutputQuery.Id, roomForRentAnnouncementOutputQuery.Title, roomForRentAnnouncementOutputQuery.SourceUrl, roomForRentAnnouncementOutputQuery.CityId, roomForRentAnnouncementOutputQuery.Created, roomForRentAnnouncementOutputQuery.Description, roomForRentAnnouncementOutputQuery.Price, roomForRentAnnouncementOutputQuery.RoomTypes.Select(RoomForRentAnnouncementProfile.ConvertToRoomTypeEnum), roomForRentAnnouncementOutputQuery.CityDistricts); _mapperMock .Setup(x => x.Map <CreateRoomForRentAnnouncementRequest, CreateRoomForRentAnnouncementCommand>(It.IsAny <CreateRoomForRentAnnouncementRequest>())) .Returns(createRoomForRentAnnouncementCommand); _communicationBusMock .Setup(x => x.SendCommandAsync(It.IsAny <CreateRoomForRentAnnouncementCommand>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _getRoomForRentAnnouncementQueryHandlerMock .Setup(x => x.HandleAsync(It.IsAny <GetRoomForRentAnnouncementInputQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(roomForRentAnnouncementOutputQuery); _mapperMock .Setup(x => x.Map <RoomForRentAnnouncementOutputQuery, RoomForRentAnnouncementResponse>(It.IsAny <RoomForRentAnnouncementOutputQuery>())) .Returns(roomForRentAnnouncementResponse); var result = await _controller.CreateRoomForRentAnnouncementAsync(createRoomForRentAnnouncementRequest); var createdAtRouteResult = result.As <CreatedAtRouteResult>(); createdAtRouteResult.Value.Should().BeEquivalentTo(roomForRentAnnouncementResponse); createdAtRouteResult.RouteName.Should().BeEquivalentTo("GetRoomForRentAnnouncement"); createdAtRouteResult.RouteValues.Should() .BeEquivalentTo(new Microsoft.AspNetCore.Routing.RouteValueDictionary(new { id = roomForRentAnnouncementResponse.Id })); }