tanghai před 14 roky
rodič
revize
7cd4b4b440

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

@@ -21,11 +21,13 @@ SET_PROPERTY(TARGET Orm PROPERTY FOLDER "Platform")
 ADD_EXECUTABLE(SelectTest SelectTest.cc)
 ADD_EXECUTABLE(MessageFieldTest MessageFieldTest.cc)
 ADD_EXECUTABLE(ColumnTest ColumnTest.cc)
+ADD_EXECUTABLE(ExprTest ExprTest.cc)
 
 SET(Tests
 	SelectTest
 	MessageFieldTest
 	ColumnTest
+	ExprTest
 )
 
 FOREACH(Test ${Tests})

+ 3 - 0
Cpp/Platform/Orm/Column.cc

@@ -1,3 +1,6 @@
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
+
 #include "Orm/Column.h"
 
 namespace Egametang {

+ 3 - 0
Cpp/Platform/Orm/Column.h

@@ -1,3 +1,6 @@
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
+
 #ifndef ORM_COLUMN_H
 #define ORM_COLUMN_H
 

+ 2 - 2
Cpp/Platform/Orm/ColumnTest.cc

@@ -1,5 +1,5 @@
-// Copyright 2011 Netease Inc. All Rights Reserved.
-// Author: tanghai@corp.netease.com (tanghai)
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
 
 #include <gtest/gtest.h>
 #include <gmock/gmock.h>

+ 45 - 1
Cpp/Platform/Orm/ExprTest.cc

@@ -1,8 +1,52 @@
 // Copyright: All Rights Reserved
 // Author: egametang@gmail.com (tanghai)
 
-#include "Orm/Expr.h"
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+#include <glog/logging.h>
+#include <gflags/gflags.h>
+#include "Orm/Column.h"
 
 namespace Egametang {
 
+class ExprTest: public testing::Test
+{
+};
+
+TEST_F(ExprTest, Or)
+{
+	Column leftColumn("age");
+	Oper leftOper(leftColumn, ">", 10);
+	Column rightColumn("name");
+	Oper rightOper(rightColumn, "like", "%tanghai");
+	Or orExpr(leftOper, rightOper);
+	ASSERT_EQ("(age > 10) or (name like '%tanghai') ", orExpr.ToString());
+}
+
+TEST_F(ExprTest, And)
+{
+	Column leftColumn("age");
+	Oper leftOper(leftColumn, ">", 10);
+	Column rightColumn("name");
+	Oper rightOper(rightColumn, "like", "%tanghai");
+	And andExpr(leftOper, rightOper);
+	ASSERT_EQ("(age > 10) and (name like '%tanghai') ", andExpr.ToString());
+}
+
+TEST_F(ExprTest, Not)
+{
+	Column column("age");
+	Oper oper(column, ">", 10);
+	Not notExpr(oper);
+	ASSERT_EQ("not (age > 10) ", notExpr.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();
+}

+ 3 - 0
Cpp/Platform/Orm/MessageField.cc

@@ -1,3 +1,6 @@
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
+
 #include <string>
 #include <iostream>
 #include <boost/algorithm/string.hpp>

+ 3 - 0
Cpp/Platform/Orm/MessageField.h

@@ -1,3 +1,6 @@
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
+
 #ifndef ORM_MESSAGEFIELD_H
 #define ORM_MESSAGEFIELD_H
 

+ 2 - 2
Cpp/Platform/Orm/MessageFieldTest.cc

@@ -1,5 +1,5 @@
-// Copyright 2011 Netease Inc. All Rights Reserved.
-// Author: tanghai@corp.netease.com (tanghai)
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
 
 #include <sstream>
 #include <boost/make_shared.hpp>

+ 3 - 0
Cpp/Platform/Orm/Person.proto

@@ -1,3 +1,6 @@
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
+
 package Egametang;
 
 message Item {

+ 3 - 0
Cpp/Platform/Orm/Select.h

@@ -1,3 +1,6 @@
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
+
 #ifndef ORM_QUERY_H
 #define ORM_QUERY_H
 

+ 3 - 0
Cpp/Platform/Orm/SelectTest.cc

@@ -1,3 +1,6 @@
+// Copyright: All Rights Reserved
+// Author: egametang@gmail.com (tanghai)
+
 #include <gtest/gtest.h>
 #include <glog/logging.h>
 #include <gflags/gflags.h>