private void ResolveAction(string action) { var rxThisAction = new Regex($"-{(typeof(T)).Name}", RegexOptions.IgnoreCase); var rxAllSpreadAction = new Regex(@"-\*"); var thisAction = rxThisAction.IsMatch(action) || rxAllSpreadAction.IsMatch(action); //По шаблону always true if (!thisAction) { throw new SyntaxErrorException($"список правил должен включать хотя-бы '*' если нет конкретного определения для этого класса ({(typeof(T)).Name})"); } var ac = ""; foreach (var a in action.Split(';')) { if (rxAllSpreadAction.IsMatch(a)) { ac = a.Split('-').First(); } if (false == (rxThisAction.IsMatch(a))) { continue; } ac = a.Split('-').First(); break; } SchemaAction.Custom(ac); }
public void CustomShouldHaveCorrectValue() { SchemaAction.Custom("a,b").ToString().ShouldEqual("a,b"); }