/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search.builder; import java.util.Calendar; import java.util.Iterator; import java.util.Set; import org.junit.Test; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; public class ContentIndexDataFieldValueSetFactoryTest { @Test public void testNoValuesGivesZeroElements() { ContentIndexDataElement element = new ContentIndexDataElement(); element.setFieldBaseName( "fieldBaseName" ); final Set<ContentIndexDataFieldAndValue> contentIndexDataFieldAndValues = ContentIndexDataFieldValueSetFactory.create( element ); assertEquals( 0, contentIndexDataFieldAndValues.size() ); } @Test public void testOnlyOrderByValueGivesZeroElement() { ContentIndexDataElement element = new ContentIndexDataElement(); element.setOrderBy( "orderBy" ); element.setFieldBaseName( "fieldBaseName" ); final Set<ContentIndexDataFieldAndValue> contentIndexDataFieldAndValues = ContentIndexDataFieldValueSetFactory.create( element ); assertEquals( 0, contentIndexDataFieldAndValues.size() ); } @Test public void testStringValue() { ContentIndexDataElement element = new ContentIndexDataElement(); element.setOrderBy( "orderBy" ); element.setFieldBaseName( "fieldBaseName" ); element.addStringValue( "StringValue" ); final Set<ContentIndexDataFieldAndValue> contentIndexDataFieldAndValues = ContentIndexDataFieldValueSetFactory.create( element ); assertEquals( 2, contentIndexDataFieldAndValues.size() ); } @Test public void testNumericValue() { ContentIndexDataElement element = new ContentIndexDataElement(); element.setOrderBy( "orderBy" ); element.setFieldBaseName( "fieldname" ); element.addNumericValue( new Double( 1 ) ); final Set<ContentIndexDataFieldAndValue> contentIndexDataFieldAndValues = ContentIndexDataFieldValueSetFactory.create( element ); assertEquals( 2, contentIndexDataFieldAndValues.size() ); } @Test public void testDateValue() { ContentIndexDataElement element = new ContentIndexDataElement(); element.setOrderBy( "orderBy" ); element.setFieldBaseName( "fieldname" ); element.addDateValue( Calendar.getInstance().getTime() ); final Set<ContentIndexDataFieldAndValue> contentIndexDataFieldAndValues = ContentIndexDataFieldValueSetFactory.create( element ); assertEquals( 2, contentIndexDataFieldAndValues.size() ); } @Test public void testSeveralStringValues() { ContentIndexDataElement element = new ContentIndexDataElement(); element.setOrderBy( "orderBy" ); element.setFieldBaseName( "fieldBaseName" ); element.addStringValue( "StringValue" ); element.addStringValue( "StringValue2" ); element.addStringValue( "StringValue3" ); element.addStringValue( "StringValue4" ); final Set<ContentIndexDataFieldAndValue> contentIndexDataFieldAndValues = ContentIndexDataFieldValueSetFactory.create( element ); assertEquals( 2, contentIndexDataFieldAndValues.size() ); boolean found = false; final Iterator<ContentIndexDataFieldAndValue> iterator = contentIndexDataFieldAndValues.iterator(); while ( iterator.hasNext() ) { final ContentIndexDataFieldAndValue fieldAndValue = iterator.next(); if ( fieldAndValue.getFieldName().equals( "fieldBaseName" ) ) { found = true; final Object value = fieldAndValue.getValue(); assertTrue( value instanceof Set ); final Set<String> stringValues = (Set<String>) value; assertEquals( 4, stringValues.size() ); } } assertTrue( found ); } }