Browse Source

Update tests

- Add enum serialization test
- Change local enums tests
Alexey Edelev 6 years ago
parent
commit
41ae2aa444
4 changed files with 44 additions and 18 deletions
  1. 1 0
      tests/CMakeLists.txt
  2. 10 0
      tests/proto/simpletest.proto
  3. 10 0
      tests/serializationtest.cpp
  4. 23 18
      tests/simpletest.cpp

+ 1 - 0
tests/CMakeLists.txt

@@ -72,6 +72,7 @@ set(EXPECTED_GENERATED_HEADERS
     stepchildenummessage.h
     testserviceclient.h
     testserviceserver.h
+    simpleenumlistmessage.h
 )
 
 foreach(EXPECTED_GENERATED_HEADER ${EXPECTED_GENERATED_HEADERS})

+ 10 - 0
tests/proto/simpletest.proto

@@ -13,6 +13,16 @@ message SimpleEnumMessage {
   }
 
   LocalEnum localEnum = 1;
+}
+
+message SimpleEnumListMessage {
+  enum LocalEnum {
+    LOCAL_ENUM_VALUE0 = 0;
+    LOCAL_ENUM_VALUE1 = 1;
+    LOCAL_ENUM_VALUE2 = 2;
+    LOCAL_ENUM_VALUE3 = 3;
+  }
+
   repeated LocalEnum localEnumList = 2;
 }
 

+ 10 - 0
tests/serializationtest.cpp

@@ -55,6 +55,7 @@
 #include "repeatedfloatmessage.h"
 #include "repeatedcomplexmessage.h"
 #include "simpleboolmessage.h"
+#include "simpleenummessage.h"
 #include "qtprotobuf.h"
 
 using namespace qtprotobufnamespace::tests;
@@ -1626,6 +1627,15 @@ TEST_F(SerializationTest, BoolMessageSerializeTest)
     ASSERT_TRUE(result == QByteArray::fromHex(""));
 }
 
+TEST_F(SerializationTest, SimpleEnumMessageTest)
+{
+    SimpleEnumMessage test;
+    test.setLocalEnum(SimpleEnumMessage::LOCAL_ENUM_VALUE0);
+    QByteArray result = test.serialize();
+    ASSERT_EQ(2, result.size());
+    ASSERT_TRUE(result == QByteArray::fromHex("0801"));
+}
+
 //TEST_F(SerializationTest, DISABLE_BenchmarkTest)
 //{
 //    SimpleIntMessage msg;

+ 23 - 18
tests/simpletest.cpp

@@ -41,6 +41,7 @@
 #include "simplefloatmessage.h"
 #include "simpledoublemessage.h"
 #include "simpleenummessage.h"
+#include "simpleenumlistmessage.h"
 #include "simplefileenummessage.h"
 #include "simpleexternalenummessage.h"
 #include "externalcomplexmessage.h"
@@ -256,7 +257,7 @@ TEST_F(SimpleTest, SimpleDoubleMessageTest)
     ASSERT_FLOAT_EQ(test.testFieldDouble(), 0.55);
 }
 
-TEST_F(SimpleTest, SimpleLocalEnumsTest)
+TEST_F(SimpleTest, SimpleLocalEnumTest)
 {
     ASSERT_GT(SimpleEnumMessage::staticMetaObject.enumeratorCount(), 0);
     QMetaEnum simpleEnum;
@@ -277,25 +278,29 @@ TEST_F(SimpleTest, SimpleLocalEnumsTest)
     ASSERT_EQ(simpleEnum.value(1), 1);
     ASSERT_EQ(simpleEnum.value(2), 2);
     ASSERT_EQ(simpleEnum.value(3), 3);
+}
 
