Mercurial > hg > orthanc-databases
comparison PostgreSQL/UnitTests/PostgreSQLTests.cpp @ 71:d40c5fecd160 db-changes
new extension implemented for PostgreSQL: CreateInstance
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 04 Jan 2019 13:51:52 +0100 |
parents | 714c5d2bee76 |
children | aa81c1c80c75 |
comparison
equal
deleted
inserted
replaced
70:e6c13ddd26d9 | 71:d40c5fecd160 |
---|---|
32 # undef S_IWOTH | 32 # undef S_IWOTH |
33 # undef S_IXGRP | 33 # undef S_IXGRP |
34 # undef S_IXOTH | 34 # undef S_IXOTH |
35 #endif | 35 #endif |
36 | 36 |
37 #include "../Plugins/PostgreSQLIndex.h" | |
37 #include "../Plugins/PostgreSQLStorageArea.h" | 38 #include "../Plugins/PostgreSQLStorageArea.h" |
38 #include "../../Framework/PostgreSQL/PostgreSQLTransaction.h" | 39 #include "../../Framework/PostgreSQL/PostgreSQLTransaction.h" |
39 #include "../../Framework/PostgreSQL/PostgreSQLResult.h" | 40 #include "../../Framework/PostgreSQL/PostgreSQLResult.h" |
40 #include "../../Framework/PostgreSQL/PostgreSQLLargeObject.h" | 41 #include "../../Framework/PostgreSQL/PostgreSQLLargeObject.h" |
41 | 42 |
435 | 436 |
436 ASSERT_TRUE(db->DoesTableExist("test")); | 437 ASSERT_TRUE(db->DoesTableExist("test")); |
437 ASSERT_TRUE(db->DoesTableExist("test2")); | 438 ASSERT_TRUE(db->DoesTableExist("test2")); |
438 } | 439 } |
439 | 440 |
441 | |
442 TEST(PostgreSQLIndex, CreateInstance) | |
443 { | |
444 OrthancDatabases::PostgreSQLIndex db(globalParameters_); | |
445 db.SetClearAll(true); | |
446 db.Open(); | |
447 | |
448 std::string s; | |
449 ASSERT_TRUE(db.LookupGlobalProperty(s, Orthanc::GlobalProperty_DatabaseInternal1)); | |
450 ASSERT_EQ("1", s); | |
451 | |
452 OrthancPluginCreateInstanceResult r1, r2; | |
453 | |
454 memset(&r1, 0, sizeof(r1)); | |
455 db.CreateInstance(r1, "a", "b", "c", "d"); | |
456 ASSERT_TRUE(r1.isNewInstance); | |
457 ASSERT_TRUE(r1.isNewSeries); | |
458 ASSERT_TRUE(r1.isNewStudy); | |
459 ASSERT_TRUE(r1.isNewPatient); | |
460 | |
461 memset(&r2, 0, sizeof(r2)); | |
462 db.CreateInstance(r2, "a", "b", "c", "d"); | |
463 ASSERT_FALSE(r2.isNewInstance); | |
464 ASSERT_EQ(r1.instanceId, r2.instanceId); | |
465 | |
466 // Breaking the hierarchy | |
467 memset(&r2, 0, sizeof(r2)); | |
468 ASSERT_THROW(db.CreateInstance(r2, "a", "e", "c", "f"), Orthanc::OrthancException); | |
469 | |
470 memset(&r2, 0, sizeof(r2)); | |
471 db.CreateInstance(r2, "a", "b", "c", "e"); | |
472 ASSERT_TRUE(r2.isNewInstance); | |
473 ASSERT_FALSE(r2.isNewSeries); | |
474 ASSERT_FALSE(r2.isNewStudy); | |
475 ASSERT_FALSE(r2.isNewPatient); | |
476 ASSERT_EQ(r1.patientId, r2.patientId); | |
477 ASSERT_EQ(r1.studyId, r2.studyId); | |
478 ASSERT_EQ(r1.seriesId, r2.seriesId); | |
479 ASSERT_NE(r1.instanceId, r2.instanceId); | |
480 | |
481 memset(&r2, 0, sizeof(r2)); | |
482 db.CreateInstance(r2, "a", "b", "f", "g"); | |
483 ASSERT_TRUE(r2.isNewInstance); | |
484 ASSERT_TRUE(r2.isNewSeries); | |
485 ASSERT_FALSE(r2.isNewStudy); | |
486 ASSERT_FALSE(r2.isNewPatient); | |
487 ASSERT_EQ(r1.patientId, r2.patientId); | |
488 ASSERT_EQ(r1.studyId, r2.studyId); | |
489 ASSERT_NE(r1.seriesId, r2.seriesId); | |
490 ASSERT_NE(r1.instanceId, r2.instanceId); | |
491 | |
492 memset(&r2, 0, sizeof(r2)); | |
493 db.CreateInstance(r2, "a", "h", "i", "j"); | |
494 ASSERT_TRUE(r2.isNewInstance); | |
495 ASSERT_TRUE(r2.isNewSeries); | |
496 ASSERT_TRUE(r2.isNewStudy); | |
497 ASSERT_FALSE(r2.isNewPatient); | |
498 ASSERT_EQ(r1.patientId, r2.patientId); | |
499 ASSERT_NE(r1.studyId, r2.studyId); | |
500 ASSERT_NE(r1.seriesId, r2.seriesId); | |
501 ASSERT_NE(r1.instanceId, r2.instanceId); | |
502 | |
503 memset(&r2, 0, sizeof(r2)); | |
504 db.CreateInstance(r2, "k", "l", "m", "n"); | |
505 ASSERT_TRUE(r2.isNewInstance); | |
506 ASSERT_TRUE(r2.isNewSeries); | |
507 ASSERT_TRUE(r2.isNewStudy); | |
508 ASSERT_TRUE(r2.isNewPatient); | |
509 ASSERT_NE(r1.patientId, r2.patientId); | |
510 ASSERT_NE(r1.studyId, r2.studyId); | |
511 ASSERT_NE(r1.seriesId, r2.seriesId); | |
512 ASSERT_NE(r1.instanceId, r2.instanceId); | |
513 } |