diff UnitTestsSources/MultiThreadingTests.cpp @ 2845:218e2c864d1d

serialization of SplitStudyJob
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 28 Sep 2018 17:59:44 +0200
parents ff0ed5ea9e4e
children 2da68edacab6
line wrap: on
line diff
--- a/UnitTestsSources/MultiThreadingTests.cpp	Fri Sep 28 16:48:43 2018 +0200
+++ b/UnitTestsSources/MultiThreadingTests.cpp	Fri Sep 28 17:59:44 2018 +0200
@@ -63,6 +63,7 @@
 #include "../OrthancServer/ServerJobs/DicomModalityStoreJob.h"
 #include "../OrthancServer/ServerJobs/OrthancPeerStoreJob.h"
 #include "../OrthancServer/ServerJobs/ResourceModificationJob.h"
+#include "../OrthancServer/ServerJobs/SplitStudyJob.h"
 
 
 using namespace Orthanc;
@@ -1463,9 +1464,9 @@
 
 TEST_F(OrthancJobsSerialization, Jobs)
 {
-  // ArchiveJob
+  Json::Value s;
 
-  Json::Value s;
+  // ArchiveJob
 
   {
     boost::shared_ptr<TemporaryFile> tmp(new TemporaryFile);
@@ -1557,6 +1558,43 @@
     ASSERT_EQ(RequestOrigin_Lua, tmp.GetOrigin().GetRequestOrigin());
     ASSERT_TRUE(tmp.GetModification().IsRemoved(DICOM_TAG_STUDY_DESCRIPTION));
   }
+
+  // SplitStudyJob
+
+  std::string id;
+  ASSERT_TRUE(CreateInstance(id));
+
+  std::string study, series;
+
+  {
+    ServerContext::DicomCacheLocker lock(GetContext(), id);
+    study = lock.GetDicom().GetHasher().HashStudy();
+    series = lock.GetDicom().GetHasher().HashSeries();
+  }
+
+  {
+    ASSERT_THROW(SplitStudyJob(GetContext(), std::string("nope")), OrthancException);
+
+    SplitStudyJob job(GetContext(), study);
+    job.SetKeepSource(true);
+    job.AddSourceSeries(series);
+    ASSERT_THROW(job.AddSourceSeries("nope"), OrthancException);
+    job.SetOrigin(DicomInstanceOrigin::FromLua());
+    
+    ASSERT_TRUE(CheckIdempotentSetOfInstances(unserializer, job));
+    ASSERT_TRUE(job.Serialize(s));
+  }
+
+  {
+    std::auto_ptr<IJob> job;
+    job.reset(unserializer.UnserializeJob(s));
+
+    SplitStudyJob& tmp = dynamic_cast<SplitStudyJob&>(*job);
+    ASSERT_TRUE(tmp.IsKeepSource());
+    ASSERT_EQ(study, tmp.GetSourceStudy());
+    ASSERT_EQ(RequestOrigin_Lua, tmp.GetOrigin().GetRequestOrigin());
+    //ASSERT_TRUE(tmp.GetModification().IsRemoved(DICOM_TAG_STUDY_DESCRIPTION));
+  }
 }