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(); }
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(); }
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(); }
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(); }
public void TryParseCharacterRange_ThrowsArgumentNullException_WhenInputStreamIsNull() { var parser = new PrimitiveParser(_alphabet); Assert.Throws <ArgumentNullException>(() => parser.TryParseCharacterRange(null)); }