/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search.builder.contentindexdata; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import org.joda.time.DateTime; import org.junit.Test; import com.enonic.cms.core.search.builder.ContentIndexOrderbyValueResolver; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; public class ContentIndexOrderbyValueResolverTest { @Test public void testOrderByValueBasics() { String result = ContentIndexOrderbyValueResolver.getOrderbyValue( null ); assertNull( result ); result = ContentIndexOrderbyValueResolver.getOrderbyValue( 123 ); assertNotNull( result ); result = ContentIndexOrderbyValueResolver.getOrderbyValue( new Double( 123 ) ); assertNotNull( result ); result = ContentIndexOrderbyValueResolver.getOrderbyValue( new Float( 123 ) ); assertNotNull( result ); } @Test public void testOrderByValueSortingWithLongsOnly() { List<String> resultList = new ArrayList<String>(); String minusTwo = ContentIndexOrderbyValueResolver.getOrderbyValue( -2L ); String two = ContentIndexOrderbyValueResolver.getOrderbyValue( 2L ); String hundredAndOne = ContentIndexOrderbyValueResolver.getOrderbyValue( 101L ); resultList.addAll( Arrays.asList( new String[]{two, minusTwo, hundredAndOne} ) ); Collections.sort( resultList ); assertEquals( "-2", minusTwo, resultList.get( 0 ) ); assertEquals( "2", two, resultList.get( 1 ) ); assertEquals( "101", hundredAndOne, resultList.get( 2 ) ); } @Test public void testOrderByValueSorting() { List<String> resultList = new ArrayList<String>(); String one = ContentIndexOrderbyValueResolver.getOrderbyValue( 1.0 ); String one_point_one = ContentIndexOrderbyValueResolver.getOrderbyValue( 1.1 ); String two = ContentIndexOrderbyValueResolver.getOrderbyValue( 2.0 ); String twelwe = ContentIndexOrderbyValueResolver.getOrderbyValue( 12.0 ); String ten = ContentIndexOrderbyValueResolver.getOrderbyValue( new Double( 10.0 ) ); String hundred = ContentIndexOrderbyValueResolver.getOrderbyValue( 100.0 ); resultList.addAll( Arrays.asList( new String[]{one_point_one, two, one, ten, hundred, twelwe} ) ); Collections.sort( resultList ); assertEquals( "1", one, resultList.get( 0 ) ); assertEquals( "1.1", one_point_one, resultList.get( 1 ) ); assertEquals( "2", two, resultList.get( 2 ) ); assertEquals( "10", ten, resultList.get( 3 ) ); assertEquals( "12", twelwe, resultList.get( 4 ) ); assertEquals( "100", hundred, resultList.get( 5 ) ); } @Test public void testOrderbyString() { String result = ContentIndexOrderbyValueResolver.getOrderbyValue( "TestSTring" ); assertNotNull( result ); assertEquals( "teststring", result ); } @Test public void testOrderByValueDates() { String result = ContentIndexOrderbyValueResolver.getOrderbyValue( new DateTime( 2010, 1, 1, 10, 30, 30, 333 ).toDate() ); assertNotNull( result ); System.out.println( result ); } @Test public void testOrderbyValueForNumber() { Set<Object> valueSet = new HashSet<Object>(); String result = ContentIndexOrderbyValueResolver.getOrderbyValue( 2.0 ); assertNotNull( result ); } }