Mercurial > hg > orthanc
diff UnitTestsSources/MultiThreadingTests.cpp @ 2657:5eea2f11e8df jobs
JobsSerialization.GenericJobs
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 06 Jun 2018 16:52:42 +0200 |
parents | a6d3e45eeff5 |
children | ce770f095092 |
line wrap: on
line diff
--- a/UnitTestsSources/MultiThreadingTests.cpp Tue Jun 05 18:25:23 2018 +0200 +++ b/UnitTestsSources/MultiThreadingTests.cpp Wed Jun 06 16:52:42 2018 +0200 @@ -141,7 +141,7 @@ protected: virtual bool HandleInstance(const std::string& instance) { - return true; + return (instance != "nope"); } public: @@ -764,6 +764,32 @@ } +TEST(JobsSerialization, JobOperationValues) +{ + Json::Value s; + + { + JobOperationValues values; + values.Append(new NullOperationValue); + values.Append(new StringOperationValue("hello")); + values.Append(new StringOperationValue("world")); + values.Serialize(s); + } + + { + GenericJobUnserializer unserializer; + std::auto_ptr<JobOperationValues> values(JobOperationValues::Unserialize(unserializer, s)); + ASSERT_EQ(3u, values->GetSize()); + ASSERT_EQ(JobOperationValue::Type_Null, values->GetValue(0).GetType()); + ASSERT_EQ(JobOperationValue::Type_String, values->GetValue(1).GetType()); + ASSERT_EQ(JobOperationValue::Type_String, values->GetValue(2).GetType()); + + ASSERT_EQ("hello", dynamic_cast<const StringOperationValue&>(values->GetValue(1)).GetContent()); + ASSERT_EQ("world", dynamic_cast<const StringOperationValue&>(values->GetValue(2)).GetContent()); + } +} + + TEST(JobsSerialization, GenericValues) { Json::Value s; @@ -796,32 +822,6 @@ } -TEST(JobsSerialization, JobOperationValues) -{ - Json::Value s; - - { - JobOperationValues values; - values.Append(new NullOperationValue); - values.Append(new StringOperationValue("hello")); - values.Append(new StringOperationValue("world")); - values.Serialize(s); - } - - { - GenericJobUnserializer unserializer; - std::auto_ptr<JobOperationValues> values(JobOperationValues::Unserialize(unserializer, s)); - ASSERT_EQ(3u, values->GetSize()); - ASSERT_EQ(JobOperationValue::Type_Null, values->GetValue(0).GetType()); - ASSERT_EQ(JobOperationValue::Type_String, values->GetValue(1).GetType()); - ASSERT_EQ(JobOperationValue::Type_String, values->GetValue(2).GetType()); - - ASSERT_EQ("hello", dynamic_cast<const StringOperationValue&>(values->GetValue(1)).GetContent()); - ASSERT_EQ("world", dynamic_cast<const StringOperationValue&>(values->GetValue(2)).GetContent()); - } -} - - TEST(JobsSerialization, GenericOperations) { Json::Value s; @@ -838,16 +838,14 @@ { std::auto_ptr<IJobOperation> operation; operation.reset(unserializer.UnserializeOperation(s)); - - } - { - + // Make sure that we have indeed unserialized a log operation + ASSERT_THROW(dynamic_cast<DeleteResourceOperation&>(*operation), std::bad_cast); + dynamic_cast<LogJobOperation&>(*operation); } } - TEST(JobsSerialization, GenericJobs) { Json::Value s; @@ -855,9 +853,14 @@ { DummyInstancesJob job; job.SetDescription("description"); + job.AddInstance("hello"); job.AddInstance("nope"); - job.AddInstance("ok"); + job.AddInstance("world"); job.SetPermissive(true); + ASSERT_THROW(job.ExecuteStep(), OrthancException); // Not started yet + job.Start(); + job.ExecuteStep(); + job.ExecuteStep(); job.Serialize(s); } @@ -868,8 +871,18 @@ std::auto_ptr<IJob> job; job.reset(unserializer.UnserializeJob(s)); - ASSERT_EQ("description", dynamic_cast<DummyInstancesJob&>(*job).GetDescription()); - //ASSERT_EQ("nope", dynamic_cast<DummyInstancesJob&>(*job).GetInstance(0)); + + const DummyInstancesJob& tmp = dynamic_cast<const DummyInstancesJob&>(*job); + ASSERT_FALSE(tmp.IsStarted()); + ASSERT_TRUE(tmp.IsPermissive()); + ASSERT_EQ("description", tmp.GetDescription()); + ASSERT_EQ(3u, tmp.GetInstancesCount()); + ASSERT_EQ(2u, tmp.GetPosition()); + ASSERT_EQ(1u, tmp.GetFailedInstances().size()); + ASSERT_EQ("hello", tmp.GetInstance(0)); + ASSERT_EQ("nope", tmp.GetInstance(1)); + ASSERT_EQ("world", tmp.GetInstance(2)); + ASSERT_TRUE(tmp.IsFailedInstance("nope")); } }