From c0e91e4f16421db9b3a8e19f22af3c2aa14ba8ea Mon Sep 17 00:00:00 2001 From: Florian Geyer Date: Tue, 24 Jul 2012 20:30:16 +0200 Subject: [PATCH] Refactor wildcard matcher test. --- tests/TestWildcardMatcher.cpp | 118 ++++++++++------------------------ tests/TestWildcardMatcher.h | 16 +---- 2 files changed, 37 insertions(+), 97 deletions(-) diff --git a/tests/TestWildcardMatcher.cpp b/tests/TestWildcardMatcher.cpp index 197d798c3..0c3c0137b 100644 --- a/tests/TestWildcardMatcher.cpp +++ b/tests/TestWildcardMatcher.cpp @@ -25,95 +25,35 @@ const QString TestWildcardMatcher::DefaultText = QString("some text"); const QString TestWildcardMatcher::AlternativeText = QString("some other text"); -void TestWildcardMatcher::testMatchWithoutWildcard() +void TestWildcardMatcher::testMatcher_data() { - initMatcher(DefaultText); - QString pattern = DefaultText; - verifyMatch(pattern); + QTest::addColumn("text"); + QTest::addColumn("pattern"); + QTest::addColumn("match"); + + QTest::newRow("MatchWithoutWildcard") << DefaultText << DefaultText << true; + QTest::newRow("NoMatchWithoutWildcard") << DefaultText << QString("no match text") << false; + QTest::newRow("MatchWithOneWildcardInTheMiddle") << AlternativeText << QString("some*text") << true; + QTest::newRow("NoMatchWithOneWildcardInTheMiddle") << AlternativeText << QString("differen*text") << false; + QTest::newRow("MatchWithOneWildcardAtBegin") << DefaultText << QString("*text") << true; + QTest::newRow("NoMatchWithOneWildcardAtBegin") << DefaultText << QString("*text something else") << false; + QTest::newRow("NatchWithOneWildcardAtEnd") << DefaultText << QString("some*") << true; + QTest::newRow("NoMatchWithOneWildcardAtEnd") << DefaultText << QString("some other*") << false; + QTest::newRow("MatchWithMultipleWildcards") << AlternativeText << QString("some*th*text") << true; + QTest::newRow("NoMatchWithMultipleWildcards") << AlternativeText << QString("some*abc*text") << false; + QTest::newRow("MatchJustWildcard") << DefaultText << QString("*") << true; + QTest::newRow("MatchFollowingWildcards") << DefaultText << QString("some t**t") << true; + QTest::newRow("CaseSensitivity") << DefaultText.toUpper() << QString("some t**t") << true; } -void TestWildcardMatcher::testNoMatchWithoutWildcard() +void TestWildcardMatcher::testMatcher() { - initMatcher(DefaultText); - QString pattern = QString("no match text"); - verifyNoMatch(pattern); -} + QFETCH(QString, text); + QFETCH(QString, pattern); + QFETCH(bool, match); -void TestWildcardMatcher::testMatchWithOneWildcardInTheMiddle() -{ - initMatcher(AlternativeText); - QString pattern("some*text"); - verifyMatch(pattern); -} - -void TestWildcardMatcher::testNoMatchWithOneWildcardInTheMiddle() -{ - initMatcher(AlternativeText); - QString pattern("differen*text"); - verifyNoMatch(pattern); -} - -void TestWildcardMatcher::testMatchWithOneWildcardAtBegin() -{ - initMatcher(DefaultText); - QString pattern("*text"); - verifyMatch(pattern); -} - -void TestWildcardMatcher::testNoMatchWithOneWildcardAtBegin() -{ - initMatcher(DefaultText); - QString pattern("*text something else"); - verifyNoMatch(pattern); -} - -void TestWildcardMatcher::testMatchWithOneWildcardAtEnd() -{ - initMatcher(DefaultText); - QString pattern("some*"); - verifyMatch(pattern); -} - -void TestWildcardMatcher::testNoMatchWithOneWildcardAtEnd() -{ - initMatcher(DefaultText); - QString pattern("some other*"); - verifyNoMatch(pattern); -} - -void TestWildcardMatcher::testMatchWithMultipleWildcards() -{ - initMatcher(AlternativeText); - QString pattern("some*th*text"); - verifyMatch(pattern); -} - -void TestWildcardMatcher::testNoMatchWithMultipleWildcards() -{ - initMatcher(AlternativeText); - QString pattern("some*abc*text"); - verifyNoMatch(pattern); -} - -void TestWildcardMatcher::testMatchJustWildcard() -{ - initMatcher(AlternativeText); - QString pattern("*"); - verifyMatch(pattern); -} - -void TestWildcardMatcher::testMatchFollowingWildcards() -{ - initMatcher(DefaultText); - QString pattern("some t**t"); - verifyMatch(pattern); -} - -void TestWildcardMatcher::testCaseSensitivity() -{ - initMatcher(DefaultText.toUpper()); - QString pattern("some t**t"); - verifyMatch(pattern); + initMatcher(text); + verifyMatchResult(pattern, match); } void TestWildcardMatcher::initMatcher(QString text) @@ -121,6 +61,16 @@ void TestWildcardMatcher::initMatcher(QString text) m_matcher = new WildcardMatcher(text); } +void TestWildcardMatcher::verifyMatchResult(QString pattern, bool expected) +{ + if (expected) { + verifyMatch(pattern); + } + else { + verifyNoMatch(pattern); + } +} + void TestWildcardMatcher::verifyMatch(QString pattern) { bool matchResult = m_matcher->match(pattern); diff --git a/tests/TestWildcardMatcher.h b/tests/TestWildcardMatcher.h index 27d9a2b03..779bb6cb7 100644 --- a/tests/TestWildcardMatcher.h +++ b/tests/TestWildcardMatcher.h @@ -27,25 +27,15 @@ class TestWildcardMatcher : public QObject Q_OBJECT private Q_SLOTS: - void testMatchWithoutWildcard(); - void testNoMatchWithoutWildcard(); - void testMatchWithOneWildcardInTheMiddle(); - void testNoMatchWithOneWildcardInTheMiddle(); - void testNoMatchWithOneWildcardAtBegin(); - void testMatchWithOneWildcardAtBegin(); - void testNoMatchWithOneWildcardAtEnd(); - void testMatchWithOneWildcardAtEnd(); - void testMatchWithMultipleWildcards(); - void testNoMatchWithMultipleWildcards(); - void testMatchJustWildcard(); - void testMatchFollowingWildcards(); - void testCaseSensitivity(); + void testMatcher(); + void testMatcher_data(); private: static const QString DefaultText; static const QString AlternativeText; void initMatcher(QString text); + void verifyMatchResult(QString pattern, bool expected); void verifyMatch(QString pattern); void verifyNoMatch(QString pattern);