Split semantic tests into test cases
Reviewers: florijan, mislav.bradac Reviewed By: mislav.bradac Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D323
This commit is contained in:
parent
1c51ce77ef
commit
35a35f0d5f
@ -281,8 +281,8 @@ TEST(TestSymbolGenerator, MatchWithReturn) {
|
||||
auto with_as_n = AS("n");
|
||||
auto n_ident = IDENT("n");
|
||||
auto ret_as_n = AS("n");
|
||||
auto query =
|
||||
QUERY(MATCH(PATTERN(node)), WITH(old_ident, with_as_n), RETURN(n_ident, ret_as_n));
|
||||
auto query = QUERY(MATCH(PATTERN(node)), WITH(old_ident, with_as_n),
|
||||
RETURN(n_ident, ret_as_n));
|
||||
SymbolTable symbol_table;
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
query->Accept(symbol_generator);
|
||||
@ -556,7 +556,7 @@ TEST(TestSymbolGenerator, SameResults) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, SkipLimitIdentifier) {
|
||||
TEST(TestSymbolGenerator, SkipUsingIdentifier) {
|
||||
// Test MATCH (old) WITH old AS new SKIP old
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
@ -575,20 +575,20 @@ TEST(TestSymbolGenerator, SkipLimitIdentifier) {
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
EXPECT_THROW(query->Accept(symbol_generator), SemanticException);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, LimitUsingIdentifier) {
|
||||
// Test MATCH (n) RETURN n AS n LIMIT n
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
auto query = QUERY(MATCH(PATTERN(NODE("n"))),
|
||||
RETURN(IDENT("n"), AS("n"), SKIP(IDENT("n"))));
|
||||
RETURN(IDENT("n"), AS("n"), LIMIT(IDENT("n"))));
|
||||
SymbolTable symbol_table;
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
EXPECT_THROW(query->Accept(symbol_generator), SemanticException);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, OrderBy) {
|
||||
TEST(TestSymbolGenerator, OrderByAggregation) {
|
||||
// Test MATCH (old) RETURN old AS new ORDER BY COUNT(1)
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
auto query =
|
||||
QUERY(MATCH(PATTERN(NODE("old"))),
|
||||
@ -596,9 +596,10 @@ TEST(TestSymbolGenerator, OrderBy) {
|
||||
SymbolTable symbol_table;
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
EXPECT_THROW(query->Accept(symbol_generator), SemanticException);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, OrderByUnboundVariable) {
|
||||
// Test MATCH (old) RETURN COUNT(old) AS new ORDER BY old
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
auto query =
|
||||
QUERY(MATCH(PATTERN(NODE("old"))),
|
||||
@ -606,9 +607,10 @@ TEST(TestSymbolGenerator, OrderBy) {
|
||||
SymbolTable symbol_table;
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
EXPECT_THROW(query->Accept(symbol_generator), UnboundVariableError);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, AggregationOrderBy) {
|
||||
// Test MATCH (old) RETURN COUNT(old) AS new ORDER BY new
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
auto node = NODE("old");
|
||||
auto ident_old = IDENT("old");
|
||||
@ -626,16 +628,17 @@ TEST(TestSymbolGenerator, OrderBy) {
|
||||
auto new_sym = symbol_table.at(*as_new);
|
||||
EXPECT_NE(old, new_sym);
|
||||
EXPECT_EQ(new_sym, symbol_table.at(*ident_new));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, OrderByOldVariable) {
|
||||
// Test MATCH (old) RETURN old AS new ORDER BY old
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
auto node = NODE("old");
|
||||
auto ident_old = IDENT("old");
|
||||
auto as_new = AS("new");
|
||||
auto by_old = IDENT("old");
|
||||
auto query = QUERY(MATCH(PATTERN(node)),
|
||||
RETURN(ident_old, as_new, ORDER_BY(by_old)));
|
||||
auto query =
|
||||
QUERY(MATCH(PATTERN(node)), RETURN(ident_old, as_new, ORDER_BY(by_old)));
|
||||
SymbolTable symbol_table;
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
query->Accept(symbol_generator);
|
||||
@ -646,10 +649,9 @@ TEST(TestSymbolGenerator, OrderBy) {
|
||||
EXPECT_EQ(old, symbol_table.at(*by_old));
|
||||
auto new_sym = symbol_table.at(*as_new);
|
||||
EXPECT_NE(old, new_sym);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, Merge) {
|
||||
TEST(TestSymbolGenerator, MergeVariableError) {
|
||||
// Test MATCH (n) MERGE (n)
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
@ -670,18 +672,21 @@ TEST(TestSymbolGenerator, Merge) {
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
EXPECT_THROW(query->Accept(symbol_generator), RedeclareVariableError);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, MergeEdgeWithoutType) {
|
||||
// Test MERGE (a) -[r]- (b)
|
||||
{
|
||||
AstTreeStorage storage;
|
||||
auto query = QUERY(MERGE(PATTERN(NODE("a"), EDGE("r"), NODE("b"))));
|
||||
SymbolTable symbol_table;
|
||||
SymbolGenerator symbol_generator(symbol_table);
|
||||
// Edge must have a type, since it doesn't we raise.
|
||||
EXPECT_THROW(query->Accept(symbol_generator), SemanticException);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(TestSymbolGenerator, MergeOnMatchOnCreate) {
|
||||
// Test MATCH (n) MERGE (n) -[r :rel]- (m) ON MATCH SET n.prop = 42
|
||||
// ON CREATE SET m.prop = 42 RETURN r AS r
|
||||
{
|
||||
Dbms dbms;
|
||||
auto dba = dbms.active();
|
||||
auto rel = dba->edge_type("rel");
|
||||
@ -695,8 +700,8 @@ TEST(TestSymbolGenerator, Merge) {
|
||||
auto m_prop = PROPERTY_LOOKUP("m", prop);
|
||||
auto ident_r = IDENT("r");
|
||||
auto as_r = AS("r");
|
||||
auto query = QUERY(MATCH(PATTERN(match_n)),
|
||||
MERGE(PATTERN(merge_n, edge_r, node_m),
|
||||
auto query =
|
||||
QUERY(MATCH(PATTERN(match_n)), MERGE(PATTERN(merge_n, edge_r, node_m),
|
||||
ON_MATCH(SET(n_prop, LITERAL(42))),
|
||||
ON_CREATE(SET(m_prop, LITERAL(42)))),
|
||||
RETURN(ident_r, as_r));
|
||||
@ -717,7 +722,6 @@ TEST(TestSymbolGenerator, Merge) {
|
||||
EXPECT_NE(m, r);
|
||||
EXPECT_NE(m, symbol_table.at(*as_r));
|
||||
EXPECT_EQ(m, symbol_table.at(*m_prop->expression_));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace
|
||||
|
Loading…
Reference in New Issue
Block a user