comparison 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
comparison
equal deleted inserted replaced
2844:99863d6245b2 2845:218e2c864d1d
61 61
62 #include "../OrthancServer/ServerJobs/ArchiveJob.h" 62 #include "../OrthancServer/ServerJobs/ArchiveJob.h"
63 #include "../OrthancServer/ServerJobs/DicomModalityStoreJob.h" 63 #include "../OrthancServer/ServerJobs/DicomModalityStoreJob.h"
64 #include "../OrthancServer/ServerJobs/OrthancPeerStoreJob.h" 64 #include "../OrthancServer/ServerJobs/OrthancPeerStoreJob.h"
65 #include "../OrthancServer/ServerJobs/ResourceModificationJob.h" 65 #include "../OrthancServer/ServerJobs/ResourceModificationJob.h"
66 #include "../OrthancServer/ServerJobs/SplitStudyJob.h"
66 67
67 68
68 using namespace Orthanc; 69 using namespace Orthanc;
69 70
70 namespace 71 namespace
1461 } 1462 }
1462 1463
1463 1464
1464 TEST_F(OrthancJobsSerialization, Jobs) 1465 TEST_F(OrthancJobsSerialization, Jobs)
1465 { 1466 {
1467 Json::Value s;
1468
1466 // ArchiveJob 1469 // ArchiveJob
1467
1468 Json::Value s;
1469 1470
1470 { 1471 {
1471 boost::shared_ptr<TemporaryFile> tmp(new TemporaryFile); 1472 boost::shared_ptr<TemporaryFile> tmp(new TemporaryFile);
1472 ArchiveJob job(tmp, GetContext(), false, false); 1473 ArchiveJob job(tmp, GetContext(), false, false);
1473 ASSERT_FALSE(job.Serialize(s)); // Cannot serialize this 1474 ASSERT_FALSE(job.Serialize(s)); // Cannot serialize this
1555 ResourceModificationJob& tmp = dynamic_cast<ResourceModificationJob&>(*job); 1556 ResourceModificationJob& tmp = dynamic_cast<ResourceModificationJob&>(*job);
1556 ASSERT_TRUE(tmp.IsAnonymization()); 1557 ASSERT_TRUE(tmp.IsAnonymization());
1557 ASSERT_EQ(RequestOrigin_Lua, tmp.GetOrigin().GetRequestOrigin()); 1558 ASSERT_EQ(RequestOrigin_Lua, tmp.GetOrigin().GetRequestOrigin());
1558 ASSERT_TRUE(tmp.GetModification().IsRemoved(DICOM_TAG_STUDY_DESCRIPTION)); 1559 ASSERT_TRUE(tmp.GetModification().IsRemoved(DICOM_TAG_STUDY_DESCRIPTION));
1559 } 1560 }
1561
1562 // SplitStudyJob
1563
1564 std::string id;
1565 ASSERT_TRUE(CreateInstance(id));
1566
1567 std::string study, series;
1568
1569 {
1570 ServerContext::DicomCacheLocker lock(GetContext(), id);
1571 study = lock.GetDicom().GetHasher().HashStudy();
1572 series = lock.GetDicom().GetHasher().HashSeries();
1573 }
1574
1575 {
1576 ASSERT_THROW(SplitStudyJob(GetContext(), std::string("nope")), OrthancException);
1577
1578 SplitStudyJob job(GetContext(), study);
1579 job.SetKeepSource(true);
1580 job.AddSourceSeries(series);
1581 ASSERT_THROW(job.AddSourceSeries("nope"), OrthancException);
1582 job.SetOrigin(DicomInstanceOrigin::FromLua());
1583
1584 ASSERT_TRUE(CheckIdempotentSetOfInstances(unserializer, job));
1585 ASSERT_TRUE(job.Serialize(s));
1586 }
1587
1588 {
1589 std::auto_ptr<IJob> job;
1590 job.reset(unserializer.UnserializeJob(s));
1591
1592 SplitStudyJob& tmp = dynamic_cast<SplitStudyJob&>(*job);
1593 ASSERT_TRUE(tmp.IsKeepSource());
1594 ASSERT_EQ(study, tmp.GetSourceStudy());
1595 ASSERT_EQ(RequestOrigin_Lua, tmp.GetOrigin().GetRequestOrigin());
1596 //ASSERT_TRUE(tmp.GetModification().IsRemoved(DICOM_TAG_STUDY_DESCRIPTION));
1597 }
1560 } 1598 }
1561 1599
1562 1600
1563 TEST(JobsSerialization, Registry) 1601 TEST(JobsSerialization, Registry)
1564 { 1602 {