using FluentAssertions; using Marathon.Domain.ValueObjects; namespace Marathon.Domain.Tests.ValueObjects; public sealed class EventIdTests { [Fact] public void Constructor_CreatesInstance_WhenValueIsNonEmpty() { var id = new EventId("26456117"); id.Value.Should().Be("26456117"); } [Theory] [InlineData("")] [InlineData(" ")] [InlineData("\t")] public void Constructor_ThrowsArgumentException_WhenValueIsEmptyOrWhitespace(string value) { var act = () => new EventId(value); act.Should().Throw() .WithParameterName("value"); } [Fact] public void Constructor_ThrowsArgumentException_WhenValueIsNull() { var act = () => new EventId(null!); act.Should().Throw() .WithParameterName("value"); } [Fact] public void ToString_ReturnsValue() { var id = new EventId("12345"); id.ToString().Should().Be("12345"); } [Fact] public void Equality_IsValueBased() { var a = new EventId("26456117"); var b = new EventId("26456117"); a.Should().Be(b); } }