Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }