public void TryGetTokenParser_ReturnsFalse_WhenCharacterIsInvalid() { _alphabet.IsValid(Arg.Any <string>()).Returns(false); var factory = new StatefulParserFactory(_alphabet); var result = factory.TryGetTokenParser("s", out _); Assert.IsFalse(result); }
public void TryGetTokenParser_ReturnsParserFromAlphabet_WhenCharacterClassStateIsNotActivated() { var parser = Substitute.For <ITokenParser>(); _alphabet.TryGetTokenParser(Arg.Any <string>(), out _).Returns(x => { x[1] = parser; return(true); }); var factory = new StatefulParserFactory(_alphabet); var result = factory.TryGetTokenParser("s", out var resultParser); Assert.IsTrue(result); Assert.AreEqual(parser, resultParser); }
public void TryGetTokenParser_CharacterClassStateIsActivated_WhenOpenCharacterClassIsParsed() { var parser = Substitute.For <ITokenParser>(); _alphabet.TryGetTokenParser(Arg.Any <string>(), out _).Returns(x => { x[1] = parser; return(true); }); var factory = new StatefulParserFactory(_alphabet); factory.TryGetTokenParser("s", out var resultParser); Assert.AreEqual(parser, resultParser); factory.TryGetTokenParser(SpecialCharacters.OpenCharacterClass, out resultParser); Assert.AreEqual(parser, resultParser); factory.TryGetTokenParser("s", out resultParser); Assert.IsInstanceOf <CharacterClassCharacterParser>(resultParser); }