tanghai 14 лет назад
Родитель
Сommit
ced2eab359
3 измененных файлов с 72 добавлено и 1 удалено
  1. 2 0
      Cpp/Platform/Orm/CMakeLists.txt
  2. 1 1
      Cpp/Platform/Orm/Column.h
  3. 69 0
      Cpp/Platform/Orm/ColumnTest.cc

+ 2 - 0
Cpp/Platform/Orm/CMakeLists.txt

@@ -20,10 +20,12 @@ SET_PROPERTY(TARGET Orm PROPERTY FOLDER "Platform")
 
 ADD_EXECUTABLE(SelectTest SelectTest.cc)
 ADD_EXECUTABLE(MessageFieldTest MessageFieldTest.cc)
+ADD_EXECUTABLE(ColumnTest ColumnTest.cc)
 
 SET(Tests
 	SelectTest
 	MessageFieldTest
+	ColumnTest
 )
 
 FOREACH(Test ${Tests})

+ 1 - 1
Cpp/Platform/Orm/Column.h

@@ -47,7 +47,7 @@ public:
 	template <typename T>
 	Expr operator!=(const T& value)
 	{
-		return Oper(*this, "<>", value);
+		return Oper(*this, "!=", value);
 	}
 
 	template <typename T>

+ 69 - 0
Cpp/Platform/Orm/ColumnTest.cc

@@ -1,5 +1,74 @@
+// Copyright 2011 Netease Inc. All Rights Reserved.
+// Author: tanghai@corp.netease.com (tanghai)
+
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+#include <glog/logging.h>
+#include <gflags/gflags.h>
 #include "Orm/Column.h"
 
 namespace Egametang {
 
+class ColumnTest: public testing::Test
+{
+};
+
+TEST_F(ColumnTest, Gt)
+{
+	Column left("age");
+	Expr expr = left > 10;
+	ASSERT_EQ("age > 10", expr.ToString());
+}
+
+TEST_F(ColumnTest, Ge)
+{
+	Column left("age");
+	Expr expr = left >= 10;
+	ASSERT_EQ("age >= 10", expr.ToString());
+}
+
+TEST_F(ColumnTest, Lt)
+{
+	Column left("age");
+	Expr expr = left < 10;
+	ASSERT_EQ("age < 10", expr.ToString());
+}
+
+TEST_F(ColumnTest, Le)
+{
+	Column left("age");
+	Expr expr = left <= 10;
+	ASSERT_EQ("age <= 10", expr.ToString());
+}
+
+TEST_F(ColumnTest, Equal)
+{
+	Column left("age");
+	Expr expr = left == 10;
+	ASSERT_EQ("age = 10", expr.ToString());
+}
+
+TEST_F(ColumnTest, NotEqual)
+{
+	Column left("age");
+	Expr expr = left != 10;
+	ASSERT_EQ("age != 10", expr.ToString());
+}
+
+TEST_F(ColumnTest, Like)
+{
+	Column left("name");
+	Expr expr = left.like("tanghai");
+	ASSERT_EQ("name like 'tanghai'", expr.ToString());
+}
+
 } // namespace Egametang
+
+int main(int argc, char* argv[])
+{
+	testing::InitGoogleTest(&argc, argv);
+	google::InitGoogleLogging(argv[0]);
+	google::ParseCommandLineFlags(&argc, &argv, true);
+	return RUN_ALL_TESTS();
+}
+