public void CreateRealEstateShoulThrowsExceptionUponInvalidParameters()
        {
            string  expectedId   = "myNewCoolId";
            decimal invalidPrice = -1m;
            var     mapper       = this.GetMapper();

            var serviceInstance = new RealEstateServices(context,
                                                         realEstateTypeServices.Object,
                                                         citiesServices.Object,
                                                         neighbourhoodServices.Object,
                                                         addressServices.Object,
                                                         villageServices.Object,
                                                         buildingTypeServices.Object,
                                                         heatingSystemServices.Object,
                                                         mapper);

            var realEstateModel = new RealEstateCreateServiceModel()
            {
                Id                  = expectedId,
                Area                = 100,
                RealEstateType      = "Мезонет",
                Price               = invalidPrice,
                FloorNumber         = "4",
                BuildingTotalFloors = 5,
                City                = "София",
                BuildingType        = "Тухла",
            };

            Assert.ThrowsAsync <ArgumentNullException>(async() => await serviceInstance.CreateRealEstateAsync(realEstateModel), InvalidAddressExceptionMessage);
        }
Example #2
0
        public async Task <string> CreateRealEstateAsync(RealEstateCreateServiceModel model)
        {
            if (model.Area <= 0 || model.Price <= 0)
            {
                throw new ArgumentNullException(InvalidMethodParametersMessage);
            }

            var city = await this.citiesServices.GetByNameAsync(model.City);

            var village = await this.villageServices.CreateVillageAsync(model.Village);

            var neighbourhood = await this.neighbourhoodServices.GetNeighbourhoodByNameAsync(model.Neighbourhood);

            var realEstate = new RealEstate
            {
                RealEstateType      = await this.realEstateTypeServices.GetRealEstateTypeByNameAsync(model.RealEstateType),
                Address             = await this.addressServices.CreateAddressAsync(city, model.Address, village, neighbourhood),
                BuildingType        = await this.buildingTypeServices.GetBuildingTypeAsync(model.BuildingType),
                HeatingSystem       = await this.heatingSystemServices.GetHeatingSystemAsync(model.HeatingSystem),
                PricePerSquareMeter = model.Price / (decimal)model.Area
            };

            this.mapper.Map <RealEstateCreateServiceModel, RealEstate>(model, realEstate);

            var realEstateIdResult = await AddRealEstateToTheDb(realEstate);

            return(realEstateIdResult);
        }
        public async Task CreateRealEstateShoulReturnRealEstateId()
        {
            string expectedId      = "myNewCoolId";
            var    serviceInstance = new Mock <IRealEstateServices>();

            var realEstateModel = new RealEstateCreateServiceModel()
            {
                Id                  = expectedId,
                Price               = 5000,
                Area                = 100,
                RealEstateType      = "Мезонет",
                Address             = "ул. Бира 2",
                FloorNumber         = "4",
                BuildingTotalFloors = 5,
                City                = "София",
                BuildingType        = "Тухла",
            };

            serviceInstance.Setup(x => x.CreateRealEstateAsync(realEstateModel)).ReturnsAsync(expectedId);
            var service      = serviceInstance.Object;
            var actualResult = await service.CreateRealEstateAsync(realEstateModel);

            Assert.That(expectedId.Equals(actualResult), InvalidReturnIdMessage);
        }