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

            var result = parser.TryParseCharacterRange(stream);

            Assert.IsFalse(result.IsSuccess);
            Assert.AreEqual(RegSeedErrorType.None, result.ErrorType);
            stream.Received(0).Pop();
        }
Esempio n. 2
0
        public void TryParseCharacterRange_ReturnsFailureResult_WhenFirstStreamCharacterIsNotValidCharacter()
        {
            _alphabet.IsValid(Arg.Any <string>()).Returns(false);
            var stream = GetStringStreamFor("n-2");
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacterRange(stream);

            Assert.IsFalse(result.IsSuccess);
            Assert.AreEqual(RegSeedErrorType.None, result.ErrorType);
            _alphabet.Received(1).IsValid(Arg.Any <string>());
            stream.Received(0).Pop();
        }
Esempio n. 3
0
        public void TryParseCharacterRange_ReturnsFailureResult_WhenThirdCharacterIsInvalidCharacter(string inputStream)
        {
            _alphabet.IsValid(Arg.Any <string>()).Returns(x => !x[0].Equals("s"));
            var stream = GetStringStreamFor(inputStream);
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacterRange(stream);

            Assert.IsFalse(result.IsSuccess);
            Assert.AreEqual(RegSeedErrorType.CharacterRangeExpected, result.ErrorType);
            _alphabet.Received(2).IsValid(Arg.Any <string>());
            stream.Received(0).Pop();
        }
Esempio n. 4
0
        public void TryParseCharacterRange_ReturnsSuccessResult_WhenStreamIsCorrectCharacterRange(string inputStream,
                                                                                                  string expectedStart, string expectedEnd, int expectedPops)
        {
            _alphabet.IsValid(Arg.Any <string>()).Returns(true);
            _alphabet.TryGetRange(Arg.Any <string>(), Arg.Any <string>(), out _).Returns(new SuccessResult());
            var stream = GetStringStreamFor(inputStream);
            var parser = new PrimitiveParser(_alphabet);

            var result = parser.TryParseCharacterRange(stream);

            Assert.IsTrue(result.IsSuccess);
            _alphabet.Received(2).IsValid(Arg.Any <string>());
            _alphabet.Received(1).TryGetRange(expectedStart, expectedEnd, out _);
            stream.Received(expectedPops).Pop();
        }
Esempio n. 5
0
        public void TryParseCharacterRange_ThrowsArgumentNullException_WhenInputStreamIsNull()
        {
            var parser = new PrimitiveParser(_alphabet);

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