Adding
This commit is contained in:
+125
@@ -0,0 +1,125 @@
|
||||
using LCU.Api.Internal.DispatcherSharedLib.Utilities;
|
||||
using NCrontab;
|
||||
|
||||
namespace LCU.Api.Common.NotificationsTests.HelperTests;
|
||||
|
||||
public class CronHelpersTest
|
||||
{
|
||||
public CronHelpersTest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetCronSchedule_Ok()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "* * * * 1-5"
|
||||
};
|
||||
|
||||
var DefaultCleanUpJobCronPattern = "* * * * 1-7";
|
||||
|
||||
CronHelpers.SetCronSchedule(job.CronSchedule, DefaultCleanUpJobCronPattern);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(job.CronSchedule);
|
||||
Assert.Equal("* * * * 1-5", job.CronSchedule);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetCronSchedule_Error()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "DDDDDDD"
|
||||
};
|
||||
|
||||
var DefaultCleanUpJobCronPattern = "DDDDDDD";
|
||||
Assert.Throws<NCrontab.CrontabException>(() => CronHelpers.SetCronSchedule(job.CronSchedule, DefaultCleanUpJobCronPattern));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetCronSchedule_DefaultSet()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "FFFFFFF"
|
||||
};
|
||||
|
||||
var DefaultCleanUpJobCronPattern = "0,15,30,45 7-17 * * 1-5";
|
||||
var result = CronHelpers.SetCronSchedule(job.CronSchedule, DefaultCleanUpJobCronPattern);
|
||||
|
||||
Assert.NotNull(result);
|
||||
Assert.Equal(DefaultCleanUpJobCronPattern, result.ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetNextScheduledRunTime_Ok()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 1 *"
|
||||
};
|
||||
|
||||
CrontabSchedule.Parse(job.CronSchedule);
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(job.NextRunTime);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetNextScheduledRunTimeNull_Ok()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 1 *"
|
||||
};
|
||||
|
||||
var DefaultCleanUpJobCronPattern = "* 22 * * *";
|
||||
CronHelpers.SetCronSchedule(job.CronSchedule, DefaultCleanUpJobCronPattern);
|
||||
|
||||
// Assert
|
||||
Assert.Null(job.NextRunTime);
|
||||
}
|
||||
|
||||
[Fact(Skip="Not Holiday")]
|
||||
public void SetNextScheduledRunTime_NoSKipHoliday()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 1 *"
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(nextRunTime);
|
||||
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(job.NextRunTime);
|
||||
Assert.NotEqual(nextRunTimeAfterHoliday, job.NextRunTime);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetNextScheduledRunTime_SKipHoliday()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 1 *",
|
||||
SkipHolidays = true
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(nextRunTime);
|
||||
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(job.NextRunTime);
|
||||
Assert.Equal(nextRunTimeAfterHoliday, job.NextRunTime);
|
||||
}
|
||||
}
|
||||
+218
@@ -0,0 +1,218 @@
|
||||
using LCU.Api.Internal.DispatcherSharedLib.Utilities;
|
||||
using NCrontab;
|
||||
using System;
|
||||
|
||||
namespace LCU.Api.Common.NotificationsTests.HelperTests;
|
||||
|
||||
public class HolidayHelpersTest
|
||||
{
|
||||
|
||||
public HolidayHelpersTest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[Fact(Skip = "Not Holiday")]
|
||||
public void HandleHolidaysSkipHolidayFalse_Ok()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 1 *"
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(nextRunTime);
|
||||
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(job);
|
||||
Assert.NotEqual(nextRunTimeAfterHoliday, job.NextRunTime);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysSkipHolidayTrue_Ok()
|
||||
{
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 1 *",
|
||||
SkipHolidays = true
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(nextRunTime);
|
||||
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(job);
|
||||
Assert.Equal(nextRunTimeAfterHoliday, job.NextRunTime);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysSkipIndependenceDayTrue_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 4-31 7 *",
|
||||
SkipHolidays = true
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(nextRunTime);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(job);
|
||||
Assert.Equal(nextRunTimeAfterHoliday, job.NextRunTime);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysGetChristmas_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 12 *"
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
var result = HolidayHelpers.GetChristmasDay(nextRunTime.Year);
|
||||
|
||||
DateTime holidayValue = new DateTime(DateTime.Now.Year, 12, 25);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result.ToString());
|
||||
Assert.Equal(holidayValue.ToString(), result.ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysGetNewYearsDay_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 12 *"
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
var result = HolidayHelpers.GetNewYearsDay(nextRunTime.Year);
|
||||
|
||||
DateTime holidayValue = new DateTime(DateTime.Now.Year, 1, 1);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result.ToString());
|
||||
Assert.Equal(holidayValue.ToString(), result.ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysGetIndependenceDay_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 12 *",
|
||||
SkipHolidays = true
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTime = schedule.GetNextOccurrence(DateTime.Now);
|
||||
var result = HolidayHelpers.GetIndependenceDay(nextRunTime.Year);
|
||||
|
||||
DateTime holidayValue = new DateTime(DateTime.Now.Year, 7, 4);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result.ToString());
|
||||
Assert.Equal(holidayValue.ToString(), result.ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysGetMemorialDay_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-31 5 *",
|
||||
SkipHolidays = true
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTimeYear = schedule.GetNextOccurrence(DateTime.Now);
|
||||
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
var result = HolidayHelpers.GetMemorialDay(nextRunTimeYear.Year);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(result);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result.ToString());
|
||||
Assert.Equal(nextRunTimeAfterHoliday.ToString(), result.AddDays(1).ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysGetThanksgivingDay_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 11 *",
|
||||
SkipHolidays = true
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTimeYear = schedule.GetNextOccurrence(DateTime.Now);
|
||||
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
var result = HolidayHelpers.GetThanksgivingDay(nextRunTimeYear.Year);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(result);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result.ToString());
|
||||
Assert.Equal(nextRunTimeAfterHoliday.ToString(), result.AddDays(1).ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysGetLaborDay_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
CronSchedule = "0 0 1-30 9 *",
|
||||
SkipHolidays = true
|
||||
};
|
||||
|
||||
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
|
||||
var nextRunTimeYear = schedule.GetNextOccurrence(DateTime.Now);
|
||||
CronHelpers.SetNextScheduledRunTime(ref job);
|
||||
var result = HolidayHelpers.GetLaborDay(nextRunTimeYear.Year);
|
||||
var nextRunTimeAfterHoliday = HolidayHelpers.HandleHolidays(result);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result.ToString());
|
||||
Assert.Equal(nextRunTimeAfterHoliday.ToString(), result.AddDays(1).ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysNull_Ok()
|
||||
{
|
||||
// Arrange
|
||||
DateTime dateTest = new DateTime(); //min date is 01-01-0001
|
||||
var nextRunTime = HolidayHelpers.GetLaborDay(dateTest.Year);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(nextRunTime.ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleHolidaysGetSpecificHolidayNoYear_Error()
|
||||
{
|
||||
// Assert
|
||||
Assert.Throws<ArgumentOutOfRangeException>(() => HolidayHelpers.GetLaborDay(0));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user