test: WIP fix testing in ubuntu.

This commit is contained in:
Dong Bin
2025-02-17 14:55:05 +08:00
parent afd5449f5b
commit c97476e1e8
3 changed files with 121 additions and 2 deletions

View File

@@ -261,14 +261,16 @@ public class CalendarViewTests
var dayButton = monthGrid.Children.OfType<CalendarDayButton>().FirstOrDefault();
Assert.NotNull(dayHeader);
Assert.NotNull(dayButton);
Assert.Equal("S", dayHeader.Text);
Assert.Equal('S', dayHeader.Text?[0]);
Assert.Equal(30, (dayButton.DataContext as DateTime?)?.Day);
calendarView.FirstDayOfWeek = DayOfWeek.Tuesday;
dayHeader = monthGrid.Children.OfType<TextBlock>().FirstOrDefault();
dayButton = monthGrid.Children.OfType<CalendarDayButton>().FirstOrDefault();
Assert.Equal("T", dayHeader.Text);
Assert.NotNull(dayHeader);
Assert.NotNull(dayButton);
Assert.Equal('T', dayHeader.Text?[0]);
Assert.Equal(25, (dayButton.DataContext as DateTime?)?.Day);
}

View File

@@ -0,0 +1,53 @@
using Ursa.Controls;
namespace Test.Ursa.DateTimePicker;
public class DateRangeExtensionTests
{
[Fact]
public void Contains_DateInAnyRange_ShouldReturnTrue()
{
var ranges = new List<DateRange>
{
new(new DateTime(2023, 10, 1), new DateTime(2023, 10, 5)),
new(new DateTime(2023, 10, 10), new DateTime(2023, 10, 15))
};
var date = new DateTime(2023, 10, 3);
Assert.True(ranges.Contains(date));
}
[Fact]
public void Contains_DateNotInAnyRange_ShouldReturnFalse()
{
var ranges = new List<DateRange>
{
new(new DateTime(2023, 10, 1), new DateTime(2023, 10, 5)),
new(new DateTime(2023, 10, 10), new DateTime(2023, 10, 15))
};
var date = new DateTime(2023, 10, 6);
Assert.False(ranges.Contains(date));
}
[Fact]
public void Contains_NullDate_ShouldReturnFalse()
{
var ranges = new List<DateRange>
{
new(new DateTime(2023, 10, 1), new DateTime(2023, 10, 5)),
new(new DateTime(2023, 10, 10), new DateTime(2023, 10, 15))
};
Assert.False(ranges.Contains((DateTime?)null));
}
[Fact]
public void Contains_NullRanges_ShouldReturnFalse()
{
IEnumerable<DateRange>? ranges = null;
var date = new DateTime(2023, 10, 3);
Assert.False(ranges.Contains(date));
}
}

View File

@@ -0,0 +1,64 @@
using Ursa.Controls;
namespace Test.Ursa.DateTimePicker;
public class DateRangeTests
{
[Fact]
public void DateRange_SingleDayRange_ShouldHaveSameStartAndEnd()
{
var date = new DateTime(2023, 10, 1);
var range = new DateRange(date);
Assert.Equal(date.Date, range.Start);
Assert.Equal(date.Date, range.End);
}
[Fact]
public void DateRange_ValidRange_ShouldSetStartAndEndCorrectly()
{
var start = new DateTime(2023, 10, 1);
var end = new DateTime(2023, 10, 5);
var range = new DateRange(start, end);
Assert.Equal(start.Date, range.Start);
Assert.Equal(end.Date, range.End);
}
[Fact]
public void DateRange_EndBeforeStart_ShouldSetEndToStart()
{
var start = new DateTime(2023, 10, 5);
var end = new DateTime(2023, 10, 1);
var range = new DateRange(start, end);
Assert.Equal(start.Date, range.Start);
Assert.Equal(start.Date, range.End);
}
[Fact]
public void Contains_DateWithinRange_ShouldReturnTrue()
{
var range = new DateRange(new DateTime(2023, 10, 1), new DateTime(2023, 10, 5));
var date = new DateTime(2023, 10, 3);
Assert.True(range.Contains(date));
}
[Fact]
public void Contains_DateOutsideRange_ShouldReturnFalse()
{
var range = new DateRange(new DateTime(2023, 10, 1), new DateTime(2023, 10, 5));
var date = new DateTime(2023, 10, 6);
Assert.False(range.Contains(date));
}
[Fact]
public void Contains_NullDate_ShouldReturnFalse()
{
var range = new DateRange(new DateTime(2023, 10, 1), new DateTime(2023, 10, 5));
Assert.False(range.Contains(null));
}
}