comparison Framework/Plugins/IndexUnitTests.h @ 226:a4918d57435c

DatabaseManager doesn't IDatabaseFactory anymore
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 02 Apr 2021 19:23:36 +0200
parents 94c9908e6aca
children e9ba888f371b
comparison
equal deleted inserted replaced
225:94c9908e6aca 226:a4918d57435c
180 # error Unsupported database backend 180 # error Unsupported database backend
181 #endif 181 #endif
182 182
183 db.SetOutputFactory(new DatabaseBackendAdapterV2::Factory(&context, NULL)); 183 db.SetOutputFactory(new DatabaseBackendAdapterV2::Factory(&context, NULL));
184 184
185 DatabaseManager manager(db.CreateDatabaseFactory()); 185 std::unique_ptr<DatabaseManager> manager(IndexBackend::CreateSingleDatabaseManager(db));
186 manager.Open();
187 186
188 std::unique_ptr<IDatabaseBackendOutput> output(db.CreateOutput()); 187 std::unique_ptr<IDatabaseBackendOutput> output(db.CreateOutput());
189 188
190 std::string s; 189 std::string s;
191 ASSERT_TRUE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_DatabaseSchemaVersion)); 190 ASSERT_TRUE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_DatabaseSchemaVersion));
192 ASSERT_EQ("6", s); 191 ASSERT_EQ("6", s);
193 192
194 ASSERT_FALSE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); 193 ASSERT_FALSE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence));
195 db.SetGlobalProperty(manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "Hello"); 194 db.SetGlobalProperty(*manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "Hello");
196 ASSERT_TRUE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); 195 ASSERT_TRUE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence));
197 ASSERT_EQ("Hello", s); 196 ASSERT_EQ("Hello", s);
198 db.SetGlobalProperty(manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "HelloWorld"); 197 db.SetGlobalProperty(*manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "HelloWorld");
199 ASSERT_TRUE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); 198 ASSERT_TRUE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence));
200 ASSERT_EQ("HelloWorld", s); 199 ASSERT_EQ("HelloWorld", s);
201 200
202 int64_t a = db.CreateResource(manager, "study", OrthancPluginResourceType_Study); 201 int64_t a = db.CreateResource(*manager, "study", OrthancPluginResourceType_Study);
203 ASSERT_TRUE(db.IsExistingResource(manager, a)); 202 ASSERT_TRUE(db.IsExistingResource(*manager, a));
204 ASSERT_FALSE(db.IsExistingResource(manager, a + 1)); 203 ASSERT_FALSE(db.IsExistingResource(*manager, a + 1));
205 204
206 int64_t b; 205 int64_t b;
207 OrthancPluginResourceType t; 206 OrthancPluginResourceType t;
208 ASSERT_FALSE(db.LookupResource(b, t, manager, "world")); 207 ASSERT_FALSE(db.LookupResource(b, t, *manager, "world"));
209 ASSERT_TRUE(db.LookupResource(b, t, manager, "study")); 208 ASSERT_TRUE(db.LookupResource(b, t, *manager, "study"));
210 ASSERT_EQ(a, b); 209 ASSERT_EQ(a, b);
211 ASSERT_EQ(OrthancPluginResourceType_Study, t); 210 ASSERT_EQ(OrthancPluginResourceType_Study, t);
212 211
213 b = db.CreateResource(manager, "series", OrthancPluginResourceType_Series); 212 b = db.CreateResource(*manager, "series", OrthancPluginResourceType_Series);
214 ASSERT_NE(a, b); 213 ASSERT_NE(a, b);
215 214
216 ASSERT_EQ("study", db.GetPublicId(manager, a)); 215 ASSERT_EQ("study", db.GetPublicId(*manager, a));
217 ASSERT_EQ("series", db.GetPublicId(manager, b)); 216 ASSERT_EQ("series", db.GetPublicId(*manager, b));
218 ASSERT_EQ(OrthancPluginResourceType_Study, db.GetResourceType(manager, a)); 217 ASSERT_EQ(OrthancPluginResourceType_Study, db.GetResourceType(*manager, a));
219 ASSERT_EQ(OrthancPluginResourceType_Series, db.GetResourceType(manager, b)); 218 ASSERT_EQ(OrthancPluginResourceType_Series, db.GetResourceType(*manager, b));
220 219
221 db.AttachChild(manager, a, b); 220 db.AttachChild(*manager, a, b);
222 221
223 int64_t c; 222 int64_t c;
224 ASSERT_FALSE(db.LookupParent(c, manager, a)); 223 ASSERT_FALSE(db.LookupParent(c, *manager, a));
225 ASSERT_TRUE(db.LookupParent(c, manager, b)); 224 ASSERT_TRUE(db.LookupParent(c, *manager, b));
226 ASSERT_EQ(a, c); 225 ASSERT_EQ(a, c);
227 226
228 c = db.CreateResource(manager, "series2", OrthancPluginResourceType_Series); 227 c = db.CreateResource(*manager, "series2", OrthancPluginResourceType_Series);
229 db.AttachChild(manager, a, c); 228 db.AttachChild(*manager, a, c);
230 229
231 ASSERT_EQ(3u, db.GetAllResourcesCount(manager)); 230 ASSERT_EQ(3u, db.GetAllResourcesCount(*manager));
232 ASSERT_EQ(0u, db.GetResourcesCount(manager, OrthancPluginResourceType_Patient)); 231 ASSERT_EQ(0u, db.GetResourcesCount(*manager, OrthancPluginResourceType_Patient));
233 ASSERT_EQ(1u, db.GetResourcesCount(manager, OrthancPluginResourceType_Study)); 232 ASSERT_EQ(1u, db.GetResourcesCount(*manager, OrthancPluginResourceType_Study));
234 ASSERT_EQ(2u, db.GetResourcesCount(manager, OrthancPluginResourceType_Series)); 233 ASSERT_EQ(2u, db.GetResourcesCount(*manager, OrthancPluginResourceType_Series));
235 234
236 ASSERT_FALSE(db.GetParentPublicId(s, manager, a)); 235 ASSERT_FALSE(db.GetParentPublicId(s, *manager, a));
237 ASSERT_TRUE(db.GetParentPublicId(s, manager, b)); ASSERT_EQ("study", s); 236 ASSERT_TRUE(db.GetParentPublicId(s, *manager, b)); ASSERT_EQ("study", s);
238 ASSERT_TRUE(db.GetParentPublicId(s, manager, c)); ASSERT_EQ("study", s); 237 ASSERT_TRUE(db.GetParentPublicId(s, *manager, c)); ASSERT_EQ("study", s);
239 238
240 std::list<std::string> children; 239 std::list<std::string> children;
241 db.GetChildren(children, manager, a); 240 db.GetChildren(children, *manager, a);
242 ASSERT_EQ(2u, children.size()); 241 ASSERT_EQ(2u, children.size());
243 db.GetChildren(children, manager, b); 242 db.GetChildren(children, *manager, b);
244 ASSERT_EQ(0u, children.size()); 243 ASSERT_EQ(0u, children.size());
245 db.GetChildren(children, manager, c); 244 db.GetChildren(children, *manager, c);
246 ASSERT_EQ(0u, children.size()); 245 ASSERT_EQ(0u, children.size());
247 246
248 std::list<std::string> cp; 247 std::list<std::string> cp;
249 db.GetChildrenPublicId(cp, manager, a); 248 db.GetChildrenPublicId(cp, *manager, a);
250 ASSERT_EQ(2u, cp.size()); 249 ASSERT_EQ(2u, cp.size());
251 ASSERT_TRUE(cp.front() == "series" || cp.front() == "series2"); 250 ASSERT_TRUE(cp.front() == "series" || cp.front() == "series2");
252 ASSERT_TRUE(cp.back() == "series" || cp.back() == "series2"); 251 ASSERT_TRUE(cp.back() == "series" || cp.back() == "series2");
253 ASSERT_NE(cp.front(), cp.back()); 252 ASSERT_NE(cp.front(), cp.back());
254 253
255 std::list<std::string> pub; 254 std::list<std::string> pub;
256 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Patient); 255 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Patient);
257 ASSERT_EQ(0u, pub.size()); 256 ASSERT_EQ(0u, pub.size());
258 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Study); 257 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Study);
259 ASSERT_EQ(1u, pub.size()); 258 ASSERT_EQ(1u, pub.size());
260 ASSERT_EQ("study", pub.front()); 259 ASSERT_EQ("study", pub.front());
261 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Series); 260 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Series);
262 ASSERT_EQ(2u, pub.size()); 261 ASSERT_EQ(2u, pub.size());
263 ASSERT_TRUE(pub.front() == "series" || pub.front() == "series2"); 262 ASSERT_TRUE(pub.front() == "series" || pub.front() == "series2");
264 ASSERT_TRUE(pub.back() == "series" || pub.back() == "series2"); 263 ASSERT_TRUE(pub.back() == "series" || pub.back() == "series2");
265 ASSERT_NE(pub.front(), pub.back()); 264 ASSERT_NE(pub.front(), pub.back());
266 265
267 std::list<int64_t> ci; 266 std::list<int64_t> ci;
268 db.GetChildrenInternalId(ci, manager, a); 267 db.GetChildrenInternalId(ci, *manager, a);
269 ASSERT_EQ(2u, ci.size()); 268 ASSERT_EQ(2u, ci.size());
270 ASSERT_TRUE(ci.front() == b || ci.front() == c); 269 ASSERT_TRUE(ci.front() == b || ci.front() == c);
271 ASSERT_TRUE(ci.back() == b || ci.back() == c); 270 ASSERT_TRUE(ci.back() == b || ci.back() == c);
272 ASSERT_NE(ci.front(), ci.back()); 271 ASSERT_NE(ci.front(), ci.back());
273 272
274 db.SetMetadata(manager, a, Orthanc::MetadataType_ModifiedFrom, "modified"); 273 db.SetMetadata(*manager, a, Orthanc::MetadataType_ModifiedFrom, "modified");
275 db.SetMetadata(manager, a, Orthanc::MetadataType_LastUpdate, "update2"); 274 db.SetMetadata(*manager, a, Orthanc::MetadataType_LastUpdate, "update2");
276 ASSERT_FALSE(db.LookupMetadata(s, manager, b, Orthanc::MetadataType_LastUpdate)); 275 ASSERT_FALSE(db.LookupMetadata(s, *manager, b, Orthanc::MetadataType_LastUpdate));
277 ASSERT_TRUE(db.LookupMetadata(s, manager, a, Orthanc::MetadataType_LastUpdate)); 276 ASSERT_TRUE(db.LookupMetadata(s, *manager, a, Orthanc::MetadataType_LastUpdate));
278 ASSERT_EQ("update2", s); 277 ASSERT_EQ("update2", s);
279 db.SetMetadata(manager, a, Orthanc::MetadataType_LastUpdate, "update"); 278 db.SetMetadata(*manager, a, Orthanc::MetadataType_LastUpdate, "update");
280 ASSERT_TRUE(db.LookupMetadata(s, manager, a, Orthanc::MetadataType_LastUpdate)); 279 ASSERT_TRUE(db.LookupMetadata(s, *manager, a, Orthanc::MetadataType_LastUpdate));
281 ASSERT_EQ("update", s); 280 ASSERT_EQ("update", s);
282 281
283 std::list<int32_t> md; 282 std::list<int32_t> md;
284 db.ListAvailableMetadata(md, manager, a); 283 db.ListAvailableMetadata(md, *manager, a);
285 ASSERT_EQ(2u, md.size()); 284 ASSERT_EQ(2u, md.size());
286 ASSERT_TRUE(md.front() == Orthanc::MetadataType_ModifiedFrom || md.back() == Orthanc::MetadataType_ModifiedFrom); 285 ASSERT_TRUE(md.front() == Orthanc::MetadataType_ModifiedFrom || md.back() == Orthanc::MetadataType_ModifiedFrom);
287 ASSERT_TRUE(md.front() == Orthanc::MetadataType_LastUpdate || md.back() == Orthanc::MetadataType_LastUpdate); 286 ASSERT_TRUE(md.front() == Orthanc::MetadataType_LastUpdate || md.back() == Orthanc::MetadataType_LastUpdate);
288 std::string mdd; 287 std::string mdd;
289 ASSERT_TRUE(db.LookupMetadata(mdd, manager, a, Orthanc::MetadataType_ModifiedFrom)); 288 ASSERT_TRUE(db.LookupMetadata(mdd, *manager, a, Orthanc::MetadataType_ModifiedFrom));
290 ASSERT_EQ("modified", mdd); 289 ASSERT_EQ("modified", mdd);
291 ASSERT_TRUE(db.LookupMetadata(mdd, manager, a, Orthanc::MetadataType_LastUpdate)); 290 ASSERT_TRUE(db.LookupMetadata(mdd, *manager, a, Orthanc::MetadataType_LastUpdate));
292 ASSERT_EQ("update", mdd); 291 ASSERT_EQ("update", mdd);
293 292
294 db.ListAvailableMetadata(md, manager, b); 293 db.ListAvailableMetadata(md, *manager, b);
295 ASSERT_EQ(0u, md.size()); 294 ASSERT_EQ(0u, md.size());
296 295
297 db.DeleteMetadata(manager, a, Orthanc::MetadataType_LastUpdate); 296 db.DeleteMetadata(*manager, a, Orthanc::MetadataType_LastUpdate);
298 db.DeleteMetadata(manager, b, Orthanc::MetadataType_LastUpdate); 297 db.DeleteMetadata(*manager, b, Orthanc::MetadataType_LastUpdate);
299 ASSERT_FALSE(db.LookupMetadata(s, manager, a, Orthanc::MetadataType_LastUpdate)); 298 ASSERT_FALSE(db.LookupMetadata(s, *manager, a, Orthanc::MetadataType_LastUpdate));
300 299
301 db.ListAvailableMetadata(md, manager, a); 300 db.ListAvailableMetadata(md, *manager, a);
302 ASSERT_EQ(1u, md.size()); 301 ASSERT_EQ(1u, md.size());
303 ASSERT_EQ(Orthanc::MetadataType_ModifiedFrom, md.front()); 302 ASSERT_EQ(Orthanc::MetadataType_ModifiedFrom, md.front());
304 303
305 ASSERT_EQ(0u, db.GetTotalCompressedSize(manager)); 304 ASSERT_EQ(0u, db.GetTotalCompressedSize(*manager));
306 ASSERT_EQ(0u, db.GetTotalUncompressedSize(manager)); 305 ASSERT_EQ(0u, db.GetTotalUncompressedSize(*manager));
307 306
308 307
309 std::list<int32_t> fc; 308 std::list<int32_t> fc;
310 309
311 OrthancPluginAttachment a1; 310 OrthancPluginAttachment a1;
324 a2.uncompressedHash = "md5_2"; 323 a2.uncompressedHash = "md5_2";
325 a2.compressionType = Orthanc::CompressionType_None; 324 a2.compressionType = Orthanc::CompressionType_None;
326 a2.compressedSize = 4242; 325 a2.compressedSize = 4242;
327 a2.compressedHash = "md5_2"; 326 a2.compressedHash = "md5_2";
328 327
329 db.AddAttachment(manager, a, a1); 328 db.AddAttachment(*manager, a, a1);
330 db.ListAvailableAttachments(fc, manager, a); 329 db.ListAvailableAttachments(fc, *manager, a);
331 ASSERT_EQ(1u, fc.size()); 330 ASSERT_EQ(1u, fc.size());
332 ASSERT_EQ(Orthanc::FileContentType_Dicom, fc.front()); 331 ASSERT_EQ(Orthanc::FileContentType_Dicom, fc.front());
333 db.AddAttachment(manager, a, a2); 332 db.AddAttachment(*manager, a, a2);
334 db.ListAvailableAttachments(fc, manager, a); 333 db.ListAvailableAttachments(fc, *manager, a);
335 ASSERT_EQ(2u, fc.size()); 334 ASSERT_EQ(2u, fc.size());
336 ASSERT_FALSE(db.LookupAttachment(*output, manager, b, Orthanc::FileContentType_Dicom)); 335 ASSERT_FALSE(db.LookupAttachment(*output, *manager, b, Orthanc::FileContentType_Dicom));
337 336
338 ASSERT_EQ(4284u, db.GetTotalCompressedSize(manager)); 337 ASSERT_EQ(4284u, db.GetTotalCompressedSize(*manager));
339 ASSERT_EQ(4284u, db.GetTotalUncompressedSize(manager)); 338 ASSERT_EQ(4284u, db.GetTotalUncompressedSize(*manager));
340 339
341 expectedAttachment.reset(new OrthancPluginAttachment); 340 expectedAttachment.reset(new OrthancPluginAttachment);
342 expectedAttachment->uuid = "uuid1"; 341 expectedAttachment->uuid = "uuid1";
343 expectedAttachment->contentType = Orthanc::FileContentType_Dicom; 342 expectedAttachment->contentType = Orthanc::FileContentType_Dicom;
344 expectedAttachment->uncompressedSize = 42; 343 expectedAttachment->uncompressedSize = 42;
345 expectedAttachment->uncompressedHash = "md5_1"; 344 expectedAttachment->uncompressedHash = "md5_1";
346 expectedAttachment->compressionType = Orthanc::CompressionType_None; 345 expectedAttachment->compressionType = Orthanc::CompressionType_None;
347 expectedAttachment->compressedSize = 42; 346 expectedAttachment->compressedSize = 42;
348 expectedAttachment->compressedHash = "md5_1"; 347 expectedAttachment->compressedHash = "md5_1";
349 ASSERT_TRUE(db.LookupAttachment(*output, manager, a, Orthanc::FileContentType_Dicom)); 348 ASSERT_TRUE(db.LookupAttachment(*output, *manager, a, Orthanc::FileContentType_Dicom));
350 349
351 expectedAttachment.reset(new OrthancPluginAttachment); 350 expectedAttachment.reset(new OrthancPluginAttachment);
352 expectedAttachment->uuid = "uuid2"; 351 expectedAttachment->uuid = "uuid2";
353 expectedAttachment->contentType = Orthanc::FileContentType_DicomAsJson; 352 expectedAttachment->contentType = Orthanc::FileContentType_DicomAsJson;
354 expectedAttachment->uncompressedSize = 4242; 353 expectedAttachment->uncompressedSize = 4242;
355 expectedAttachment->uncompressedHash = "md5_2"; 354 expectedAttachment->uncompressedHash = "md5_2";
356 expectedAttachment->compressionType = Orthanc::CompressionType_None; 355 expectedAttachment->compressionType = Orthanc::CompressionType_None;
357 expectedAttachment->compressedSize = 4242; 356 expectedAttachment->compressedSize = 4242;
358 expectedAttachment->compressedHash = "md5_2"; 357 expectedAttachment->compressedHash = "md5_2";
359 ASSERT_TRUE(db.LookupAttachment(*output, manager, a, Orthanc::FileContentType_DicomAsJson)); 358 ASSERT_TRUE(db.LookupAttachment(*output, *manager, a, Orthanc::FileContentType_DicomAsJson));
360 359
361 db.ListAvailableAttachments(fc, manager, b); 360 db.ListAvailableAttachments(fc, *manager, b);
362 ASSERT_EQ(0u, fc.size()); 361 ASSERT_EQ(0u, fc.size());
363 db.DeleteAttachment(*output, manager, a, Orthanc::FileContentType_Dicom); 362 db.DeleteAttachment(*output, *manager, a, Orthanc::FileContentType_Dicom);
364 db.ListAvailableAttachments(fc, manager, a); 363 db.ListAvailableAttachments(fc, *manager, a);
365 ASSERT_EQ(1u, fc.size()); 364 ASSERT_EQ(1u, fc.size());
366 ASSERT_EQ(Orthanc::FileContentType_DicomAsJson, fc.front()); 365 ASSERT_EQ(Orthanc::FileContentType_DicomAsJson, fc.front());
367 db.DeleteAttachment(*output, manager, a, Orthanc::FileContentType_DicomAsJson); 366 db.DeleteAttachment(*output, *manager, a, Orthanc::FileContentType_DicomAsJson);
368 db.ListAvailableAttachments(fc, manager, a); 367 db.ListAvailableAttachments(fc, *manager, a);
369 ASSERT_EQ(0u, fc.size()); 368 ASSERT_EQ(0u, fc.size());
370 369
371 370
372 db.SetIdentifierTag(manager, a, 0x0010, 0x0020, "patient"); 371 db.SetIdentifierTag(*manager, a, 0x0010, 0x0020, "patient");
373 db.SetIdentifierTag(manager, a, 0x0020, 0x000d, "study"); 372 db.SetIdentifierTag(*manager, a, 0x0020, 0x000d, "study");
374 373
375 expectedDicomTags.clear(); 374 expectedDicomTags.clear();
376 expectedDicomTags.push_back(OrthancPluginDicomTag()); 375 expectedDicomTags.push_back(OrthancPluginDicomTag());
377 expectedDicomTags.push_back(OrthancPluginDicomTag()); 376 expectedDicomTags.push_back(OrthancPluginDicomTag());
378 expectedDicomTags.front().group = 0x0010; 377 expectedDicomTags.front().group = 0x0010;
379 expectedDicomTags.front().element = 0x0020; 378 expectedDicomTags.front().element = 0x0020;
380 expectedDicomTags.front().value = "patient"; 379 expectedDicomTags.front().value = "patient";
381 expectedDicomTags.back().group = 0x0020; 380 expectedDicomTags.back().group = 0x0020;
382 expectedDicomTags.back().element = 0x000d; 381 expectedDicomTags.back().element = 0x000d;
383 expectedDicomTags.back().value = "study"; 382 expectedDicomTags.back().value = "study";
384 db.GetMainDicomTags(*output, manager, a); 383 db.GetMainDicomTags(*output, *manager, a);
385 384
386 385
387 db.LookupIdentifier(ci, manager, OrthancPluginResourceType_Study, 0x0010, 0x0020, 386 db.LookupIdentifier(ci, *manager, OrthancPluginResourceType_Study, 0x0010, 0x0020,
388 OrthancPluginIdentifierConstraint_Equal, "patient"); 387 OrthancPluginIdentifierConstraint_Equal, "patient");
389 ASSERT_EQ(1u, ci.size()); 388 ASSERT_EQ(1u, ci.size());
390 ASSERT_EQ(a, ci.front()); 389 ASSERT_EQ(a, ci.front());
391 db.LookupIdentifier(ci, manager, OrthancPluginResourceType_Study, 0x0010, 0x0020, 390 db.LookupIdentifier(ci, *manager, OrthancPluginResourceType_Study, 0x0010, 0x0020,
392 OrthancPluginIdentifierConstraint_Equal, "study"); 391 OrthancPluginIdentifierConstraint_Equal, "study");
393 ASSERT_EQ(0u, ci.size()); 392 ASSERT_EQ(0u, ci.size());
394 393
395 394
396 OrthancPluginExportedResource exp; 395 OrthancPluginExportedResource exp;
401 exp.date = "date"; 400 exp.date = "date";
402 exp.patientId = "patient"; 401 exp.patientId = "patient";
403 exp.studyInstanceUid = "study"; 402 exp.studyInstanceUid = "study";
404 exp.seriesInstanceUid = "series"; 403 exp.seriesInstanceUid = "series";
405 exp.sopInstanceUid = "instance"; 404 exp.sopInstanceUid = "instance";
406 db.LogExportedResource(manager, exp); 405 db.LogExportedResource(*manager, exp);
407 406
408 expectedExported.reset(new OrthancPluginExportedResource()); 407 expectedExported.reset(new OrthancPluginExportedResource());
409 *expectedExported = exp; 408 *expectedExported = exp;
410 expectedExported->seq = 1; 409 expectedExported->seq = 1;
411 410
412 bool done; 411 bool done;
413 db.GetExportedResources(*output, done, manager, 0, 10); 412 db.GetExportedResources(*output, done, *manager, 0, 10);
414 413
415 414
416 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Patient); ASSERT_EQ(0u, pub.size()); 415 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Patient); ASSERT_EQ(0u, pub.size());
417 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Study); ASSERT_EQ(1u, pub.size()); 416 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Study); ASSERT_EQ(1u, pub.size());
418 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Series); ASSERT_EQ(2u, pub.size()); 417 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Series); ASSERT_EQ(2u, pub.size());
419 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Instance); ASSERT_EQ(0u, pub.size()); 418 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Instance); ASSERT_EQ(0u, pub.size());
420 ASSERT_EQ(3u, db.GetAllResourcesCount(manager)); 419 ASSERT_EQ(3u, db.GetAllResourcesCount(*manager));
421 420
422 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(manager)); // No patient was inserted 421 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(*manager)); // No patient was inserted
423 ASSERT_TRUE(db.IsExistingResource(manager, c)); 422 ASSERT_TRUE(db.IsExistingResource(*manager, c));
424 423
425 { 424 {
426 // A transaction is needed here for MySQL, as it was not possible 425 // A transaction is needed here for MySQL, as it was not possible
427 // to implement recursive deletion of resources using pure SQL 426 // to implement recursive deletion of resources using pure SQL
428 // statements 427 // statements
429 manager.StartTransaction(TransactionType_ReadWrite); 428 manager->StartTransaction(TransactionType_ReadWrite);
430 db.DeleteResource(*output, manager, c); 429 db.DeleteResource(*output, *manager, c);
431 manager.CommitTransaction(); 430 manager->CommitTransaction();
432 } 431 }
433 432
434 ASSERT_FALSE(db.IsExistingResource(manager, c)); 433 ASSERT_FALSE(db.IsExistingResource(*manager, c));
435 ASSERT_TRUE(db.IsExistingResource(manager, a)); 434 ASSERT_TRUE(db.IsExistingResource(*manager, a));
436 ASSERT_TRUE(db.IsExistingResource(manager, b)); 435 ASSERT_TRUE(db.IsExistingResource(*manager, b));
437 ASSERT_EQ(2u, db.GetAllResourcesCount(manager)); 436 ASSERT_EQ(2u, db.GetAllResourcesCount(*manager));
438 db.DeleteResource(*output, manager, a); 437 db.DeleteResource(*output, *manager, a);
439 ASSERT_EQ(0u, db.GetAllResourcesCount(manager)); 438 ASSERT_EQ(0u, db.GetAllResourcesCount(*manager));
440 ASSERT_FALSE(db.IsExistingResource(manager, a)); 439 ASSERT_FALSE(db.IsExistingResource(*manager, a));
441 ASSERT_FALSE(db.IsExistingResource(manager, b)); 440 ASSERT_FALSE(db.IsExistingResource(*manager, b));
442 ASSERT_FALSE(db.IsExistingResource(manager, c)); 441 ASSERT_FALSE(db.IsExistingResource(*manager, c));
443 442
444 ASSERT_EQ(0u, db.GetAllResourcesCount(manager)); 443 ASSERT_EQ(0u, db.GetAllResourcesCount(*manager));
445 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(manager)); 444 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(*manager));
446 int64_t p1 = db.CreateResource(manager, "patient1", OrthancPluginResourceType_Patient); 445 int64_t p1 = db.CreateResource(*manager, "patient1", OrthancPluginResourceType_Patient);
447 int64_t p2 = db.CreateResource(manager, "patient2", OrthancPluginResourceType_Patient); 446 int64_t p2 = db.CreateResource(*manager, "patient2", OrthancPluginResourceType_Patient);
448 int64_t p3 = db.CreateResource(manager, "patient3", OrthancPluginResourceType_Patient); 447 int64_t p3 = db.CreateResource(*manager, "patient3", OrthancPluginResourceType_Patient);
449 ASSERT_EQ(3u, db.GetUnprotectedPatientsCount(manager)); 448 ASSERT_EQ(3u, db.GetUnprotectedPatientsCount(*manager));
450 int64_t r; 449 int64_t r;
451 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager)); 450 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager));
452 ASSERT_EQ(p1, r); 451 ASSERT_EQ(p1, r);
453 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager, p1)); 452 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager, p1));
454 ASSERT_EQ(p2, r); 453 ASSERT_EQ(p2, r);
455 ASSERT_FALSE(db.IsProtectedPatient(manager, p1)); 454 ASSERT_FALSE(db.IsProtectedPatient(*manager, p1));
456 db.SetProtectedPatient(manager, p1, true); 455 db.SetProtectedPatient(*manager, p1, true);
457 ASSERT_TRUE(db.IsProtectedPatient(manager, p1)); 456 ASSERT_TRUE(db.IsProtectedPatient(*manager, p1));
458 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager)); 457 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager));
459 ASSERT_EQ(p2, r); 458 ASSERT_EQ(p2, r);
460 db.SetProtectedPatient(manager, p1, false); 459 db.SetProtectedPatient(*manager, p1, false);
461 ASSERT_FALSE(db.IsProtectedPatient(manager, p1)); 460 ASSERT_FALSE(db.IsProtectedPatient(*manager, p1));
462 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager)); 461 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager));
463 ASSERT_EQ(p2, r); 462 ASSERT_EQ(p2, r);
464 db.DeleteResource(*output, manager, p2); 463 db.DeleteResource(*output, *manager, p2);
465 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager, p3)); 464 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager, p3));
466 ASSERT_EQ(p1, r); 465 ASSERT_EQ(p1, r);
467 466
468 manager.Close(); 467 manager->Close();
469 } 468 }