/* Condition 1a: String (match) */
{
/* Title */
ISearchField field = fFactory.createSearchField(INews.TITLE, fNewsEntityName);
ISearchCondition condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "foo bar");
List<SearchHit<NewsReference>> result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news5);
field = fFactory.createSearchField(INews.TITLE, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "bar foo");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news5);
field = fFactory.createSearchField(INews.TITLE, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "b* f*");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news5);
field = fFactory.createSearchField(INews.TITLE, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "fo? b*");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news5);
/* Description */
field = fFactory.createSearchField(INews.DESCRIPTION, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "included");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news4, news5);
field = fFactory.createSearchField(INews.DESCRIPTION, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "lon?er description");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news4, news5);
/* Attachments */
field = fFactory.createSearchField(INews.ATTACHMENTS_CONTENT, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "bin/mp3");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news2, news3, news4, news5);
field = fFactory.createSearchField(INews.ATTACHMENTS_CONTENT, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "*mp3");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news2, news3, news4, news5);
field = fFactory.createSearchField(INews.ATTACHMENTS_CONTENT, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "www.attachment.com*");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news3, news4, news5);
/* Author */
field = fFactory.createSearchField(INews.AUTHOR, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "Benjamin Pasero");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news5);
field = fFactory.createSearchField(INews.AUTHOR, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "Pasero");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news5);
field = fFactory.createSearchField(INews.AUTHOR, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "Ben?amin Pase*");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news5);
field = fFactory.createSearchField(INews.AUTHOR, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "Ben*");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news4, news5);
field = fFactory.createSearchField(INews.AUTHOR, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "test@rssowl.org");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news3, news4);
field = fFactory.createSearchField(INews.AUTHOR, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "test@rssowl?*");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news3, news4);
/* All Fields */
field = fFactory.createSearchField(IEntity.ALL_FIELDS, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "foo");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news2, news5);
field = fFactory.createSearchField(IEntity.ALL_FIELDS, fNewsEntityName);
condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "*pasero");
result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news5);
}
/* Condition 1b: String (no match) */
{
/* Title */
ISearchField field = fFactory.createSearchField(INews.TITLE, fNewsEntityName);
ISearchCondition condition = fFactory.createSearchCondition(field, SearchSpecifier.CONTAINS_NOT, "barfoo");
List<SearchHit<NewsReference>> result = fModelSearch.searchNews(list(condition), false);
assertSame(result, news1, news2, news3, news4, news5);