diff UnitTestsSources/MultiThreadingTests.cpp @ 2847:2da68edacab6

unit testing of SplitStudyJob
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 28 Sep 2018 19:17:04 +0200
parents 218e2c864d1d
children 52b017d22a4f
line wrap: on
line diff
--- a/UnitTestsSources/MultiThreadingTests.cpp	Fri Sep 28 18:36:20 2018 +0200
+++ b/UnitTestsSources/MultiThreadingTests.cpp	Fri Sep 28 19:17:04 2018 +0200
@@ -1036,8 +1036,8 @@
     ASSERT_FALSE(job.HasTrailingStep());
     ASSERT_FALSE(job.IsTrailingStepDone());
     job.Start();
-    job.Step();
-    job.Step();
+    ASSERT_EQ(JobStepCode_Continue, job.Step().GetCode());
+    ASSERT_EQ(JobStepCode_Continue, job.Step().GetCode());
 
     {
       DummyUnserializer unserializer;
@@ -1573,27 +1573,58 @@
   }
 
   {
-    ASSERT_THROW(SplitStudyJob(GetContext(), std::string("nope")), OrthancException);
+    std::string a, b, c;
+
+    {
+      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());
+      SplitStudyJob job(GetContext(), study);
+      job.SetKeepSource(true);
+      job.AddSourceSeries(series);
+      ASSERT_THROW(job.AddSourceSeries("nope"), OrthancException);
+      job.SetOrigin(DicomInstanceOrigin::FromLua());
+      job.Replace(DICOM_TAG_PATIENT_NAME, "hello");
+      job.Remove(DICOM_TAG_PATIENT_BIRTH_DATE);
+      ASSERT_THROW(job.Replace(DICOM_TAG_SERIES_DESCRIPTION, "nope"), OrthancException);
+      ASSERT_THROW(job.Remove(DICOM_TAG_SERIES_DESCRIPTION), OrthancException);
     
-    ASSERT_TRUE(CheckIdempotentSetOfInstances(unserializer, job));
-    ASSERT_TRUE(job.Serialize(s));
-  }
+      ASSERT_TRUE(job.GetTargetStudy().empty());
+      a = job.GetTargetStudyUid();
+      ASSERT_TRUE(job.LookupTargetSeriesUid(b, series));
+
+      job.Start();
+      ASSERT_EQ(JobStepCode_Continue, job.Step().GetCode());
+      ASSERT_EQ(JobStepCode_Success, job.Step().GetCode());
+
+      c = job.GetTargetStudy();
+      ASSERT_FALSE(c.empty());
+
+      ASSERT_TRUE(CheckIdempotentSetOfInstances(unserializer, job));
+      ASSERT_TRUE(job.Serialize(s));
+    }
+
+    {
+      std::auto_ptr<IJob> job;
+      job.reset(unserializer.UnserializeJob(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(a, tmp.GetTargetStudyUid());
+      ASSERT_EQ(RequestOrigin_Lua, tmp.GetOrigin().GetRequestOrigin());
 
-    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));
+      std::string s;
+      ASSERT_EQ(c, tmp.GetTargetStudy());
+      ASSERT_FALSE(tmp.LookupTargetSeriesUid(s, "nope"));
+      ASSERT_TRUE(tmp.LookupTargetSeriesUid(s, series));
+      ASSERT_EQ(b, s);
+
+      ASSERT_FALSE(tmp.LookupReplacement(s, DICOM_TAG_STUDY_DESCRIPTION));
+      ASSERT_TRUE(tmp.LookupReplacement(s, DICOM_TAG_PATIENT_NAME));
+      ASSERT_EQ("hello", s);
+      ASSERT_FALSE(tmp.IsRemoved(DICOM_TAG_PATIENT_NAME));
+      ASSERT_TRUE(tmp.IsRemoved(DICOM_TAG_PATIENT_BIRTH_DATE));
+    }
   }
 }