public void Lex_StringContainsNoDelimiters_ReturnsNull(string[] options, string testString) { //set up var delimiterLexer = new DelimiterLexer() .UseDelimiters(options); var tokenBuilder = new TokenBuilder(testString.GetEnumerator()); //act var token = delimiterLexer.Lex(tokenBuilder); //test Assert.IsNull(token); }
private void TestLexing(string[] options, string delimiter) { //set up var delimiterLexer = new DelimiterLexer() .UseDelimiters(options); var tokenBuilder = new TokenBuilder(delimiter.GetEnumerator()); //act var token = (DelimiterToken)delimiterLexer.Lex(tokenBuilder); //test Assert.AreEqual(delimiter, token.Content); Assert.IsFalse(tokenBuilder.MoveNext()); }
public void Lex_CustomTokenType_CallsCorrectConstructor(string[] otherOptions, string delimiter) { //set up var delimiterLexer = new DelimiterLexer() .UseDelimiters(otherOptions) .UseDelimiters(content => new CustomDelimiterToken(content), delimiter); var tokenBuilder = new TokenBuilder(delimiter.GetEnumerator()); //act var token = delimiterLexer.Lex(tokenBuilder); //test Assert.IsTrue(token is CustomDelimiterToken); Assert.AreEqual(delimiter, token.Content); Assert.IsFalse(tokenBuilder.MoveNext()); }