+TEST_F(SimpleTest, SimpleLocalEnumListTest)
+{
+    ASSERT_GT(SimpleEnumListMessage::staticMetaObject.enumeratorCount(), 0);
     const char* propertyName = "localEnumList";
-    SimpleEnumMessage test;
-    int propertyNumber = SimpleEnumMessage::propertyOrdering.at(2); //See simpletest.proto
-    ASSERT_STREQ(SimpleEnumMessage::staticMetaObject.property(propertyNumber).typeName(), "LocalEnumList");
-    ASSERT_EQ(SimpleEnumMessage::staticMetaObject.property(propertyNumber).userType(), qMetaTypeId<SimpleEnumMessage::LocalEnumList>());
-    ASSERT_STREQ(SimpleEnumMessage::staticMetaObject.property(propertyNumber).name(), propertyName);
-    ASSERT_TRUE(test.setProperty(propertyName, QVariant::fromValue<SimpleEnumMessage::LocalEnumList>({SimpleEnumMessage::LOCAL_ENUM_VALUE2,
-                                                                                                      SimpleEnumMessage::LOCAL_ENUM_VALUE2,
-                                                                                                      SimpleEnumMessage::LOCAL_ENUM_VALUE1,
-                                                                                                      SimpleEnumMessage::LOCAL_ENUM_VALUE3})));
-    ASSERT_TRUE(test.property(propertyName).value<SimpleEnumMessage::LocalEnum>() == QVariant::fromValue<SimpleEnumMessage::LocalEnumList>({SimpleEnumMessage::LOCAL_ENUM_VALUE2,
-                                                                                                                                            SimpleEnumMessage::LOCAL_ENUM_VALUE2,
-                                                                                                                                            SimpleEnumMessage::LOCAL_ENUM_VALUE1,
-                                                                                                                                            SimpleEnumMessage::LOCAL_ENUM_VALUE3}));
-    ASSERT_TRUE(test.localEnumList() == SimpleEnumMessage::LocalEnumList({SimpleEnumMessage::LOCAL_ENUM_VALUE2,
-                                                                          SimpleEnumMessage::LOCAL_ENUM_VALUE2,
-                                                                          SimpleEnumMessage::LOCAL_ENUM_VALUE1,
-                                                                          SimpleEnumMessage::LOCAL_ENUM_VALUE3}));
+    SimpleEnumListMessage test;
+    int propertyNumber = SimpleEnumListMessage::propertyOrdering.at(2); //See simpletest.proto
+    ASSERT_STREQ(SimpleEnumListMessage::staticMetaObject.property(propertyNumber).typeName(), "LocalEnumList");
+    ASSERT_EQ(SimpleEnumListMessage::staticMetaObject.property(propertyNumber).userType(), qMetaTypeId<SimpleEnumListMessage::LocalEnumList>());
+    ASSERT_STREQ(SimpleEnumListMessage::staticMetaObject.property(propertyNumber).name(), propertyName);
+    ASSERT_TRUE(test.setProperty(propertyName, QVariant::fromValue<SimpleEnumListMessage::LocalEnumList>({SimpleEnumListMessage::LOCAL_ENUM_VALUE2,
+                                                                                                      SimpleEnumListMessage::LOCAL_ENUM_VALUE2,
+                                                                                                      SimpleEnumListMessage::LOCAL_ENUM_VALUE1,
+                                                                                                      SimpleEnumListMessage::LOCAL_ENUM_VALUE3})));
+    ASSERT_TRUE(test.property(propertyName).value<SimpleEnumListMessage::LocalEnum>() == QVariant::fromValue<SimpleEnumListMessage::LocalEnumList>({SimpleEnumListMessage::LOCAL_ENUM_VALUE2,
+                                                                                                                                            SimpleEnumListMessage::LOCAL_ENUM_VALUE2,
+                                                                                                                                            SimpleEnumListMessage::LOCAL_ENUM_VALUE1,
+                                                                                                                                            SimpleEnumListMessage::LOCAL_ENUM_VALUE3}));
+    ASSERT_TRUE(test.localEnumList() == SimpleEnumListMessage::LocalEnumList({SimpleEnumListMessage::LOCAL_ENUM_VALUE2,
+                                                                          SimpleEnumListMessage::LOCAL_ENUM_VALUE2,
+                                                                          SimpleEnumListMessage::LOCAL_ENUM_VALUE1,
+                                                                          SimpleEnumListMessage::LOCAL_ENUM_VALUE3}));
 }
 
 TEST_F(SimpleTest, SimpleExternalEnumMessageTest)