# HG changeset patch
# User Sebastien Jodogne <s.jodogne@gmail.com>
# Date 1624887289 -7200
# Node ID 6d4d413a87970164734b2b22bc85bc840c0ea5c0
# Parent  772fa76cddf8ef3f3321bb82cba7b70b05c4fe7a
unit test for large properties

diff -r 772fa76cddf8 -r 6d4d413a8797 Framework/Plugins/IndexUnitTests.h
--- a/Framework/Plugins/IndexUnitTests.h	Mon Jun 28 15:04:23 2021 +0200
+++ b/Framework/Plugins/IndexUnitTests.h	Mon Jun 28 15:34:49 2021 +0200
@@ -522,5 +522,22 @@
   ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager, p3));
   ASSERT_EQ(p1, r);
 
+  {
+    // Test creating a large property of 16MB
+    // https://groups.google.com/g/orthanc-users/c/1Y3nTBdr0uE/m/K7PA5pboAgAJ
+    std::string longProperty;
+    longProperty.resize(16 * 1024 * 1024);
+    for (size_t i = 0; i < longProperty.size(); i++)
+    {
+      longProperty[i] = 'A' + (i % 26);
+    }
+
+    db.SetGlobalProperty(*manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_DatabaseInternal8, longProperty.c_str());
+
+    std::string tmp;
+    ASSERT_TRUE(db.LookupGlobalProperty(tmp, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_DatabaseInternal8));
+    ASSERT_EQ(longProperty, tmp);
+  }
+
   manager->Close();
 }