using FluentAssertions; using Marathon.Domain.ValueObjects; namespace Marathon.Domain.Tests.ValueObjects; public sealed class OddsValueTests { [Theory] [InlineData("3.5")] [InlineData("213.5")] [InlineData("-1.5")] [InlineData("-0.5")] [InlineData("0.5")] public void Constructor_CreatesInstance_WhenValueIsNonZero(string rawValue) { var value = decimal.Parse(rawValue); var oddsValue = new OddsValue(value); oddsValue.Value.Should().Be(value); } [Fact] public void Constructor_ThrowsArgumentOutOfRangeException_WhenValueIsZero() { var act = () => new OddsValue(0m); act.Should().Throw() .WithParameterName("value"); } [Fact] public void Equality_IsValueBased() { var a = new OddsValue(3.5m); var b = new OddsValue(3.5m); a.Should().Be(b); } }