public void TestAnyAndIfElseFailed() { var ifElseContainer = new Sequence(); ifElseContainer .If(new StringUnit("lexem")); ifElseContainer .Else(new StringUnit("xxx")); var anyContainer = new ContainerAnyUnits(); anyContainer.Add(ifElseContainer); anyContainer.Add(new StringUnit("aaa")); var sequence = new Sequence().AddIgnoreSymbol(' '); UnitError error = null; sequence .Add(anyContainer) .Error(x => error = x); var result = sequence.DecodeLine("lexem xxx"); Assert.IsFalse(result); Assert.IsTrue(error != null); Assert.IsTrue(error.PositionInLine == 6); Assert.IsTrue(error.Unit.IsFirstSymbol(error.Line[error.PositionInLine])); }
public void TestAnyAndIfElse1Success() { var ifElseContainer = new Sequence(); ifElseContainer .If(new StringUnit("lexem")); ifElseContainer .Else(new StringUnit("xxx")); var anyContainer = new ContainerAnyUnits(); anyContainer.Add(ifElseContainer); anyContainer.Add(new StringUnit("aaa")); var sequence = new Sequence().AddIgnoreSymbol(' '); UnitError error = null; sequence .Add(anyContainer) .Error(x => error = x); var result = sequence.DecodeLine("lexem aaa"); Assert.IsTrue(result); Assert.IsTrue(error == null); }