diff OrthancFramework/UnitTestsSources/JobsTests.cpp @ 4518:cb8fcecf1b02

new option "Timeout" in "DicomModalities" to set DICOM SCU timeout on a per-modality basis
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 22 Feb 2021 16:32:11 +0100
parents 522e13a60cfc
children 82a314325351
line wrap: on
line diff
--- a/OrthancFramework/UnitTestsSources/JobsTests.cpp	Mon Feb 22 15:27:25 2021 +0100
+++ b/OrthancFramework/UnitTestsSources/JobsTests.cpp	Mon Feb 22 16:32:11 2021 +0100
@@ -1271,6 +1271,8 @@
     modality.Serialize(s, false);
     ASSERT_EQ(Json::arrayValue, s.type());
     ASSERT_FALSE(modality.IsDicomTlsEnabled());
+    ASSERT_FALSE(modality.HasTimeout());
+    ASSERT_EQ(0u, modality.GetTimeout());
   }
 
   {
@@ -1291,6 +1293,8 @@
     ASSERT_FALSE(modality.IsDicomTlsEnabled());
     ASSERT_FALSE(modality.HasLocalAet());
     ASSERT_THROW(modality.GetLocalAet(), OrthancException);
+    ASSERT_FALSE(modality.HasTimeout());
+    ASSERT_EQ(0u, modality.GetTimeout());
   }
 
   s = Json::nullValue;
@@ -1307,6 +1311,8 @@
     modality.Serialize(s, true);
     ASSERT_EQ(Json::objectValue, s.type());
     ASSERT_FALSE(modality.HasLocalAet());
+    ASSERT_FALSE(modality.HasTimeout());
+    ASSERT_EQ(0u, modality.GetTimeout());
   }
 
   {
@@ -1325,6 +1331,8 @@
     ASSERT_TRUE(modality.IsTranscodingAllowed());
     ASSERT_FALSE(modality.IsDicomTlsEnabled());
     ASSERT_FALSE(modality.HasLocalAet());
+    ASSERT_FALSE(modality.HasTimeout());
+    ASSERT_EQ(0u, modality.GetTimeout());
   }
 
   s["Port"] = "46";
@@ -1382,16 +1390,21 @@
   {
     RemoteModalityParameters modality;
     modality.SetLocalAet("hello");
+    modality.SetTimeout(42);
     ASSERT_TRUE(modality.IsAdvancedFormatNeeded());
     modality.Serialize(s, true);
     ASSERT_EQ(Json::objectValue, s.type());
     ASSERT_TRUE(modality.HasLocalAet());
+    ASSERT_TRUE(modality.HasTimeout());
+    ASSERT_EQ(42u, modality.GetTimeout());
   }
 
   {
     RemoteModalityParameters modality(s);
     ASSERT_TRUE(modality.HasLocalAet());
     ASSERT_EQ("hello", modality.GetLocalAet());
+    ASSERT_TRUE(modality.HasTimeout());
+    ASSERT_EQ(42u, modality.GetTimeout());
   }
 
   {
@@ -1412,6 +1425,8 @@
     ASSERT_FALSE(modality.IsDicomTlsEnabled());
     ASSERT_FALSE(modality.HasLocalAet());
     ASSERT_THROW(modality.GetLocalAet(), OrthancException);
+    ASSERT_FALSE(modality.HasTimeout());
+    ASSERT_EQ(0u, modality.GetTimeout());
   }
 
   {
@@ -1424,6 +1439,7 @@
     t["AllowTranscoding"] = false;
     t["UseDicomTls"] = true;
     t["LocalAet"] = "world";
+    t["Timeout"] = 20;
     
     RemoteModalityParameters modality(t);
     ASSERT_TRUE(modality.IsAdvancedFormatNeeded());
@@ -1436,6 +1452,8 @@
     ASSERT_TRUE(modality.IsDicomTlsEnabled());
     ASSERT_TRUE(modality.HasLocalAet());
     ASSERT_EQ("world", modality.GetLocalAet());
+    ASSERT_TRUE(modality.HasTimeout());
+    ASSERT_EQ(20u, modality.GetTimeout());
   }
 
   {
@@ -1487,6 +1505,8 @@
     ASSERT_FALSE(b.GetRemoteModality().IsDicomTlsEnabled());
     ASSERT_FALSE(b.GetRemoteModality().HasLocalAet());
     ASSERT_THROW(b.GetRemoteModality().GetLocalAet(), OrthancException);
+    ASSERT_FALSE(b.GetRemoteModality().HasTimeout());
+    ASSERT_EQ(0u, b.GetRemoteModality().GetTimeout());
   }
 
   {
@@ -1495,6 +1515,7 @@
     p.SetPortNumber(4242);
     p.SetHost("hello.world.com");
     p.SetDicomTlsEnabled(true);
+    p.SetTimeout(42);
     
     DicomAssociationParameters a("HELLO", p);
     a.SetOwnCertificatePath("key", "crt");
@@ -1521,5 +1542,7 @@
     ASSERT_EQ("crt", b.GetOwnCertificatePath());
     ASSERT_EQ("trusted", b.GetTrustedCertificatesPath());
     ASSERT_EQ(131072u, b.GetMaximumPduLength());
+    ASSERT_TRUE(b.GetRemoteModality().HasTimeout());
+    ASSERT_EQ(42u, b.GetRemoteModality().GetTimeout());
   }  
 }