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