/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.livetrace;
import org.junit.Test;
import static org.junit.Assert.*;
public class PageCacheUsagesResolverTest
{
@Test
public void when_page_has_cacheUsage_but_no_windows_then_cacheUsage_from_page_is_resolved()
{
// setup
PageRenderingTrace pageRenderingTrace = new PageRenderingTrace();
pageRenderingTrace.getCacheUsage().setCacheable( true );
pageRenderingTrace.getCacheUsage().setUsedCachedResult( false );
// exercise
CacheUsages cacheUsages = PageCacheUsagesResolver.resolveCacheUsages( pageRenderingTrace );
// verify
assertEquals( 1, cacheUsages.getList().size() );
assertEquals( true, cacheUsages.getList().get( 0 ).isCacheable() );
assertEquals( false, cacheUsages.getList().get( 0 ).isUsedCachedResult() );
}
@Test
public void when_page_has_cacheUsage_and_windows_too_then_cacheUsage_from_page_and_windows_is_resolved()
{
// setup
PageRenderingTrace pageRenderingTrace = new PageRenderingTrace();
pageRenderingTrace.getCacheUsage().setCacheable( true );
pageRenderingTrace.getCacheUsage().setUsedCachedResult( false );
WindowRenderingTrace windowRenderingTrace1 = new WindowRenderingTrace( "1:1" );
windowRenderingTrace1.getCacheUsage().setCacheable( true );
windowRenderingTrace1.getCacheUsage().setUsedCachedResult( false );
pageRenderingTrace.addWindowRenderingTrace( windowRenderingTrace1 );
WindowRenderingTrace windowRenderingTrace2 = new WindowRenderingTrace( "1:2" );
windowRenderingTrace2.getCacheUsage().setCacheable( true );
windowRenderingTrace2.getCacheUsage().setUsedCachedResult( false );
pageRenderingTrace.addWindowRenderingTrace( windowRenderingTrace2 );
// exercise
CacheUsages cacheUsages = PageCacheUsagesResolver.resolveCacheUsages( pageRenderingTrace );
// verify
assertEquals( 3, cacheUsages.getList().size() );
assertEquals( true, cacheUsages.getList().get( 0 ).isCacheable() );
assertEquals( false, cacheUsages.getList().get( 0 ).isUsedCachedResult() );
assertEquals( true, cacheUsages.getList().get( 1 ).isCacheable() );
assertEquals( false, cacheUsages.getList().get( 1 ).isUsedCachedResult() );
assertEquals( true, cacheUsages.getList().get( 2 ).isCacheable() );
assertEquals( false, cacheUsages.getList().get( 2 ).isUsedCachedResult() );
}
@Test
public void when_page_has_window_rendering_in_view_transformation_trace()
{
// setup
PageRenderingTrace pageRenderingTrace = new PageRenderingTrace();
pageRenderingTrace.getCacheUsage().setCacheable( true );
pageRenderingTrace.getCacheUsage().setUsedCachedResult( false );
WindowRenderingTrace windowRenderingTrace1 = new WindowRenderingTrace( "1:1" );
windowRenderingTrace1.getCacheUsage().setCacheable( true );
windowRenderingTrace1.getCacheUsage().setUsedCachedResult( false );
ViewFunctionTrace viewFunctionTrace = new ViewFunctionTrace();
viewFunctionTrace.addTrace( windowRenderingTrace1 );
ViewTransformationTrace viewTransformationTrace = new ViewTransformationTrace();
viewTransformationTrace.addViewFunctionTrace( viewFunctionTrace );
pageRenderingTrace.setViewTransformationTrace( viewTransformationTrace );
windowRenderingTrace1 = new WindowRenderingTrace( "1:1" );
windowRenderingTrace1.getCacheUsage().setCacheable( true );
windowRenderingTrace1.getCacheUsage().setUsedCachedResult( true );
pageRenderingTrace.addWindowRenderingTrace( windowRenderingTrace1 );
WindowRenderingTrace windowRenderingTrace2 = new WindowRenderingTrace( "1:2" );
windowRenderingTrace2.getCacheUsage().setCacheable( true );
windowRenderingTrace2.getCacheUsage().setUsedCachedResult( false );
pageRenderingTrace.addWindowRenderingTrace( windowRenderingTrace2 );
// exercise
CacheUsages cacheUsages = PageCacheUsagesResolver.resolveCacheUsages( pageRenderingTrace );
// verify
assertEquals( 3, cacheUsages.getList().size() );
assertEquals( true, cacheUsages.getList().get( 0 ).isCacheable() );
assertEquals( false, cacheUsages.getList().get( 0 ).isUsedCachedResult() );
assertEquals( true, cacheUsages.getList().get( 1 ).isCacheable() );
assertEquals( false, cacheUsages.getList().get( 1 ).isUsedCachedResult() );
assertEquals( true, cacheUsages.getList().get( 2 ).isCacheable() );
assertEquals( false, cacheUsages.getList().get( 2 ).isUsedCachedResult() );
}
}