Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
4517:c494ee5d0101 | 4518:cb8fcecf1b02 |
---|---|
1269 RemoteModalityParameters modality; | 1269 RemoteModalityParameters modality; |
1270 ASSERT_FALSE(modality.IsAdvancedFormatNeeded()); | 1270 ASSERT_FALSE(modality.IsAdvancedFormatNeeded()); |
1271 modality.Serialize(s, false); | 1271 modality.Serialize(s, false); |
1272 ASSERT_EQ(Json::arrayValue, s.type()); | 1272 ASSERT_EQ(Json::arrayValue, s.type()); |
1273 ASSERT_FALSE(modality.IsDicomTlsEnabled()); | 1273 ASSERT_FALSE(modality.IsDicomTlsEnabled()); |
1274 ASSERT_FALSE(modality.HasTimeout()); | |
1275 ASSERT_EQ(0u, modality.GetTimeout()); | |
1274 } | 1276 } |
1275 | 1277 |
1276 { | 1278 { |
1277 RemoteModalityParameters modality(s); | 1279 RemoteModalityParameters modality(s); |
1278 ASSERT_FALSE(modality.IsAdvancedFormatNeeded()); | 1280 ASSERT_FALSE(modality.IsAdvancedFormatNeeded()); |
1289 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); | 1291 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); |
1290 ASSERT_TRUE(modality.IsTranscodingAllowed()); | 1292 ASSERT_TRUE(modality.IsTranscodingAllowed()); |
1291 ASSERT_FALSE(modality.IsDicomTlsEnabled()); | 1293 ASSERT_FALSE(modality.IsDicomTlsEnabled()); |
1292 ASSERT_FALSE(modality.HasLocalAet()); | 1294 ASSERT_FALSE(modality.HasLocalAet()); |
1293 ASSERT_THROW(modality.GetLocalAet(), OrthancException); | 1295 ASSERT_THROW(modality.GetLocalAet(), OrthancException); |
1296 ASSERT_FALSE(modality.HasTimeout()); | |
1297 ASSERT_EQ(0u, modality.GetTimeout()); | |
1294 } | 1298 } |
1295 | 1299 |
1296 s = Json::nullValue; | 1300 s = Json::nullValue; |
1297 | 1301 |
1298 { | 1302 { |
1305 modality.SetManufacturer(ModalityManufacturer_GenericNoWildcardInDates); | 1309 modality.SetManufacturer(ModalityManufacturer_GenericNoWildcardInDates); |
1306 ASSERT_FALSE(modality.IsAdvancedFormatNeeded()); | 1310 ASSERT_FALSE(modality.IsAdvancedFormatNeeded()); |
1307 modality.Serialize(s, true); | 1311 modality.Serialize(s, true); |
1308 ASSERT_EQ(Json::objectValue, s.type()); | 1312 ASSERT_EQ(Json::objectValue, s.type()); |
1309 ASSERT_FALSE(modality.HasLocalAet()); | 1313 ASSERT_FALSE(modality.HasLocalAet()); |
1314 ASSERT_FALSE(modality.HasTimeout()); | |
1315 ASSERT_EQ(0u, modality.GetTimeout()); | |
1310 } | 1316 } |
1311 | 1317 |
1312 { | 1318 { |
1313 RemoteModalityParameters modality(s); | 1319 RemoteModalityParameters modality(s); |
1314 ASSERT_EQ("HELLO", modality.GetApplicationEntityTitle()); | 1320 ASSERT_EQ("HELLO", modality.GetApplicationEntityTitle()); |
1323 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NAction)); | 1329 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NAction)); |
1324 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); | 1330 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); |
1325 ASSERT_TRUE(modality.IsTranscodingAllowed()); | 1331 ASSERT_TRUE(modality.IsTranscodingAllowed()); |
1326 ASSERT_FALSE(modality.IsDicomTlsEnabled()); | 1332 ASSERT_FALSE(modality.IsDicomTlsEnabled()); |
1327 ASSERT_FALSE(modality.HasLocalAet()); | 1333 ASSERT_FALSE(modality.HasLocalAet()); |
1334 ASSERT_FALSE(modality.HasTimeout()); | |
1335 ASSERT_EQ(0u, modality.GetTimeout()); | |
1328 } | 1336 } |
1329 | 1337 |
1330 s["Port"] = "46"; | 1338 s["Port"] = "46"; |
1331 | 1339 |
1332 { | 1340 { |
1380 s = Json::nullValue; | 1388 s = Json::nullValue; |
1381 | 1389 |
1382 { | 1390 { |
1383 RemoteModalityParameters modality; | 1391 RemoteModalityParameters modality; |
1384 modality.SetLocalAet("hello"); | 1392 modality.SetLocalAet("hello"); |
1393 modality.SetTimeout(42); | |
1385 ASSERT_TRUE(modality.IsAdvancedFormatNeeded()); | 1394 ASSERT_TRUE(modality.IsAdvancedFormatNeeded()); |
1386 modality.Serialize(s, true); | 1395 modality.Serialize(s, true); |
1387 ASSERT_EQ(Json::objectValue, s.type()); | 1396 ASSERT_EQ(Json::objectValue, s.type()); |
1388 ASSERT_TRUE(modality.HasLocalAet()); | 1397 ASSERT_TRUE(modality.HasLocalAet()); |
1398 ASSERT_TRUE(modality.HasTimeout()); | |
1399 ASSERT_EQ(42u, modality.GetTimeout()); | |
1389 } | 1400 } |
1390 | 1401 |
1391 { | 1402 { |
1392 RemoteModalityParameters modality(s); | 1403 RemoteModalityParameters modality(s); |
1393 ASSERT_TRUE(modality.HasLocalAet()); | 1404 ASSERT_TRUE(modality.HasLocalAet()); |
1394 ASSERT_EQ("hello", modality.GetLocalAet()); | 1405 ASSERT_EQ("hello", modality.GetLocalAet()); |
1406 ASSERT_TRUE(modality.HasTimeout()); | |
1407 ASSERT_EQ(42u, modality.GetTimeout()); | |
1395 } | 1408 } |
1396 | 1409 |
1397 { | 1410 { |
1398 Json::Value t; | 1411 Json::Value t; |
1399 t["AllowStorageCommitment"] = false; | 1412 t["AllowStorageCommitment"] = false; |
1410 ASSERT_FALSE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); | 1423 ASSERT_FALSE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); |
1411 ASSERT_TRUE(modality.IsTranscodingAllowed()); | 1424 ASSERT_TRUE(modality.IsTranscodingAllowed()); |
1412 ASSERT_FALSE(modality.IsDicomTlsEnabled()); | 1425 ASSERT_FALSE(modality.IsDicomTlsEnabled()); |
1413 ASSERT_FALSE(modality.HasLocalAet()); | 1426 ASSERT_FALSE(modality.HasLocalAet()); |
1414 ASSERT_THROW(modality.GetLocalAet(), OrthancException); | 1427 ASSERT_THROW(modality.GetLocalAet(), OrthancException); |
1428 ASSERT_FALSE(modality.HasTimeout()); | |
1429 ASSERT_EQ(0u, modality.GetTimeout()); | |
1415 } | 1430 } |
1416 | 1431 |
1417 { | 1432 { |
1418 Json::Value t; | 1433 Json::Value t; |
1419 t["AllowNAction"] = false; | 1434 t["AllowNAction"] = false; |
1422 t["Host"] = "host"; | 1437 t["Host"] = "host"; |
1423 t["Port"] = "104"; | 1438 t["Port"] = "104"; |
1424 t["AllowTranscoding"] = false; | 1439 t["AllowTranscoding"] = false; |
1425 t["UseDicomTls"] = true; | 1440 t["UseDicomTls"] = true; |
1426 t["LocalAet"] = "world"; | 1441 t["LocalAet"] = "world"; |
1442 t["Timeout"] = 20; | |
1427 | 1443 |
1428 RemoteModalityParameters modality(t); | 1444 RemoteModalityParameters modality(t); |
1429 ASSERT_TRUE(modality.IsAdvancedFormatNeeded()); | 1445 ASSERT_TRUE(modality.IsAdvancedFormatNeeded()); |
1430 ASSERT_EQ("AET", modality.GetApplicationEntityTitle()); | 1446 ASSERT_EQ("AET", modality.GetApplicationEntityTitle()); |
1431 ASSERT_EQ("host", modality.GetHost()); | 1447 ASSERT_EQ("host", modality.GetHost()); |
1434 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); | 1450 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_NEventReport)); |
1435 ASSERT_FALSE(modality.IsTranscodingAllowed()); | 1451 ASSERT_FALSE(modality.IsTranscodingAllowed()); |
1436 ASSERT_TRUE(modality.IsDicomTlsEnabled()); | 1452 ASSERT_TRUE(modality.IsDicomTlsEnabled()); |
1437 ASSERT_TRUE(modality.HasLocalAet()); | 1453 ASSERT_TRUE(modality.HasLocalAet()); |
1438 ASSERT_EQ("world", modality.GetLocalAet()); | 1454 ASSERT_EQ("world", modality.GetLocalAet()); |
1455 ASSERT_TRUE(modality.HasTimeout()); | |
1456 ASSERT_EQ(20u, modality.GetTimeout()); | |
1439 } | 1457 } |
1440 | 1458 |
1441 { | 1459 { |
1442 Json::Value t; | 1460 Json::Value t; |
1443 t["AllowNAction"] = true; | 1461 t["AllowNAction"] = true; |
1485 ASSERT_EQ("ORTHANC", b.GetLocalApplicationEntityTitle()); | 1503 ASSERT_EQ("ORTHANC", b.GetLocalApplicationEntityTitle()); |
1486 ASSERT_EQ(DicomAssociationParameters::GetDefaultMaximumPduLength(), b.GetMaximumPduLength()); | 1504 ASSERT_EQ(DicomAssociationParameters::GetDefaultMaximumPduLength(), b.GetMaximumPduLength()); |
1487 ASSERT_FALSE(b.GetRemoteModality().IsDicomTlsEnabled()); | 1505 ASSERT_FALSE(b.GetRemoteModality().IsDicomTlsEnabled()); |
1488 ASSERT_FALSE(b.GetRemoteModality().HasLocalAet()); | 1506 ASSERT_FALSE(b.GetRemoteModality().HasLocalAet()); |
1489 ASSERT_THROW(b.GetRemoteModality().GetLocalAet(), OrthancException); | 1507 ASSERT_THROW(b.GetRemoteModality().GetLocalAet(), OrthancException); |
1508 ASSERT_FALSE(b.GetRemoteModality().HasTimeout()); | |
1509 ASSERT_EQ(0u, b.GetRemoteModality().GetTimeout()); | |
1490 } | 1510 } |
1491 | 1511 |
1492 { | 1512 { |
1493 RemoteModalityParameters p; | 1513 RemoteModalityParameters p; |
1494 p.SetApplicationEntityTitle("WORLD"); | 1514 p.SetApplicationEntityTitle("WORLD"); |
1495 p.SetPortNumber(4242); | 1515 p.SetPortNumber(4242); |
1496 p.SetHost("hello.world.com"); | 1516 p.SetHost("hello.world.com"); |
1497 p.SetDicomTlsEnabled(true); | 1517 p.SetDicomTlsEnabled(true); |
1518 p.SetTimeout(42); | |
1498 | 1519 |
1499 DicomAssociationParameters a("HELLO", p); | 1520 DicomAssociationParameters a("HELLO", p); |
1500 a.SetOwnCertificatePath("key", "crt"); | 1521 a.SetOwnCertificatePath("key", "crt"); |
1501 a.SetTrustedCertificatesPath("trusted"); | 1522 a.SetTrustedCertificatesPath("trusted"); |
1502 | 1523 |
1519 ASSERT_TRUE(b.GetRemoteModality().IsDicomTlsEnabled()); | 1540 ASSERT_TRUE(b.GetRemoteModality().IsDicomTlsEnabled()); |
1520 ASSERT_EQ("key", b.GetOwnPrivateKeyPath()); | 1541 ASSERT_EQ("key", b.GetOwnPrivateKeyPath()); |
1521 ASSERT_EQ("crt", b.GetOwnCertificatePath()); | 1542 ASSERT_EQ("crt", b.GetOwnCertificatePath()); |
1522 ASSERT_EQ("trusted", b.GetTrustedCertificatesPath()); | 1543 ASSERT_EQ("trusted", b.GetTrustedCertificatesPath()); |
1523 ASSERT_EQ(131072u, b.GetMaximumPduLength()); | 1544 ASSERT_EQ(131072u, b.GetMaximumPduLength()); |
1545 ASSERT_TRUE(b.GetRemoteModality().HasTimeout()); | |
1546 ASSERT_EQ(42u, b.GetRemoteModality().GetTimeout()); | |
1524 } | 1547 } |
1525 } | 1548 } |