#include #include #include class TestStringUtils : public QObject { Q_OBJECT private slots: void testUniqueName_data(); void testUniqueName(); }; void TestStringUtils::testUniqueName_data() { // ////////////// // // Test structure // // ////////////// // QTest::addColumn("defaultName"); QTest::addColumn >("forbiddenNames"); QTest::addColumn("expectedName"); // ////////// // // Test cases // // ////////// // QTest::newRow("uniqueName") << "FGM" << std::vector{"FGM2"} << "FGM"; QTest::newRow("uniqueName2") << "FGM2" << std::vector{"FGM", "FGM1", "FGM2"} << "FGM3"; QTest::newRow("uniqueName3") << "FGM1" << std::vector{"FGM1"} << "FGM"; QTest::newRow("uniqueName4") << "FGM" << std::vector{"FGM"} << "FGM1"; QTest::newRow("uniqueName5") << "FGM" << std::vector{"FGM", "FGM1", "FGM3"} << "FGM2"; QTest::newRow("uniqueName6") << "FGM" << std::vector{"A", "B", "C"} << "FGM"; QTest::newRow("uniqueName7") << "FGM" << std::vector{"fGm", "FGm1", "Fgm2"} << "FGM3"; QTest::newRow("uniqueName8") << "" << std::vector{"A", "B", "C"} << "1"; QTest::newRow("uniqueName9") << "24" << std::vector{"A", "B", "C"} << "1"; } void TestStringUtils::testUniqueName() { QFETCH(QString, defaultName); QFETCH(std::vector, forbiddenNames); QFETCH(QString, expectedName); auto result = StringUtils::uniqueName(defaultName, forbiddenNames); QCOMPARE(result, expectedName); } QTEST_MAIN(TestStringUtils) #include "TestStringUtils.moc"