/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search.query;
import java.util.Calendar;
import java.util.Set;
import java.util.TimeZone;
import com.enonic.cms.core.content.ContentKey;
import com.enonic.cms.core.content.category.CategoryKey;
import com.enonic.cms.core.content.contenttype.ContentTypeKey;
import com.enonic.cms.core.content.index.ContentIndexQuery;
import com.enonic.cms.core.structure.menuitem.MenuItemEntity;
import static junit.framework.Assert.assertEquals;
public abstract class QueryTranslatorTestBase
{
private QueryTranslator queryTranslator = new QueryTranslator();
public ContentIndexQuery createContentQuery( String queryString )
{
ContentIndexQuery query = doCreateContentIndexQuery( queryString );
return query;
}
private ContentIndexQuery doCreateContentIndexQuery( String queryString )
{
return new ContentIndexQuery( queryString );
}
public ContentIndexQuery createContentQuery( int from, int count, String queryString )
{
ContentIndexQuery query = doCreateContentIndexQuery( queryString );
query.setIndex( from );
query.setCount( count );
return query;
}
public ContentIndexQuery createContentQuery( Set<MenuItemEntity> sectionFilter )
{
ContentIndexQuery query = createContentQuery( "" );
query.setSectionFilter( sectionFilter, ContentIndexQuery.SectionFilterStatus.ANY );
return query;
}
public ContentIndexQuery createContentQuery( String queryString, Set<CategoryKey> categoryFilter )
{
ContentIndexQuery query = createContentQuery( queryString );
query.setCategoryFilter( categoryFilter );
return query;
}
public ContentIndexQuery createContentQuery( String queryString, Set<CategoryKey> categoryFilter,
Set<ContentTypeKey> contentTypeFilter )
{
ContentIndexQuery query = createContentQuery( queryString, categoryFilter );
query.setContentTypeFilter( contentTypeFilter );
return query;
}
public ContentIndexQuery createContentQuery( Set<CategoryKey> categoryFilter, Set<ContentTypeKey> contentTypeFilter )
{
ContentIndexQuery query = createContentQuery( "" );
query.setCategoryFilter( categoryFilter );
query.setContentTypeFilter( contentTypeFilter );
return query;
}
public ContentIndexQuery createContentQueryContentFilter( Set<ContentKey> contentFilter )
{
ContentIndexQuery query = createContentQuery( "" );
query.setContentFilter( contentFilter );
return query;
}
public ContentIndexQuery createContentQuery( int from, int count, String queryString, Set<CategoryKey> categoryFilter,
Set<ContentTypeKey> contentTypeFilter )
{
ContentIndexQuery query = createContentQuery( queryString, categoryFilter, contentTypeFilter );
query.setIndex( from );
query.setCount( count );
return query;
}
public QueryTranslator getQueryTranslator()
{
return queryTranslator;
}
public void compareStringsIgnoreFormatting( String expected, String actual )
{
String expectedStripped = expected.replaceAll( "\\r\\n|\\r|\\n", " " ).toLowerCase();
String actualStripped = actual.replaceAll( "\\r\\n|\\r|\\n", " " ).toLowerCase();
if ( !expectedStripped.equals( actualStripped ) )
{
// Just to get the nice "show diff" feature in IDEA
assertEquals( expected, actual );
}
}
public static String getCurrentTimeZone()
{
Calendar now = Calendar.getInstance();
//get current TimeZone using getTimeZone method of Calendar class
TimeZone timeZone = now.getTimeZone();
return timeZone.getDisplayName() + timeZone.getRawOffset();
}
}