Mercurial > hg > orthanc
diff UnitTestsSources/ServerIndex.cpp @ 713:9d1973813d8b
test attachment recycling
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 14 Feb 2014 09:21:23 +0100 |
parents | 8f62e8d5a384 |
children |
line wrap: on
line diff
--- a/UnitTestsSources/ServerIndex.cpp Thu Feb 13 16:16:07 2014 +0100 +++ b/UnitTestsSources/ServerIndex.cpp Fri Feb 14 09:21:23 2014 +0100 @@ -504,7 +504,7 @@ -TEST(DatabaseWrapper, AttachmentRecycling) +TEST(ServerIndex, AttachmentRecycling) { const std::string path = "OrthancStorageUnitTests"; Toolbox::RemoveFile(path + "/index"); @@ -515,16 +515,41 @@ Json::Value tmp; index.ComputeStatistics(tmp); - ASSERT_EQ(0, tmp["PatientCount"].asInt()); + ASSERT_EQ(0, tmp["CountPatients"].asInt()); + ASSERT_EQ(0, boost::lexical_cast<int>(tmp["TotalDiskSize"].asString())); ServerIndex::Attachments attachments; - DicomMap instance; - instance.SetValue(DICOM_TAG_PATIENT_ID, "patient1"); - instance.SetValue(DICOM_TAG_STUDY_INSTANCE_UID, "study1"); - instance.SetValue(DICOM_TAG_SERIES_INSTANCE_UID, "series1"); - instance.SetValue(DICOM_TAG_SOP_INSTANCE_UID, "instance1"); - ASSERT_EQ(StoreStatus_Success, index.Store(instance, attachments, "")); + std::vector<std::string> ids; + for (int i = 0; i < 10; i++) + { + std::string id = boost::lexical_cast<std::string>(i); + DicomMap instance; + instance.SetValue(DICOM_TAG_PATIENT_ID, "patient-" + id); + instance.SetValue(DICOM_TAG_STUDY_INSTANCE_UID, "study-" + id); + instance.SetValue(DICOM_TAG_SERIES_INSTANCE_UID, "series-" + id); + instance.SetValue(DICOM_TAG_SOP_INSTANCE_UID, "instance-" + id); + ASSERT_EQ(StoreStatus_Success, index.Store(instance, attachments, "")); + + DicomInstanceHasher hasher(instance); + ids.push_back(hasher.HashPatient()); + ids.push_back(hasher.HashStudy()); + ids.push_back(hasher.HashSeries()); + ids.push_back(hasher.HashInstance()); + } + + index.ComputeStatistics(tmp); + ASSERT_EQ(10, tmp["CountPatients"].asInt()); + ASSERT_EQ(0, boost::lexical_cast<int>(tmp["TotalDiskSize"].asString())); + + for (size_t i = 0; i < ids.size(); i++) + { + FileInfo info(Toolbox::GenerateUuid(), FileContentType_Dicom, 1, "md5"); + index.AddAttachment(info, ids[i]); + + index.ComputeStatistics(tmp); + ASSERT_GE(10, boost::lexical_cast<int>(tmp["TotalDiskSize"].asString())); + } // Because the DB is in memory, the SQLite index must not have been created ASSERT_THROW(Toolbox::GetFileSize(path + "/index"), OrthancException);