diff UnitTestsSources/MultiThreadingTests.cpp @ 2667:5fa2f2ce74f0 jobs

serialization of JobsRegistry
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 08 Jun 2018 15:48:35 +0200
parents 2540ac79ab6c
children 06c0a6b8a871
line wrap: on
line diff
--- a/UnitTestsSources/MultiThreadingTests.cpp	Fri Jun 08 15:05:32 2018 +0200
+++ b/UnitTestsSources/MultiThreadingTests.cpp	Fri Jun 08 15:48:35 2018 +0200
@@ -132,6 +132,8 @@
 
     virtual bool Serialize(Json::Value& value)
     {
+      value = Json::objectValue;
+      value["Type"] = "DummyJob";
       return true;
     }
 
@@ -180,6 +182,10 @@
       {
         return new DummyInstancesJob(value);
       }
+      else if (SerializationToolbox::ReadString(value, "Type") == "DummyJob")
+      {
+        return new DummyJob;
+      }
       else
       {
         return GenericJobUnserializer::UnserializeJob(value);
@@ -1465,5 +1471,22 @@
 
 TEST(JobsSerialization, Registry)
 {   
-  // TODO : Test serialization of JobsRegistry
+  Json::Value s;
+  std::string i1, i2;
+
+  {
+    JobsRegistry registry;
+    registry.Submit(i1, new DummyJob(), 10);
+    registry.Submit(i2, new SequenceOfOperationsJob(), 30);
+    registry.Serialize(s);
+  }
+
+  {
+    DummyUnserializer unserializer;
+    JobsRegistry registry(unserializer, s);
+
+    Json::Value t;
+    registry.Serialize(t);
+    ASSERT_TRUE(CheckSameJson(s, t));
+  }
 }