Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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());
        }