Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
using Omika.Core.Observability;
|
||||
|
||||
namespace Omika.Tests.Observability;
|
||||
|
||||
public class EventCodeTests
|
||||
{
|
||||
[Fact]
|
||||
public void Create_Valid_ProducesCanonicalValue()
|
||||
{
|
||||
EventCode code = EventCode.Create("mob", "sync", 1);
|
||||
|
||||
Assert.True(code.IsValid);
|
||||
Assert.Equal("OMK-MOB-SYNC-001", code.Value);
|
||||
Assert.Equal("MOB", code.Zone);
|
||||
Assert.Equal("SYNC", code.Domain);
|
||||
Assert.Equal(1, code.Number);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("M", "SYNC", 1)]
|
||||
[InlineData("MOBILE", "SYNC", 1)]
|
||||
[InlineData("MOB", "S", 1)]
|
||||
public void Create_InvalidZoneOrDomain_Throws(string zone, string domain, int number)
|
||||
{
|
||||
Assert.Throws<ArgumentException>(() => EventCode.Create(zone, domain, number));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("MOB", "SYNC", 0)]
|
||||
[InlineData("MOB", "SYNC", 1000)]
|
||||
[InlineData("MOB", "SYNC", -1)]
|
||||
public void Create_InvalidNumber_Throws(string zone, string domain, int number)
|
||||
{
|
||||
Assert.ThrowsAny<ArgumentException>(() => EventCode.Create(zone, domain, number));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_ValidValue_ReturnsValid()
|
||||
{
|
||||
EventCode code = EventCode.Parse("OMK-MOB-SYNC-001");
|
||||
|
||||
Assert.True(code.IsValid);
|
||||
Assert.Equal("OMK-MOB-SYNC-001", code.Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_Lowercase_Canonicalizes()
|
||||
{
|
||||
EventCode code = EventCode.Parse("omk-mob-sync-001");
|
||||
|
||||
Assert.True(code.IsValid);
|
||||
Assert.Equal("OMK-MOB-SYNC-001", code.Value);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(null)]
|
||||
[InlineData("")]
|
||||
[InlineData(" ")]
|
||||
[InlineData("BAD")]
|
||||
[InlineData("OMK-MOB-SYNC")]
|
||||
[InlineData("OMK-MOB-SYNC-0000")]
|
||||
[InlineData("OMK-MOB-SYNC-ABC")]
|
||||
[InlineData("XX-MOB-SYNC-001")]
|
||||
public void Parse_Invalid_ReturnsInvalid(string? value)
|
||||
{
|
||||
Assert.False(EventCode.Parse(value).IsValid);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Default_IsInvalid()
|
||||
{
|
||||
Assert.False(default(EventCode).IsValid);
|
||||
Assert.Null(default(EventCode).Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Equality_IsCaseSensitiveCanonical()
|
||||
{
|
||||
Assert.Equal(EventCode.Create("MOB", "SYNC", 1), EventCode.Parse("omk-mob-sync-001"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user