Пример #1
0
        public decimal CalculateAnnualMonthlySalary(decimal monthlySalary)
        {
            IContractService contract = ContractCreator.Create(ContractCreator.MonthlySalary);
            decimal          salary   = contract.CalculateAnnualSalary(monthlySalary);

            return(salary);
        }
Пример #2
0
        public decimal CalculateAnnualHourlySalary(decimal hourlySalary)
        {
            IContractService contract = ContractCreator.Create(ContractCreator.HourlySalary);
            decimal          salary   = contract.CalculateAnnualSalary(hourlySalary);

            return(salary);
        }
Пример #3
0
        [Fact] // async Task<bool> IsHomeDeletable(string id)
        public async Task IsHomeDeletable_WithGivenHomeId_ShouldConfirmIf_HomeHasTenantManagerOrNone()
        {
            // Arrange
            var id      = 1;
            var ownerId = Guid.NewGuid().ToString();
            var country = CountryCreator.Create();
            var city    = CityCreator.Create(country.Id);

            var home1       = HomeCreator.CreateOwnerHome(ownerId, city.Id);
            var homeManaged = HomeCreator.CreateManagedHome(ownerId, city.Id);
            var homeRented  = HomeCreator.CreateOwnerHome(ownerId, city.Id);
            var tenant      = UserCreator.Create("Shunko", "Svinski", "shunkata", "*****@*****.**");

            var contract = ContractCreator.Create();

            var rental = RentalCreator.Create(id, country, city, tenant, homeRented, contract);

            await this.Context.Countries.AddAsync(country);

            await this.Context.Cities.AddAsync(city);

            await this.Context.Homes.AddRangeAsync(home1, homeManaged, homeRented);

            await this.Context.Users.AddAsync(tenant);

            await this.Context.Contracts.AddAsync(contract);

            await this.Context.Rentals.AddAsync(rental);

            await this.Context.SaveChangesAsync();

            var service = new OwnerListingService(this.Context, null, null, null);

            // Act
            var result1 = await service.IsHomeDeletable(home1.Id);

            var resultManaged = await service.IsHomeDeletable(homeManaged.Id);

            var resultRented = await service.IsHomeDeletable(homeRented.Id);

            // Assert
            result1.Should().Be(true);
            resultManaged.Should().Be(false);
            resultRented.Should().Be(false);
        }
Пример #4
0
        [Fact] // async Task<OwnerListingFullDetailsServiceModel> GetDetailsAsync(string userId, string id)
        public async Task GetyDetailsAsync_WithGivenOwnerIdAndHomeId_ShouldReturnFullDetailsModel()
        {
            // Arrange
            var id       = 1;
            var country  = CountryCreator.Create();
            var city     = CityCreator.Create(country.Id);
            var tenant   = UserCreator.Create("Shunko", "Svinski", "shunkata", "*****@*****.**");
            var owner    = UserCreator.Create("Suzdurma", "Saturov", "satrura", "*****@*****.**");
            var home     = HomeCreator.CreateOwnerHome(owner.Id, city.Id);
            var contract = ContractCreator.Create();

            var rental = RentalCreator.Create(id, country, city, tenant, home, contract);

            await this.Context.Countries.AddAsync(country);

            await this.Context.Cities.AddAsync(city);

            await this.Context.Users.AddAsync(tenant);

            await this.Context.Homes.AddAsync(home);

            await this.Context.Contracts.AddAsync(contract);

            await this.Context.Rentals.AddAsync(rental);

            await this.Context.SaveChangesAsync();

            var rentalInfo = new OwnerRentalInfoServiceModel
            {
                RentalDate      = rental.RentDate.ToString(),
                Duration        = rental.Duration,
                ManagerFullName = null,
                TenantFullName  = string.Format(
                    "{0} {1}", rental.Tenant.FirstName, rental.Tenant.LastName),
            };

            var model = new OwnerListingFullDetailsServiceModel
            {
                Id          = home.Id,
                Name        = home.Name,
                City        = home.City.Name,
                Country     = home.City.Country.Name,
                Address     = home.Address,
                Description = home.Description,
                Price       = home.Price,
                Status      = home.Status,
                Category    = home.Category,
                Image       = home.Images.Select(i => i.PictureUrl).FirstOrDefault(),
                RentalInfo  = rentalInfo,
            };

            var service = new OwnerListingService(this.Context, null, null, null);

            // Act
            var savedEntry = await this.Context.Homes.Where(h => h.OwnerId == owner.Id).FirstOrDefaultAsync();

            var savedRental = await this.Context.Rentals.Where(r => r.Home.Id == home.Id).FirstOrDefaultAsync();

            var result = await service.GetDetailsAsync(owner.Id, home.Id);

            // Assert
            result.Should().BeOfType <OwnerListingFullDetailsServiceModel>();
            result.RentalInfo.RentalDate.Should().Match(savedRental.RentDate.ToString("dd/MM/yyyy"));

            savedEntry.Should().NotBeNull();
            savedEntry.Id.Should().Be(home.Id);
            savedEntry.Name.Should().Match(model.Name);
            savedEntry.Description.Should().Match(model.Description);
        }