diff --git a/repertory/repertory_test/src/database_test.cpp b/repertory/repertory_test/src/database_test.cpp index a4a2deb4..49b1949f 100644 --- a/repertory/repertory_test/src/database_test.cpp +++ b/repertory/repertory_test/src/database_test.cpp @@ -189,6 +189,27 @@ TEST_F(database_test, db_select_where_query) { query_str.c_str()); } +TEST_F(database_test, db_select_where_with_group_query) { + auto query = + db::db_select{*db3.get(), "table"} + .group([](auto &grp) { + grp.where("column1").equals("a").or_().where("column1").equals("b"); + }) + .and_() + .group([](auto &grp) { + grp.where("column2").equals("c").or_().where("column2").equals("d"); + }) + .or_() + .group([](auto &grp) { + grp.where("column1").equals("e").or_().where("column2").equals("f"); + }); + auto query_str = query.dump(); + std::cout << query_str << std::endl; + EXPECT_STREQ( + R"(SELECT * FROM "table" WHERE ("column1"=?1 OR "column1"=?2) AND ("column2"=?3 OR "column2"=?4) OR ("column1"=?5 OR "column2"=?6))", + query_str.c_str()); +} + TEST_F(database_test, db_select_columns_query) { auto query = db::db_select{*db3.get(), "table"} .column("column1")