blitz_query_cpp

Форк
0
/
tokenizer_tests.cpp 
48 строк · 1.2 Кб
1
#include <gtest/gtest.h>
2
#include <gmock/gmock.h>
3
#include <parser/tokenizer.hpp>
4

5
using namespace blitz_query_cpp;
6

7
TEST(Tokenizer, Empty)
8
{
9
    std::string query = "";
10
    tokenizer_t tokenizer(query);
11
    auto token = tokenizer.next_token();
12
    ASSERT_EQ(token.type, token_type::End);
13
}
14

15
TEST(Tokenizer, TokenizeQuery1)
16
{
17
    std::string query = "\"\"\" \
18
    This is a description \
19
\"\"\"\
20
    query{\r\n\
21
  file(skip: 0, take : 10 where:{name:{contains:\"\\\"\"}}) {\r\n\
22
    pageInfo {\r\n\
23
      hasNextPage\r\n\
24
      # hasPreviousPage\r\n\
25
    }\r\n\
26
    items{\r\n\
27
      filename : name,\r\n\
28
      bucket,\r\n\
29
      {\r\n\
30
        name\r\n\
31
      }\r\n\
32
    }\r\n\
33
    totalCount\r\n\
34
  }\r\n\
35
}";
36

37
    tokenizer_t tokenizer(query);
38

39
    auto token = tokenizer.next_token();
40
    int token_count = 0;
41
    while (token.type != token_type::End && token.type != token_type::InvalidToken)
42
    {
43
        //std::cout << enum_name(token_t.type) << "\t" << token_t.pos << "\t" << token_t.size << "\t" << token_t.value << std::endl;
44
        token = tokenizer.next_token();
45
        token_count++;
46
    }
47
    ASSERT_EQ(token_count, 42);
48
}
49

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.