AusweisApp2/test/qt/qml/test_ProviderCategoryFilter...

79 lines
2.0 KiB
C++

/*!
* \brief Unit tests for \ref ProviderCategoryFilterModel
*
* \copyright Copyright (c) 2018 Governikus GmbH & Co. KG, Germany
*/
#include "ProviderCategoryFilterModel.h"
#include <QtTest>
using namespace governikus;
class test_ProviderCategoryFilterModel
: public QObject
{
Q_OBJECT
private Q_SLOTS:
void test_UpdateSearchString()
{
ProviderCategoryFilterModel model;
QSignalSpy spy(&model, &ProviderCategoryFilterModel::fireCriteriaChanged);
const QString search = QStringLiteral("search");
model.updateSearchString(search);
QCOMPARE(model.getSearchString(), search);
QCOMPARE(spy.count(), 1);
}
void test_CategorySelection()
{
ProviderCategoryFilterModel model;
QSignalSpy spy(&model, &ProviderCategoryFilterModel::fireCriteriaChanged);
const QString category1 = QStringLiteral("CATEGORY");
const QString category2 = QStringLiteral("testCATEGORY");
model.setCategorySelection(QString());
QVERIFY(model.mSelectedCategories.isEmpty());
QCOMPARE(spy.count(), 1);
model.setCategorySelection(category1);
QVERIFY(model.mSelectedCategories.contains("category"));
QCOMPARE(spy.count(), 2);
model.updateCategorySelection(category2, true);
QVERIFY(model.mSelectedCategories.contains("testcategory"));
QCOMPARE(spy.count(), 3);
model.updateCategorySelection(category2, true);
QVERIFY(model.mSelectedCategories.contains("testcategory"));
QCOMPARE(spy.count(), 3);
model.updateCategorySelection(category1, false);
QVERIFY(model.mSelectedCategories.contains("testcategory"));
QVERIFY(!model.mSelectedCategories.contains("category"));
QCOMPARE(spy.count(), 4);
}
void test_SortByCategoryFirst()
{
ProviderCategoryFilterModel model;
model.sortByCategoryFirst(true);
QCOMPARE(model.sortRole(), ProviderModel::SORT_ROLE);
model.sortByCategoryFirst(false);
QCOMPARE(model.sortRole(), ProviderModel::SHORTNAME);
}
};
QTEST_GUILESS_MAIN(test_ProviderCategoryFilterModel)
#include "test_ProviderCategoryFilterModel.moc"