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