Esempio n. 1
0
        public void Add_ThrowsException_WhenLetterAlreadyRegistered()
        {
            var parser = new ParserAlphabet();

            parser.Add("e", Substitute.For <ITokenParser>());

            Assert.Throws <ArgumentException>(() => parser.Add("e", Substitute.For <ITokenParser>()));
        }
Esempio n. 2
0
        public void TryGetTokenParser_ReturnsFalse_WhenLetterNotRegistered()
        {
            var parser = new ParserAlphabet();

            var result = parser.TryGetTokenParser("e", out _);

            Assert.IsFalse(result);
        }
Esempio n. 3
0
        public void Add_ReturnsAlphabet_WhenLetterSuccessfullyAdded()
        {
            var parser = new ParserAlphabet();

            var result = parser.Add("e", Substitute.For <ITokenParser>());

            Assert.AreEqual(parser, result);
        }
Esempio n. 4
0
        public void RemoveCharacter_DoesNotThrow_WhenNonAlphabetCharacterIsRemoved()
        {
            var alphabet = new ParserAlphabet();

            alphabet.Add("j", Substitute.For <ITokenParser>()).Add("a", Substitute.For <ITokenParser>());

            Assert.DoesNotThrow(() => alphabet.RemoveCharacter("n"));
        }
Esempio n. 5
0
        public void IsValid_ReturnsFalse_WhenLetterWasNotAdded()
        {
            var parser = new ParserAlphabet();

            var result = parser.IsValid("e");

            Assert.IsFalse(result);
        }
Esempio n. 6
0
        public static IParserAlphabet Minimal(bool areRegexControlCharactersValid = true)
        {
            var parserAlphabet  = new ParserAlphabet();
            var primitiveParser = new PrimitiveParser(parserAlphabet);

            parserAlphabet.AddRegexControlCharacters(primitiveParser, areRegexControlCharactersValid);

            return(parserAlphabet);
        }
Esempio n. 7
0
        public void TryGetRange_ReturnsFailureResult_WhenOneOfTheArgumentsWasNotAdded(string start, string end)
        {
            var parser = new ParserAlphabet();

            parser.Add("e", Substitute.For <ITokenParser>());

            var result = parser.TryGetRange(start, end, out _);

            Assert.IsFalse(result.IsSuccess);
        }
Esempio n. 8
0
        public void IsValid_ReturnsTrue_WhenLetterWasAdded()
        {
            var parser = new ParserAlphabet();

            parser.Add("e", Substitute.For <ITokenParser>());

            var result = parser.IsValid("e");

            Assert.IsTrue(result);
        }
Esempio n. 9
0
        private static ParserAlphabet GetParser(params string[] letters)
        {
            var parser = new ParserAlphabet();

            foreach (var letter in letters)
            {
                parser.Add(letter, Substitute.For <ITokenParser>());
            }

            return(parser);
        }
Esempio n. 10
0
        public void TryGetTokenParser_ReturnsTrue_WhenLetterRegistered()
        {
            var parser = new ParserAlphabet();

            parser.Add("e", Substitute.For <ITokenParser>());

            var result = parser.TryGetTokenParser("e", out var tokenParser);

            Assert.IsTrue(result);
            Assert.IsNotNull(tokenParser);
        }
Esempio n. 11
0
        public void TryGetTokenParser_ReturnsFalse_WhenInitiallyValidCharacterIsRemoved()
        {
            var alphabet = new ParserAlphabet();

            alphabet.Add("F", Substitute.For <ITokenParser>()).Add("r", Substitute.For <ITokenParser>());

            var getParserResult = alphabet.TryGetTokenParser("F", out _);

            Assert.IsTrue(getParserResult);

            alphabet.RemoveCharacter("F");

            getParserResult = alphabet.TryGetTokenParser("F", out _);
            Assert.IsFalse(getParserResult);
        }
Esempio n. 12
0
        public void RemoveCharacter_RemovedCharacterNotValid_WhenWasCharacterWasValidAndAddedBefore()
        {
            var alphabet = new ParserAlphabet();

            alphabet.Add("F", Substitute.For <ITokenParser>()).Add("r", Substitute.For <ITokenParser>());

            var isValidResult = alphabet.IsValid("F");

            Assert.IsTrue(isValidResult);

            alphabet.RemoveCharacter("F");

            var isInvalidResult = alphabet.IsValid("F");

            Assert.IsFalse(isInvalidResult);
        }
Esempio n. 13
0
        public void Add_ThrowsException_WhenTokenParserIsNull()
        {
            var parser = new ParserAlphabet();

            Assert.Throws <ArgumentNullException>(() => parser.Add("e", null));
        }
Esempio n. 14
0
        public void Add_ThrowsException_WhenLetterWithMoreThanOneCharacterIsAdded()
        {
            var parser = new ParserAlphabet();

            Assert.Throws <ArgumentException>(() => parser.Add("ex", Substitute.For <ITokenParser>()));
        }
Esempio n. 15
0
        public void Add_ThrowsException_WhenLetterIsNull()
        {
            var parser = new ParserAlphabet();

            Assert.Throws <ArgumentNullException>(() => parser.Add(null, Substitute.For <ITokenParser>()));
        }