public async Task CreatesApartmentWithLocationAndAddress() { var request = new CreateApartmentCommand() { HostId = this.dbHost.UserId, Longitude = 40.3, Latitude = -73.556, CityName = "New York", StreetName = "Weird street" }; var result = await this.sut.Handle(request, CancellationToken.None); var dbApartment = await this.Context.Apartments .Include(a => a.Location) .ThenInclude(l => l.Address) .FirstOrDefaultAsync(); Assert.NotNull(dbApartment.Location); var location = dbApartment.Location; Assert.Equal(location.Longitude, request.Longitude); Assert.Equal(location.Latitude, request.Latitude); var address = location.Address; Assert.Equal(address.CityName, request.CityName); Assert.Equal(address.StreetName, request.StreetName); }
public async Task <IActionResult> Post([FromBody] CreateApartmentCommand command) { if (await authService.CheckIfBanned(this.User).ConfigureAwait(false)) { return(this.Forbid()); } return(this.Ok(await this.mediator.Send(command).ConfigureAwait(false))); }
public GenericCommandResult Post( [FromBody] CreateApartmentCommand command, [FromServices] ApartmentHandler handler ) { command.User = User.Claims.FirstOrDefault(x => x.Type == "user_id")?.Value; var result = (GenericCommandResult)handler.Handle(command); return(result); }
public void CreateApartment_Should_Add_Room_ToList() { //Arrange var factory = new Mock <IHotelFactory>(); var data = new Mock <IData>(); var mockedRoomsList = new List <IAccomodationProperty>(); var mockedExtra = new Mock <IExtra>(); mockedExtra.SetupGet(x => x.Tier).Returns(3); var mockedExtra2 = new Mock <IExtra>(); mockedExtra2.SetupGet(x => x.Tier).Returns(3); var mockedExtra3 = new Mock <IExtra>(); mockedExtra3.SetupGet(x => x.Tier).Returns(3); var mockedExtra4 = new Mock <IExtra>(); mockedExtra4.SetupGet(x => x.Tier).Returns(3); var mockedExtra5 = new Mock <IExtra>(); mockedExtra5.SetupGet(x => x.Tier).Returns(3); var mockedExtra6 = new Mock <IExtra>(); mockedExtra6.SetupGet(x => x.Tier).Returns(3); var mockedExtra7 = new Mock <IExtra>(); mockedExtra7.SetupGet(x => x.Tier).Returns(3); var mockedExtra8 = new Mock <IExtra>(); mockedExtra8.SetupGet(x => x.Tier).Returns(3); var mockedExtrasList = new List <IExtra>() { mockedExtra.Object, mockedExtra2.Object, mockedExtra3.Object, mockedExtra4.Object, mockedExtra5.Object, mockedExtra6.Object, mockedExtra7.Object, mockedExtra8.Object }; var parameters = new List <string>() { "2", "3", "true", "Sea", "120", "true", "2", "1", "2" }; data.Setup(x => x.Rooms).Returns(mockedRoomsList); data.Setup(x => x.Extras).Returns(mockedExtrasList); factory.Setup(x => x.CreateApartment(2, 3, true, "Sea", 120, true, 2, 1, 2)) .Returns(new Apartment(2, 3, true, "Sea", 120, true, 2, 1, 2)); var command = new CreateApartmentCommand(factory.Object, data.Object); var result = command.Execute(parameters); //Act & Assert Assert.IsTrue(mockedRoomsList.Count == 1); }
public void CreateApartment_Should_Throw_When_Invalid_Number_Params() { //Arrange var factory = new Mock <IHotelFactory>(); var data = new Mock <IData>(); var command = new CreateApartmentCommand(factory.Object, data.Object); //Act & Assert Assert.ThrowsException <ArgumentException>(() => command.Execute(new List <string>() { "2", "3", "true", "120", "true", "2", "1", "2" })); }
public async Task ReturnsIdOfCreatedElement() { var request = new CreateApartmentCommand() { HostId = this.dbHost.UserId, PricePerNight = 10, ApartmentType = ApartmentTypes.Full, Title = "My fabulous apartment", NumberOfRooms = 5 }; var result = await this.sut.Handle(request, CancellationToken.None).ConfigureAwait(false); var dbApartment = await this.Context.Apartments.FirstOrDefaultAsync(); Assert.Equal(dbApartment.Id, result.Id); }
public async Task <ActionResult> Post([FromBody] CreateApartmentCommand cmd) { var result = await mediator.Send(cmd); return(new JsonResult(result)); }