public async Task BreakeVacationCardPayVacationInPeriodAsyncThreePeriods() { var initialDateVacation = new DateTime(2020, 01, 02); var finalDateVacation = new DateTime(2020, 01, 20); Vacation vacationCard = new VacationManagerUT().Build(new Guid(), new Guid(), Guid.Parse("F81867AA-4A4F-4FFE-9510-61A7E72C4177"), initialDateVacation, finalDateVacation); VacationCardManager manager = new VacationCardManager(); var res = await manager.BrekeOrNotAsync(vacationCard, Guid.Parse("0C08DAA6-F775-42A8-B75E-1B9B685B7977"), Guid.Parse("1E84AB62-574E-4373-A8D7-80910BD5D607"), HolidayPaymentConfiguration.PayVacationInPeriod); Assert.NotEmpty(res); Assert.Equal(3, res.Count); var card1 = res[0]; var card2 = res[1]; var card3 = res[2]; Assert.Equal(initialDateVacation, card1.InitialDate); Assert.Equal(initialDateVacation.AddDays(5), card1.FinalDate); Assert.Equal(new DateTime(2020, 01, 08), card2.InitialDate); Assert.Equal(new DateTime(2020, 01, 14), card2.FinalDate); Assert.Equal(new DateTime(2020, 01, 15), card3.InitialDate); Assert.Equal(new DateTime(2020, 01, 20), card3.FinalDate); }
public async Task NotBreakeVacationCardPayVacationInitiallyAsync() { Vacation vacationCard = new VacationManagerUT().Build(new Guid(), new Guid(), Guid.Parse("F81867AA-4A4F-4FFE-9510-61A7E72C4177"), DateTime.Now, DateTime.Now.AddDays(10)); VacationCardManager manager = new VacationCardManager(); var res = await manager.BrekeOrNotAsync(vacationCard, Guid.Parse("0C08DAA6-F775-42A8-B75E-1B9B685B7977"), Guid.Parse("1E84AB62-574E-4373-A8D7-80910BD5D607"), HolidayPaymentConfiguration.PayVacationInitially); Assert.NotEmpty(res); Assert.Single(res); }
public async Task BreakeVacationCardPayVacationInPeriodWithDaysOffAndBonusAsync() { var initialDateVacation = new DateTime(2020, 01, 01); var finalDateVacation = new DateTime(2020, 01, 11); Vacation vacationCard = new VacationManagerUT().Build(new Guid(), new Guid(), Guid.Parse("F81867AA-4A4F-4FFE-9510-61A7E72C4177"), initialDateVacation, finalDateVacation); vacationCard.VacationsBonusPercentage = 25; VacationCardManager manager = new VacationCardManager(); List <VacationDaysOff> VacationDaysOff = new List <VacationDaysOff>() { new VacationDaysOff() { Active = true, company = new Guid(), DeleteDate = null, ID = Guid.NewGuid(), user = Guid.NewGuid(), Date = new DateTime(2020, 01, 10), VacationID = vacationCard.ID } }; vacationCard.VacationDaysOff = VacationDaysOff; var res = await manager.BrekeOrNotAsync(vacationCard, Guid.Parse("0C08DAA6-F775-42A8-B75E-1B9B685B7977"), Guid.Parse("1E84AB62-574E-4373-A8D7-80910BD5D607"), HolidayPaymentConfiguration.PayVacationsAndBonusInPeriod); Assert.NotEmpty(res); Assert.Equal(2, res.Count); var card1 = res[0]; var card2 = res[1]; Assert.Equal(initialDateVacation, card1.InitialDate); Assert.Equal(initialDateVacation.AddDays(6), card1.FinalDate); Assert.Equal(initialDateVacation.AddDays(7), card2.InitialDate); Assert.Equal(finalDateVacation, card2.FinalDate); Assert.NotNull(card2.VacationDaysOff); Assert.Null(card1.VacationDaysOff); Assert.Equal(7, card1.VacationsDays); Assert.Equal(1.75m, card1.VacationsBonusDays); Assert.Equal(3, card2.VacationsDays); Assert.Equal(.75m, card2.VacationsBonusDays); }