/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.junit.Test; import com.google.common.collect.Lists; import com.enonic.cms.core.content.resultset.ContentResultSet; import com.enonic.cms.core.content.resultset.ContentResultSetNonLazy; import com.enonic.cms.core.content.resultset.ContentResultSetWithOverridingContent; import static org.junit.Assert.*; /** * Sep 16, 2010 */ public class ContentResultSetWithOverridingContentTest { @Test public void basic() { ContentResultSet source = createContentResultSet( createContents( 0, 3 ) ); ContentEntity overridingContent = createContent( 1, "overriding" ); // exercise ContentResultSetWithOverridingContent result = new ContentResultSetWithOverridingContent( source, overridingContent ); // verify assertEquals( 3, result.getLength() ); assertEquals( 0, result.getFromIndex() ); assertTrue( result.containsContent( contentKey( 0 ) ) ); assertTrue( result.containsContent( contentKey( 1 ) ) ); assertTrue( result.containsContent( contentKey( 2 ) ) ); assertEquals( "content-0", result.getContent( 0 ).getName() ); assertEquals( "overriding", result.getContent( 1 ).getName() ); assertEquals( "content-2", result.getContent( 2 ).getName() ); assertEquals( Lists.newArrayList( contentKey( 0 ), contentKey( 1 ), contentKey( 2 ) ), result.getKeys() ); assertEquals( Lists.newArrayList( createContent( 0, "content-0" ), createContent( 1, "overriding" ), createContent( 2, "content-2" ) ), result.getContents() ); } @Test public void one_and_only() { ContentResultSet source = createContentResultSet( createContents( 0, 1 ) ); ContentEntity overridingContent = createContent( 0, "overriding" ); ContentResultSetWithOverridingContent result = new ContentResultSetWithOverridingContent( source, overridingContent ); assertEquals( 1, result.getLength() ); assertEquals( 0, result.getFromIndex() ); assertEquals( "overriding", result.getContent( 0 ).getName() ); assertEquals( Lists.newArrayList( contentKey( 0 ) ), result.getKeys() ); assertEquals( Lists.newArrayList( createContent( 0, "overriding" ) ), result.getContents() ); } @Test public void createRandomizedResult() { ContentResultSet source = createContentResultSet( createContents( 0, 3 ) ); ContentEntity overridingContent = createContent( 1, "overriding" ); // exercise ContentResultSetWithOverridingContent result = new ContentResultSetWithOverridingContent( source, overridingContent ); // verify createRandomizedResult ContentResultSet randomizedResult = result.createRandomizedResult( source.getLength() ); Collection<ContentEntity> randomizedContents = randomizedResult.getContents(); assertTrue( randomizedContents.contains( createContent( 1, "overriding" ) ) ); assertTrue( randomizedContents.contains( createContent( 0, "content-0" ) ) ); assertTrue( randomizedContents.contains( createContent( 2, "content-2" ) ) ); } private ContentResultSet createContentResultSet( List<ContentEntity> contents ) { return new ContentResultSetNonLazy( contents, 0, contents.size() ); } private List<ContentEntity> createContents( int fromKey, int toKey ) { List<ContentEntity> contents = new ArrayList<ContentEntity>(); for ( int i = fromKey; i < toKey; i++ ) { contents.add( createContent( i, "content-" + i ) ); } return contents; } private ContentEntity createContent( int key, String name ) { ContentEntity content = new ContentEntity(); content.setKey( contentKey( key ) ); content.setName( name ); return content; } private ContentKey contentKey( int key ) { return new ContentKey( key ); } }