Mercurial > hg > orthanc-databases
comparison Framework/Plugins/IndexUnitTests.h @ 266:cc7af42d4f23
Store revisions for metadata and attachments in PostgreSQL
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 20 Apr 2021 17:41:44 +0200 |
parents | b0c65094b299 |
children | 07881ac5404b |
comparison
equal
deleted
inserted
replaced
265:cd73e34d5411 | 266:cc7af42d4f23 |
---|---|
31 | 31 |
32 #include <gtest/gtest.h> | 32 #include <gtest/gtest.h> |
33 #include <list> | 33 #include <list> |
34 | 34 |
35 | 35 |
36 #if ORTHANC_ENABLE_POSTGRESQL == 1 | |
37 # define HAS_REVISIONS 1 | |
38 #elif ORTHANC_ENABLE_MYSQL == 1 | |
39 # define HAS_REVISIONS 0 | |
40 #elif ORTHANC_ENABLE_SQLITE == 1 | |
41 # define HAS_REVISIONS 1 | |
42 #else | |
43 # error Unknown database backend | |
44 #endif | |
45 | |
46 | |
36 namespace Orthanc | 47 namespace Orthanc |
37 { | 48 { |
38 /** | 49 /** |
39 * Mock enumeration inspired from the source code of Orthanc... only | 50 * Mock enumeration inspired from the source code of Orthanc... only |
40 * for use in the unit tests! | 51 * for use in the unit tests! |
275 int64_t revision = -1; | 286 int64_t revision = -1; |
276 ASSERT_FALSE(db.LookupMetadata(s, revision, *manager, b, Orthanc::MetadataType_LastUpdate)); | 287 ASSERT_FALSE(db.LookupMetadata(s, revision, *manager, b, Orthanc::MetadataType_LastUpdate)); |
277 ASSERT_TRUE(db.LookupMetadata(s, revision, *manager, a, Orthanc::MetadataType_LastUpdate)); | 288 ASSERT_TRUE(db.LookupMetadata(s, revision, *manager, a, Orthanc::MetadataType_LastUpdate)); |
278 ASSERT_EQ("update2", s); | 289 ASSERT_EQ("update2", s); |
279 | 290 |
280 #if ORTHANC_ENABLE_SQLITE == 1 | 291 #if HAS_REVISIONS == 1 |
281 ASSERT_EQ(43, revision); // Only SQLite implements revisions so far | 292 ASSERT_EQ(43, revision); |
282 #else | 293 #else |
283 ASSERT_EQ(0, revision); | 294 ASSERT_EQ(0, revision); |
284 #endif | 295 #endif |
285 | 296 |
286 db.SetMetadata(*manager, a, Orthanc::MetadataType_LastUpdate, "update", 44); | 297 db.SetMetadata(*manager, a, Orthanc::MetadataType_LastUpdate, "update", 44); |
287 ASSERT_TRUE(db.LookupMetadata(s, revision, *manager, a, Orthanc::MetadataType_LastUpdate)); | 298 ASSERT_TRUE(db.LookupMetadata(s, revision, *manager, a, Orthanc::MetadataType_LastUpdate)); |
288 ASSERT_EQ("update", s); | 299 ASSERT_EQ("update", s); |
289 | 300 |
290 #if ORTHANC_ENABLE_SQLITE == 1 | 301 #if HAS_REVISIONS == 1 |
291 ASSERT_EQ(44, revision); // Only SQLite implements revisions so far | 302 ASSERT_EQ(44, revision); |
292 #else | 303 #else |
293 ASSERT_EQ(0, revision); | 304 ASSERT_EQ(0, revision); |
294 #endif | 305 #endif |
295 | 306 |
296 std::list<int32_t> md; | 307 std::list<int32_t> md; |
300 ASSERT_TRUE(md.front() == Orthanc::MetadataType_LastUpdate || md.back() == Orthanc::MetadataType_LastUpdate); | 311 ASSERT_TRUE(md.front() == Orthanc::MetadataType_LastUpdate || md.back() == Orthanc::MetadataType_LastUpdate); |
301 std::string mdd; | 312 std::string mdd; |
302 ASSERT_TRUE(db.LookupMetadata(mdd, revision, *manager, a, Orthanc::MetadataType_ModifiedFrom)); | 313 ASSERT_TRUE(db.LookupMetadata(mdd, revision, *manager, a, Orthanc::MetadataType_ModifiedFrom)); |
303 ASSERT_EQ("modified", mdd); | 314 ASSERT_EQ("modified", mdd); |
304 | 315 |
305 #if ORTHANC_ENABLE_SQLITE == 1 | 316 #if HAS_REVISIONS == 1 |
306 ASSERT_EQ(42, revision); // Only SQLite implements revisions so far | 317 ASSERT_EQ(42, revision); |
307 #else | 318 #else |
308 ASSERT_EQ(0, revision); | 319 ASSERT_EQ(0, revision); |
309 #endif | 320 #endif |
310 | 321 |
311 ASSERT_TRUE(db.LookupMetadata(mdd, revision, *manager, a, Orthanc::MetadataType_LastUpdate)); | 322 ASSERT_TRUE(db.LookupMetadata(mdd, revision, *manager, a, Orthanc::MetadataType_LastUpdate)); |
312 ASSERT_EQ("update", mdd); | 323 ASSERT_EQ("update", mdd); |
313 | 324 |
314 #if ORTHANC_ENABLE_SQLITE == 1 | 325 #if HAS_REVISIONS == 1 |
315 ASSERT_EQ(44, revision); // Only SQLite implements revisions so far | 326 ASSERT_EQ(44, revision); |
316 #else | 327 #else |
317 ASSERT_EQ(0, revision); | 328 ASSERT_EQ(0, revision); |
318 #endif | 329 #endif |
319 | 330 |
320 db.ListAvailableMetadata(md, *manager, b); | 331 db.ListAvailableMetadata(md, *manager, b); |
374 expectedAttachment->compressionType = Orthanc::CompressionType_None; | 385 expectedAttachment->compressionType = Orthanc::CompressionType_None; |
375 expectedAttachment->compressedSize = 42; | 386 expectedAttachment->compressedSize = 42; |
376 expectedAttachment->compressedHash = "md5_1"; | 387 expectedAttachment->compressedHash = "md5_1"; |
377 ASSERT_TRUE(db.LookupAttachment(*output, revision, *manager, a, Orthanc::FileContentType_Dicom)); | 388 ASSERT_TRUE(db.LookupAttachment(*output, revision, *manager, a, Orthanc::FileContentType_Dicom)); |
378 | 389 |
379 #if ORTHANC_ENABLE_SQLITE == 1 | 390 #if HAS_REVISIONS == 1 |
380 ASSERT_EQ(42, revision); // Only SQLite implements revisions so far | 391 ASSERT_EQ(42, revision); |
381 #else | 392 #else |
382 ASSERT_EQ(0, revision); | 393 ASSERT_EQ(0, revision); |
383 #endif | 394 #endif |
384 | 395 |
385 expectedAttachment.reset(new OrthancPluginAttachment); | 396 expectedAttachment.reset(new OrthancPluginAttachment); |
391 expectedAttachment->compressedSize = 4242; | 402 expectedAttachment->compressedSize = 4242; |
392 expectedAttachment->compressedHash = "md5_2"; | 403 expectedAttachment->compressedHash = "md5_2"; |
393 revision = -1; | 404 revision = -1; |
394 ASSERT_TRUE(db.LookupAttachment(*output, revision, *manager, a, Orthanc::FileContentType_DicomAsJson)); | 405 ASSERT_TRUE(db.LookupAttachment(*output, revision, *manager, a, Orthanc::FileContentType_DicomAsJson)); |
395 | 406 |
396 #if ORTHANC_ENABLE_SQLITE == 1 | 407 #if HAS_REVISIONS == 1 |
397 ASSERT_EQ(43, revision); // Only SQLite implements revisions so far | 408 ASSERT_EQ(43, revision); |
398 #else | 409 #else |
399 ASSERT_EQ(0, revision); | 410 ASSERT_EQ(0, revision); |
400 #endif | 411 #endif |
401 | 412 |
402 db.ListAvailableAttachments(fc, *manager, b); | 413 db.ListAvailableAttachments(fc, *manager, b); |