using ZB.MOM.WW.ScadaBridge.Commons.Validation; namespace ZB.MOM.WW.ScadaBridge.Commons.Tests.Validation; public class ActorNameRulesTests { [Theory] [InlineData("a b")] [InlineData("Furnace #3")] [InlineData("Ofen Süd")] [InlineData("x/y")] [InlineData("")] [InlineData(null)] [InlineData("$abc")] [InlineData("100%")] public void IsValid_RejectsIllegalNames(string? name) { Assert.False(ActorNameRules.IsValid(name)); Assert.NotNull(ActorNameRules.Describe(name)); } [Theory] [InlineData("Furnace-3")] [InlineData("Line_1.A")] [InlineData("a%20b")] [InlineData("Pump(A)")] [InlineData("say\"hi\"")] public void IsValid_AcceptsLegalNames(string name) { Assert.True(ActorNameRules.IsValid(name)); Assert.Null(ActorNameRules.Describe(name)); } [Fact] public void Describe_NamesTheOffendingValue() { var msg = ActorNameRules.Describe("Furnace #3"); Assert.Contains("'Furnace #3'", msg); Assert.Contains("not allowed in a runtime actor name", msg); } }