Premiere commit - Omika

This commit is contained in:
2026-10-23 18:46:50 +02:00
commit 8ea76c1b24
2155 changed files with 984301 additions and 0 deletions
@@ -0,0 +1,57 @@
using Omika.Core.Domain.Exceptions;
using Omika.Core.Domain.ValueObjects;
namespace Omika.Tests.Domain;
/// <summary>
/// Tests de l'objet de valeur <see cref="DateTimeRange"/>.
/// </summary>
public class DateTimeRangeTests
{
[Fact]
public void DateTimeRange_RejectsEndBeforeStart()
{
var start = new DateTime(2026, 1, 10, 9, 0, 0);
var end = new DateTime(2026, 1, 10, 8, 0, 0);
Assert.Throws<DomainValidationException>(() => new DateTimeRange(start, end));
}
[Fact]
public void DateTimeRange_AcceptsEqualDates()
{
var instant = new DateTime(2026, 1, 10, 9, 0, 0);
var range = new DateTimeRange(instant, instant);
Assert.Equal(TimeSpan.Zero, range.Duration);
}
[Fact]
public void DateTimeRange_ComputesDurationAndContains()
{
var range = new DateTimeRange(
new DateTime(2026, 1, 10, 9, 0, 0),
new DateTime(2026, 1, 10, 11, 30, 0));
Assert.Equal(TimeSpan.FromMinutes(150), range.Duration);
Assert.True(range.Contains(new DateTime(2026, 1, 10, 10, 0, 0)));
Assert.False(range.Contains(new DateTime(2026, 1, 10, 12, 0, 0)));
}
[Fact]
public void DateTimeRange_DetectsOverlap()
{
var a = new DateTimeRange(
new DateTime(2026, 1, 10, 9, 0, 0),
new DateTime(2026, 1, 10, 11, 0, 0));
var b = new DateTimeRange(
new DateTime(2026, 1, 10, 10, 0, 0),
new DateTime(2026, 1, 10, 12, 0, 0));
var c = new DateTimeRange(
new DateTime(2026, 1, 10, 13, 0, 0),
new DateTime(2026, 1, 10, 14, 0, 0));
Assert.True(a.Overlaps(b));
Assert.False(a.Overlaps(c));
}
}