diff --git a/tests/unittests/topohelper/geometry/tst_getSidePosition.cpp b/tests/unittests/topohelper/geometry/tst_getSidePosition.cpp index 4e5d1910b066b41c93d008f04b463452a1882825..d74da5a82917facc90a672d6a4530928ee77833b 100644 --- a/tests/unittests/topohelper/geometry/tst_getSidePosition.cpp +++ b/tests/unittests/topohelper/geometry/tst_getSidePosition.cpp @@ -30,13 +30,49 @@ class TestGetSidePosition : public QObject private slots: void testGetSidePosition_data() { - QSKIP("Not implemented yet"); + QTest::addColumn<QRectF>("boundingArea"); + QTest::addColumn<QPointF>("pos"); + QTest::addColumn<Qt::Alignment>("side"); + QTest::addColumn<QPointF>("expectedResult"); + + auto asFlags = [](Qt::Alignment flag) { return QFlags<Qt::AlignmentFlag>(flag); }; + + constexpr QRectF testRect(0, 0, 100, 100); + static const QPointF ¢er = testRect.center(); + constexpr QRectF noRect = QRectF(); + constexpr QPointF noPoint = QPointF(); + + QTest::newRow("Left") << testRect << center << asFlags(Qt::AlignLeft) << QPointF(testRect.left(), center.y()); + QTest::newRow("LeftNoRect") << noRect << center << asFlags(Qt::AlignLeft) << noPoint; + QTest::newRow("LeftNoPoint") << testRect << noPoint << asFlags(Qt::AlignLeft) << noPoint; + + QTest::newRow("Right") << testRect << center << asFlags(Qt::AlignRight) + << QPointF(testRect.right(), center.y()); + QTest::newRow("RightNoRect") << noRect << center << asFlags(Qt::AlignRight) << noPoint; + QTest::newRow("RightNoPoint") << testRect << noPoint << asFlags(Qt::AlignRight) << QPointF(testRect.right(), 0); + + QTest::newRow("Top") << testRect << center << asFlags(Qt::AlignTop) << QPointF(center.x(), testRect.top()); + QTest::newRow("TopNoRect") << noRect << center << asFlags(Qt::AlignTop) << noPoint; + QTest::newRow("TopNoPoint") << testRect << noPoint << asFlags(Qt::AlignTop) << noPoint; + + QTest::newRow("Bottom") << testRect << center << asFlags(Qt::AlignBottom) + << QPointF(center.x(), testRect.bottom()); + QTest::newRow("BottomNoRect") << noRect << center << asFlags(Qt::AlignBottom) << noPoint; + QTest::newRow("BottomNoPoint") << testRect << noPoint << asFlags(Qt::AlignBottom) + << QPointF(0, testRect.bottom()); + + QTest::newRow("Center") << testRect << center << asFlags(Qt::AlignCenter) << center; } void testGetSidePosition() { - QSKIP("Not implemented yet"); - // const auto &actualResult = getSidePosition(replaceMe); + QFETCH(QRectF, boundingArea); + QFETCH(QPointF, pos); + QFETCH(Qt::Alignment, side); + QFETCH(QPointF, expectedResult); + + const auto &actualResult = getSidePosition(boundingArea, pos, side); + QCOMPARE(actualResult, expectedResult); } };