ExprTest.cc 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright: All Rights Reserved
  2. // Author: egametang@gmail.com (tanghai)
  3. #include <gtest/gtest.h>
  4. #include <gmock/gmock.h>
  5. #include "Orm/Column.h"
  6. namespace Egametang {
  7. class ExprTest: public testing::Test
  8. {
  9. };
  10. TEST_F(ExprTest, Or)
  11. {
  12. Column leftColumn("age");
  13. Oper leftOper(leftColumn, ">", 10);
  14. Column rightColumn("name");
  15. Oper rightOper(rightColumn, "like", "%tanghai");
  16. Or orExpr(leftOper, rightOper);
  17. ASSERT_EQ("(age > 10) or (name like '%tanghai') ", orExpr.ToString());
  18. }
  19. TEST_F(ExprTest, And)
  20. {
  21. Column leftColumn("age");
  22. Oper leftOper(leftColumn, ">", 10);
  23. Column rightColumn("name");
  24. Oper rightOper(rightColumn, "like", "%tanghai");
  25. And andExpr(leftOper, rightOper);
  26. ASSERT_EQ("(age > 10) and (name like '%tanghai') ", andExpr.ToString());
  27. }
  28. TEST_F(ExprTest, Not)
  29. {
  30. Column column("age");
  31. Oper oper(column, ">", 10);
  32. Not notExpr(oper);
  33. ASSERT_EQ("not (age > 10) ", notExpr.ToString());
  34. }
  35. } // namespace Egametang
  36. int main(int argc, char* argv[])
  37. {
  38. testing::InitGoogleTest(&argc, argv);
  39. return RUN_ALL_TESTS();
  40. }