tests used Q_GLOBAL_STATIC_WITH_ARGS()

This commit is contained in:
silverqx
2023-05-16 14:17:16 +02:00
parent 49829bc055
commit 58a197a5ca
2 changed files with 58 additions and 48 deletions
@@ -196,10 +196,14 @@ private:
QString m_connection {};
};
/*! QString constant "album_id" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(QString, album_id_s, ("album_id")) // NOLINT(misc-use-anonymous-namespace)
/*! Orm::Column constant "album_id" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(Orm::Column, album_id, ("album_id")) // NOLINT(misc-use-anonymous-namespace)
Q_GLOBAL_STATIC_WITH_ARGS(Orm::Column, album_id, (std::in_place_index<0>, "album_id")) // NOLINT(misc-use-anonymous-namespace)
/*! QString constant "albumImages" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(QString, albumImages, ("albumImages")) // NOLINT(misc-use-anonymous-namespace)
/*! QString constant "ext" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(QString, ext, ("ext")) // NOLINT(misc-use-anonymous-namespace)
/* private slots */
@@ -1085,7 +1089,7 @@ void tst_Collection_Models::load_lvalue() const
for (AlbumImage *const image : images) {
QVERIFY(image);
QVERIFY(image->exists);
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1149,11 +1153,11 @@ void tst_Collection_Models::load_lvalue_WithSelectConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", "ext"};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, *ext};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1176,9 +1180,9 @@ void tst_Collection_Models::load_lvalue_WithLambdaConstraint() const
// Load the albumImages hasMany relation
ModelsCollection<Album> &result =
albums.load({{"albumImages", [](auto &query)
albums.load({{*albumImages, [](auto &query)
{
query.select({ID, "album_id", SIZE_});
query.select({ID, *album_id_s, SIZE_});
}}});
// Both must be lvalue references because of that the decltype ((images)) is used
QVERIFY((std::is_same_v<decltype (result), decltype ((albums))>));
@@ -1221,11 +1225,11 @@ void tst_Collection_Models::load_lvalue_WithLambdaConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", SIZE_};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, SIZE_};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1316,7 +1320,7 @@ void tst_Collection_Models::load_rvalue() const
for (AlbumImage *const image : images) {
QVERIFY(image);
QVERIFY(image->exists);
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1387,11 +1391,11 @@ void tst_Collection_Models::load_rvalue_WithSelectConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", "ext"};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, *ext};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1414,9 +1418,9 @@ void tst_Collection_Models::load_rvalue_WithLambdaConstraint() const
// Load the albumImages hasMany relation
ModelsCollection<Album> &&result =
std::move(albums).load({{"albumImages", [](auto &query)
std::move(albums).load({{*albumImages, [](auto &query)
{
query.select({ID, "album_id", SIZE_});
query.select({ID, *album_id_s, SIZE_});
}}});
/* In 99% cases it must be the same ModelsCollection (the same memory address) but
I'm disabling the QVERIFY check because this is compiler specific, if the result
@@ -1465,11 +1469,11 @@ void tst_Collection_Models::load_rvalue_WithLambdaConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", SIZE_};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, SIZE_};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1635,7 +1639,7 @@ void tst_Collection_Models::whereNull_quint64() const
QVERIFY(verifyIds(images, {6, 7, 8, 9}));
// Get result
const auto result = images.whereNull("album_id");
const auto result = images.whereNull(*album_id_s);
// Verify
QCOMPARE(result.size(), 2);
@@ -1650,7 +1654,7 @@ void tst_Collection_Models::whereNotNull_quint64() const
QVERIFY(verifyIds(images, {6, 7, 8, 9}));
// Get result
const auto result = images.whereNotNull("album_id");
const auto result = images.whereNotNull(*album_id_s);
// Verify
QCOMPARE(result.size(), 2);
@@ -1665,7 +1669,7 @@ void tst_Collection_Models::whereIn_QString() const
QVERIFY(verifyIds(images, {1, 2, 3, 4, 5, 6, 7, 8, 9}));
// Get result
const auto result = images.whereIn<QString>("ext", {"png", "gif"});
const auto result = images.whereIn<QString>(*ext, {"png", "gif"});
// Verify
QCOMPARE(result.size(), 4);
@@ -1680,7 +1684,7 @@ void tst_Collection_Models::whereIn_quint64() const
QVERIFY(verifyIds(images, {1, 2, 3, 4, 5, 6, 7, 8, 9}));
// Get result
const auto result = images.whereIn<quint64>("album_id", {2, 3});
const auto result = images.whereIn<quint64>(*album_id_s, {2, 3});
// Verify
QCOMPARE(result.size(), 6);
@@ -1709,7 +1713,7 @@ void tst_Collection_Models::whereNotIn_QString() const
QVERIFY(verifyIds(images, {1, 2, 3, 4, 5, 6, 7, 8, 9}));
// Get result
const auto result = images.whereNotIn<QString>("ext", {"png", "gif"});
const auto result = images.whereNotIn<QString>(*ext, {"png", "gif"});
// Verify
QCOMPARE(result.size(), 5);
@@ -1724,7 +1728,7 @@ void tst_Collection_Models::whereNotIn_quint64() const
QVERIFY(verifyIds(images, {1, 2, 3, 4, 5, 6, 7, 8, 9}));
// Get result
const auto result = images.whereNotIn<quint64>("album_id", {2, 3});
const auto result = images.whereNotIn<quint64>(*album_id_s, {2, 3});
// Verify
QCOMPARE(result.size(), 3);
@@ -195,8 +195,14 @@ private:
QString m_connection {};
};
/*! QString constant "album_id" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(QString, album_id_s, ("album_id")) // NOLINT(misc-use-anonymous-namespace)
/*! Orm::Column constant "album_id" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(Orm::Column, album_id, (std::in_place_index<0>, "album_id")) // NOLINT(misc-use-anonymous-namespace)
/*! QString constant "albumImages" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(QString, albumImages, ("albumImages")) // NOLINT(misc-use-anonymous-namespace)
/*! QString constant "ext" (perf. reason, one time initialization). */
Q_GLOBAL_STATIC_WITH_ARGS(QString, ext, ("ext")) // NOLINT(misc-use-anonymous-namespace)
/* private slots */
@@ -412,11 +418,11 @@ void tst_Collection_Relations::implode_Ext_ColumnWithNull() const
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
// Prepare
(*images.at(1))["ext"] = NullVariant::QString();
(*images.at(2))["ext"] = NullVariant::QString();
(*images.at(1))[*ext] = NullVariant::QString();
(*images.at(2))[*ext] = NullVariant::QString();
// Get result
const auto result = images.implode("ext", COMMA);
const auto result = images.implode(*ext, COMMA);
// Verify
QCOMPARE(result, QString("png, , , png, gif"));
@@ -1312,7 +1318,7 @@ void tst_Collection_Relations::load_lvalue() const
for (AlbumImage *const image : images) {
QVERIFY(image);
QVERIFY(image->exists);
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1381,11 +1387,11 @@ void tst_Collection_Relations::load_lvalue_WithSelectConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", "ext"};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, *ext};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1415,7 +1421,7 @@ void tst_Collection_Relations::load_lvalue_WithLambdaConstraint() const
ModelsCollection<Album *> &result =
albumsInit.load({{*albumImages, [](auto &query)
{
query.select({ID, "album_id", SIZE_});
query.select({ID, *album_id_s, SIZE_});
}}});
// Both must be lvalue references because of that the decltype ((images)) is used
QVERIFY((std::is_same_v<decltype (result), decltype ((albumsInit))>));
@@ -1458,11 +1464,11 @@ void tst_Collection_Relations::load_lvalue_WithLambdaConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", SIZE_};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, SIZE_};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1562,7 +1568,7 @@ void tst_Collection_Relations::load_rvalue() const
for (AlbumImage *const image : images) {
QVERIFY(image);
QVERIFY(image->exists);
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1638,11 +1644,11 @@ void tst_Collection_Relations::load_rvalue_WithSelectConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", "ext"};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, *ext};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1672,7 +1678,7 @@ void tst_Collection_Relations::load_rvalue_WithLambdaConstraint() const
ModelsCollection<Album *> &&result =
std::move(albumsInit).load({{"albumImages", [](auto &query)
{
query.select({ID, "album_id", SIZE_});
query.select({ID, *album_id_s, SIZE_});
}}});
/* In 99% cases it must be the same ModelsCollection (the same memory address) but
@@ -1722,11 +1728,11 @@ void tst_Collection_Relations::load_rvalue_WithLambdaConstraint() const
const auto &attributes = image->getAttributes();
QCOMPARE(attributes.size(), 3);
std::unordered_set<QString> expectedAttributes {ID, "album_id", SIZE_};
std::unordered_set<QString> expectedAttributes {ID, *album_id_s, SIZE_};
for (const auto &attribute : attributes)
QVERIFY(expectedAttributes.contains(attribute.key));
QCOMPARE(image->getAttribute("album_id"), albumId);
QCOMPARE(image->getAttribute(*album_id_s), albumId);
QVERIFY(expectedImage.imagesId.contains(
image->getKey().value<AlbumImage::KeyType>()));
QCOMPARE(typeid (AlbumImage *), typeid (image));
@@ -1903,11 +1909,11 @@ void tst_Collection_Relations::whereNull_QString() const
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
// Prepare
(*images.at(1))["ext"] = NullVariant::QString();
(*images.at(2))["ext"] = NullVariant::QString();
(*images.at(1))[*ext] = NullVariant::QString();
(*images.at(2))[*ext] = NullVariant::QString();
// Get result
const auto result = images.whereNull("ext");
const auto result = images.whereNull(*ext);
// Verify
QCOMPARE(result.size(), 2);
@@ -1927,11 +1933,11 @@ void tst_Collection_Relations::whereNotNull_QString() const
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
// Prepare
(*images.at(1))["ext"] = NullVariant::QString();
(*images.at(2))["ext"] = NullVariant::QString();
(*images.at(1))[*ext] = NullVariant::QString();
(*images.at(2))[*ext] = NullVariant::QString();
// Get result
const auto result = images.whereNotNull("ext");
const auto result = images.whereNotNull(*ext);
// Verify
QCOMPARE(result.size(), 3);
@@ -1951,7 +1957,7 @@ void tst_Collection_Relations::whereIn_QString() const
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
// Get result
const auto result = images.whereIn<QString>("ext", {"png", "gif"});
const auto result = images.whereIn<QString>(*ext, {"png", "gif"});
// Verify
QCOMPARE(result.size(), 3);
@@ -2010,7 +2016,7 @@ void tst_Collection_Relations::whereNotIn_QString() const
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
// Get result
const auto result = images.whereNotIn<QString>("ext", {"png", "gif"});
const auto result = images.whereNotIn<QString>(*ext, {"png", "gif"});
// Verify
QCOMPARE(result.size(), 2);
@@ -2502,7 +2508,7 @@ void tst_Collection_Relations::each_lvalue_bool_index() const
void tst_Collection_Relations::each_rvalue() const
{
auto images = AlbumImage::whereEq("album_id", 2)->get();
auto images = AlbumImage::whereEq(*album_id, 2)->get();
QCOMPARE(images.size(), 5);
QCOMPARE(typeid (ModelsCollection<AlbumImage>), typeid (images));
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
@@ -2535,7 +2541,7 @@ void tst_Collection_Relations::each_rvalue() const
void tst_Collection_Relations::each_rvalue_index() const
{
auto images = AlbumImage::whereEq("album_id", 2)->get();
auto images = AlbumImage::whereEq(*album_id, 2)->get();
QCOMPARE(images.size(), 5);
QCOMPARE(typeid (ModelsCollection<AlbumImage>), typeid (images));
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
@@ -2569,7 +2575,7 @@ void tst_Collection_Relations::each_rvalue_index() const
void tst_Collection_Relations::each_rvalue_bool() const
{
auto images = AlbumImage::whereEq("album_id", 2)->get();
auto images = AlbumImage::whereEq(*album_id, 2)->get();
QCOMPARE(images.size(), 5);
QCOMPARE(typeid (ModelsCollection<AlbumImage>), typeid (images));
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));
@@ -2608,7 +2614,7 @@ void tst_Collection_Relations::each_rvalue_bool() const
void tst_Collection_Relations::each_rvalue_bool_index() const
{
auto images = AlbumImage::whereEq("album_id", 2)->get();
auto images = AlbumImage::whereEq(*album_id, 2)->get();
QCOMPARE(images.size(), 5);
QCOMPARE(typeid (ModelsCollection<AlbumImage>), typeid (images));
QVERIFY(verifyIds(images, {2, 3, 4, 5, 6}));