public async Task Should_UpdateHoliday_When_PassValidParameters() { // Arrange var entity = new Holiday() { CompanyId = 1, StartDate = DateTime.Now.Date, EndDate = DateTime.Now.Date, Name = "Test Holiday", IsFullDay = true, CreatedAt = DateTime.Now.Date, CreatedBy = -1 }; entity.HolidayTeam.Add(new HolidayTeam() { TeamId = 1 }); _fixture.Context.Attach(entity); _fixture.Context.SaveChanges(); IUnitOfWork unitOfWork = new UnitOfWork(_fixture.Context); IRepository <Holiday> repository = new Repository <Holiday>(_fixture.Context); IRepository <Team> teamRepository = new Repository <Team>(_fixture.Context); var handler = new UpdateHolidayHandler(unitOfWork, repository, teamRepository, _logger, _mapper); var request = new UpdateHolidayCommand(companyId: 1, holidayId: 1, userId: 1, name: "Updated Holiday", DateTime.Now.AddDays(-1).Date, DateTime.Now.AddDays(1).Date, new List <int>() { 1 }, isForAllTeams: true, isFullDay: true); // Act var tcs = new CancellationToken(); var result = await handler.Handle(request, tcs); // Assert Assert.Equal(DateTime.Now.AddDays(-1).Date, result.StartDate); Assert.Equal(DateTime.Now.AddDays(1).Date, result.EndDate); Assert.Equal("Updated Holiday", result.Name); Assert.True(result.IsFullDay); }
public async Task Should_ThrowException_When_ChangeExistingStartDate() { // Arrange var entity = new Holiday() { CompanyId = 1, IsFullDay = true, CreatedAt = DateTime.Now, CreatedBy = -1, StartDate = DateTime.Now.AddDays(-1).Date, EndDate = DateTime.Now.AddDays(-1).Date, Name = "Mock-1 Holiday" }; entity.HolidayTeam.Add(new HolidayTeam() { TeamId = 1 }); _fixture.Context.Holidays.Attach(entity); _fixture.Context.SaveChanges(); entity = new Holiday() { CompanyId = 1, IsFullDay = true, CreatedAt = DateTime.Now, CreatedBy = -1, StartDate = DateTime.Now.AddDays(1).Date, EndDate = DateTime.Now.AddDays(1).Date, Name = "Mock-2 Holiday" }; entity.HolidayTeam.Add(new HolidayTeam() { TeamId = 1 }); _fixture.Context.Holidays.Attach(entity); _fixture.Context.SaveChanges(); IUnitOfWork unitOfWork = new UnitOfWork(_fixture.Context); IRepository <Holiday> repository = new Repository <Holiday>(_fixture.Context); IRepository <Team> teamRepository = new Repository <Team>(_fixture.Context); var handler = new UpdateHolidayHandler(unitOfWork, repository, teamRepository, _logger, _mapper); var request = new UpdateHolidayCommand(companyId: 1, holidayId: 1, userId: 1, name: "Test Holiday", startDate: DateTime.Now.AddDays(1).Date, endDate: DateTime.Now.AddDays(1).Date, teams: null, isForAllTeams: true, isFullDay: false); // Act var tcs = new CancellationToken(); // Assert var exception = await Assert.ThrowsAsync <VacationTrackingException>(async() => { await handler.Handle(request, tcs); }); Assert.Equal(ExceptionMessages.HolidayAlreadyExistForSameDate, exception.Message); Assert.Equal(400, exception.Code); }