public void SplitByToken_WhenWhereClause_ExpectQueryPart()
        {
            // Arrange
            var tokenSplitter = new TokenSplitter();

            // Act
            var stopwatch    = Stopwatch.StartNew();
            var splitByToken = tokenSplitter.SplitByToken("where::name:\"test\" AND value:2 OR where:\"something\"");

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(splitByToken, Is.Not.Null);

            Assert.That(splitByToken.Where, Is.EqualTo("name:\"test\" AND value:2 OR where:\"something\""));
        }
        public void SplitByToken_WhenPageClause_ExpectQueryPart()
        {
            // Arrange
            var tokenSplitter = new TokenSplitter();

            // Act
            var stopwatch    = Stopwatch.StartNew();
            var splitByToken = tokenSplitter.SplitByToken("page::1,10");

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(splitByToken, Is.Not.Null);

            Assert.That(splitByToken.Page, Is.EqualTo("1,10"));
        }
        public void SplitByToken_WhenOrderByClause_ExpectQueryPart()
        {
            // Arrange
            var tokenSplitter = new TokenSplitter();

            // Act
            var stopwatch    = Stopwatch.StartNew();
            var splitByToken = tokenSplitter.SplitByToken("orderby::\"User Name\" asc");

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(splitByToken, Is.Not.Null);

            Assert.That(splitByToken.OrderBy, Is.EqualTo("\"User Name\" asc"));
        }
Beispiel #4
0
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        /// <typeparam name="TEntity">The type of the entity.</typeparam>
        /// <param name="parserOptions">The parser options.</param>
        /// <returns>The IEntityParser.</returns>
        private static object Initialize <TEntity>(ParserOptions parserOptions)
        {
            var tokenSplitter = new TokenSplitter();

            var rangeParser  = new RangeParser();
            var equalsParser = new EqualsParser();

            var entityParser = new EntityParser <TEntity>();
            var typeSplitter = new TypeSplitter();

            var whereStatementParser = new WhereStatementParser <TEntity>(rangeParser, equalsParser, entityParser, typeSplitter);
            var whereParser          = new WhereParser(whereStatementParser, parserOptions);
            var orderByParser        = new OrderByParser <TEntity>(entityParser);
            var pageParser           = new PageParser();
            var selectParser         = new SelectParser <TEntity>(entityParser);

            return(new StatementParser(tokenSplitter, whereParser, pageParser, orderByParser, selectParser));
        }
        public void SplitByToken_WhenComplexQuery_ExpectAllPartsSplit()
        {
            // Arrange
            var tokenSplitter = new TokenSplitter();

            // Act
            var stopwatch    = Stopwatch.StartNew();
            var splitByToken = tokenSplitter.SplitByToken("where::where:\"where value\" AND value:\"Other\" orderby::\"Name\" asc page::1,25");

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(splitByToken, Is.Not.Null);

            Assert.That(splitByToken.Where, Is.EqualTo("where:\"where value\" AND value:\"Other\""));
            Assert.That(splitByToken.OrderBy, Is.EqualTo("\"Name\" asc"));
            Assert.That(splitByToken.Page, Is.EqualTo("1,25"));
        }