ExprTest.cc 1.2 KB

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