Esempio n. 1
0
        public void TryParseCharacter_ReturnsSuccessResult_WhenStringContainsValidCharacters(string input)
        {
            var stream = GetStringStreamFor(input);
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacter(stream);

            Assert.IsTrue(result.IsSuccess);
            Assert.AreEqual("U", result.Value);
        }
Esempio n. 2
0
        public void TryParseCharacter_ReturnsFailureResult_WhenStringIsEmpty()
        {
            var stream = GetStringStreamFor("");
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacter(stream);

            Assert.IsFalse(result.IsSuccess);
            stream.Received(0).Pop();
        }
Esempio n. 3
0
        public void TryParseCharacter_ReturnsFailureResult_WhenStringContainsOnlyEscapeCharacter()
        {
            var stream = GetStringStreamFor(SpecialCharacters.Escape);
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacter(stream);

            Assert.IsFalse(result.IsSuccess);
            stream.Received(0).Pop();
        }
Esempio n. 4
0
        public void TryParseCharacter_ReturnsFailureResult_WhenStringConsistsOfEscapeCharacterAndInvalidCharacter()
        {
            _alphabet.IsValid(Arg.Any <string>()).Returns(x => !x[0].Equals("N"));
            var stream = GetStringStreamFor($"{SpecialCharacters.Escape}N");
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacter(stream);

            Assert.IsFalse(result.IsSuccess);
            stream.Received(0).Pop();
        }
Esempio n. 5
0
        public void TryParseCharacter_ReturnsSuccessResult_WhenStringStartsWithEscapeAndContainsOnlyValidCharacters(
            string input, string expected)
        {
            var stream = GetStringStreamFor(input);
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacter(stream);

            Assert.IsTrue(result.IsSuccess);
            Assert.AreEqual(expected, result.Value);
            stream.Received(2).Pop();
        }
Esempio n. 6
0
        public void TryParseCharacter_ReturnsFailureResult_WhenCharacterNotValidCharacter()
        {
            var stream = GetStringStreamFor("a");

            _alphabet.IsValid(Arg.Any <string>()).Returns(false);

            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacter(stream);

            Assert.IsFalse(result.IsSuccess);
            _alphabet.Received(1).IsValid(Arg.Any <string>());
            stream.Received(0).Pop();
        }
Esempio n. 7
0
        public void TryParseCharacter_ThrowsArgumentNullException_WhenStreamIsNull()
        {
            var parser = new PrimitiveParser(_alphabet);

            Assert.Throws <ArgumentNullException>(() => parser.TryParseCharacter(null));
        }