void FilteredModelTests::filterTitleAndKeywordsTest() { DECLARE_MODELS_AND_GENERATE(10); Models::SettingsModel settingsModel; settingsModel.setSearchUsingAnd(false); commandManagerMock.InjectDependency(&settingsModel); for (int i = 0; i < 10; ++i) { Models::ArtworkMetadata *metadata = artItemsModelMock.getArtwork(i); if (i % 2 == 0) { metadata->initialize("title", "description", QStringList() << "keyword1" << "mess1"); } else { metadata->initialize("title", "description", QStringList() << "keyword2" << "mess2"); } } filteredItemsModel.setSearchTerm("keyword1 tit"); QCOMPARE(filteredItemsModel.getItemsCount(), 10); filteredItemsModel.setSearchTerm("!keyword tit"); QCOMPARE(filteredItemsModel.getItemsCount(), 10); settingsModel.setSearchUsingAnd(true); filteredItemsModel.setSearchTerm("!keyword tit"); QCOMPARE(filteredItemsModel.getItemsCount(), 0); filteredItemsModel.setSearchTerm("!keyword2 title"); QCOMPARE(filteredItemsModel.getItemsCount(), 5); }
void FilteredModelTests::filterDescriptionTest() { DECLARE_MODELS_AND_GENERATE(10); Models::SettingsModel settingsModel; settingsModel.setSearchUsingAnd(false); commandManagerMock.InjectDependency(&settingsModel); for (int i = 0; i < 10; ++i) { Models::ArtworkMetadata *metadata = artItemsModelMock.getArtwork(i); if (i % 2) { metadata->initialize("title", "description", QStringList() << "keyword1" << "keyword2"); } else { metadata->initialize("", "", QStringList()); } } filteredItemsModel.setSearchTerm("desc"); QCOMPARE(filteredItemsModel.getItemsCount(), 5); filteredItemsModel.setSearchTerm("!desc"); QCOMPARE(filteredItemsModel.getItemsCount(), 0); filteredItemsModel.setSearchTerm("description"); QCOMPARE(filteredItemsModel.getItemsCount(), 5); // strict match does not work for description/title filteredItemsModel.setSearchTerm("!description"); QCOMPARE(filteredItemsModel.getItemsCount(), 0); }