Files
Academic-Affairs-System/tests/Jiaowu.Api.Tests/HolidayCnRangesTests.cs
T
2026-09-29 09:33:25 +08:00

49 lines
1.6 KiB
C#

using Jiaowu.Api.Infrastructure.AcademicCalendar;
namespace Jiaowu.Api.Tests;
public sealed class HolidayCnRangesTests
{
[Fact]
public void Group_merges_only_consecutive_days_with_the_same_name_and_status()
{
var ranges = HolidayCnRanges.Group(
[
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 1), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 2), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 3), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 4), false),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 5), true),
new HolidayCnDay("国庆节", new DateOnly(2026, 10, 7), true)
]);
Assert.Collection(
ranges,
range =>
{
Assert.Equal("国庆节", range.Name);
Assert.Equal(new DateOnly(2026, 10, 1), range.StartsOn);
Assert.Equal(new DateOnly(2026, 10, 3), range.EndsOn);
Assert.True(range.IsOffDay);
},
range =>
{
Assert.Equal(new DateOnly(2026, 10, 4), range.StartsOn);
Assert.Equal(range.StartsOn, range.EndsOn);
Assert.False(range.IsOffDay);
},
range =>
{
Assert.Equal(new DateOnly(2026, 10, 5), range.StartsOn);
Assert.Equal(range.StartsOn, range.EndsOn);
Assert.True(range.IsOffDay);
},
range =>
{
Assert.Equal(new DateOnly(2026, 10, 7), range.StartsOn);
Assert.Equal(range.StartsOn, range.EndsOn);
Assert.True(range.IsOffDay);
});
}
}