aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/cppquickfix_test.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-06-30 17:09:23 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-07-10 08:07:16 +0000
commite210bcf3eb2135792edd40f1b0cac1cf113fe1ef (patch)
treeb99b062b4ca28d6d260bb7e78491c42c1da93c7c /src/plugins/cppeditor/cppquickfix_test.cpp
parent9822e83392b31d285ac3826d9ba5e5b5351b99e6 (diff)
CppEditor: Offer to create getters and setters for all class members
Fixes: QTCREATORBUG-14504 Change-Id: I12c687492b12c6997064eb7f137b6ccb189d2009 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cppeditor/cppquickfix_test.cpp')
-rw-r--r--src/plugins/cppeditor/cppquickfix_test.cpp91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp
index 7eff28577b..2512a9b936 100644
--- a/src/plugins/cppeditor/cppquickfix_test.cpp
+++ b/src/plugins/cppeditor/cppquickfix_test.cpp
@@ -2249,6 +2249,97 @@ void CppEditorPlugin::test_quickfix_GenerateGetterSetter_offerSetterWhenGetterPr
QuickFixOperationTest(testDocuments, &factory);
}
+void CppEditorPlugin::test_quickfix_GenerateGettersSetters_data()
+{
+ QTest::addColumn<QByteArray>("original");
+ QTest::addColumn<QByteArray>("expected");
+
+ const QByteArray noCandidates = R"(
+class @Foo {
+public:
+ int bar() const;
+ void setBar(int bar);
+private:
+ int m_bar;
+};)";
+ QTest::addRow("without candidates") << noCandidates << QByteArray();
+
+ const QByteArray withCandidates = R"(
+class @Foo {
+public:
+ int bar() const;
+ void setBar(int bar) { m_bar = bar; }
+
+ int getBar2() const;
+
+ int m_alreadyPublic;
+
+private:
+ friend void distraction();
+ class AnotherDistraction {};
+ enum EvenMoreDistraction { val1, val2 };
+
+ int m_bar;
+ int bar2_;
+ QString bar3;
+};)";
+ const QByteArray after = R"(
+class Foo {
+public:
+ int bar() const;
+ void setBar(int bar) { m_bar = bar; }
+
+ int getBar2() const;
+
+ int m_alreadyPublic;
+
+ void setBar2(int bar2);
+
+ QString getBar3() const;
+ void setBar3(const QString &value);
+
+private:
+ friend void distraction();
+ class AnotherDistraction {};
+ enum EvenMoreDistraction { val1, val2 };
+
+ int m_bar;
+ int bar2_;
+ QString bar3;
+};
+void Foo::setBar2(int bar2)
+{
+ bar2_ = bar2;
+}
+
+QString Foo::getBar3() const
+{
+ return bar3;
+}
+
+void Foo::setBar3(const QString &value)
+{
+ bar3 = value;
+}
+)";
+ QTest::addRow("with candidates") << withCandidates << after;
+}
+
+void CppEditorPlugin::test_quickfix_GenerateGettersSetters()
+{
+ class TestFactory : public GenerateGettersSettersForClass
+ {
+ public:
+ TestFactory() { setTest(); }
+ };
+
+ QFETCH(QByteArray, original);
+ QFETCH(QByteArray, expected);
+
+ TestFactory factory;
+ QuickFixOperationTest({QuickFixTestDocument::create("file.h", original, expected)}, &factory);
+}
+
/// Check if definition is inserted right after class for insert definition outside
void CppEditorPlugin::test_quickfix_InsertDefFromDecl_afterClass()
{