Mercurial > hg > orthanc
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)); + } }