浏览代码

Add tests for tagCache functionality of ctkDICOMDatabase

Steve Pieper 12 年之前
父节点
当前提交
202821dbf9
共有 1 个文件被更改,包括 41 次插入0 次删除
  1. 41 0
      Libs/DICOM/Core/Testing/Cpp/ctkDICOMDatabaseTest2.cpp

+ 41 - 0
Libs/DICOM/Core/Testing/Cpp/ctkDICOMDatabaseTest2.cpp

@@ -124,6 +124,47 @@ int ctkDICOMDatabaseTest2( int argc, char * argv [] )
     return EXIT_FAILURE;
     }
 
+
+  //
+  // Test the tag cache
+  //
+
+  if (database.tagCacheExists())
+    {
+    std::cerr << "ctkDICOMDatabase: tag cache should not exist in fresh database" << std::endl;
+    return EXIT_FAILURE;
+    }
+
+  if (!database.initializeTagCache())
+    {
+    std::cerr << "ctkDICOMDatabase: could not initialize tag cache" << std::endl;
+    return EXIT_FAILURE;
+    }
+
+  if (!database.tagCacheExists())
+    {
+    std::cerr << "ctkDICOMDatabase: tag cache should exist but is not detected" << std::endl;
+    return EXIT_FAILURE;
+    }
+
+  if (database.cachedTag(instanceUID, tag) != QString(""))
+    {
+    std::cerr << "ctkDICOMDatabase: tag cache should return empty string for unknown instance tag" << std::endl;
+    return EXIT_FAILURE;
+    }
+
+  if (!database.cacheTag(instanceUID, tag, knownSeriesDescription)) 
+    {
+    std::cerr << "ctkDICOMDatabase: could not insert instance tag" << std::endl;
+    return EXIT_FAILURE;
+    }
+
+  if (database.cachedTag(instanceUID, tag) != knownSeriesDescription) 
+    {
+    std::cerr << "ctkDICOMDatabase: could not retrieve cached tag" << std::endl;
+    return EXIT_FAILURE;
+    }
+
   database.closeDatabase();
   database.initializeDatabase();