/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.web.portal.instanttrace;
import org.junit.Test;
import com.enonic.cms.core.portal.livetrace.PortalRequestTrace;
import static org.junit.Assert.*;
public class InstantTraceSessionObjectTest
{
@Test
public void adding_max_number_of_traces_then_all_is_kept()
{
// exercise
InstantTraceSessionObject object = new InstantTraceSessionObject( 3 );
object.addTrace( new InstantTraceId( "1" ), new PortalRequestTrace( 1, "http://myurl.com" ) );
object.addTrace( new InstantTraceId( "2" ), new PortalRequestTrace( 2, "http://myurl.com" ) );
object.addTrace( new InstantTraceId( "3" ), new PortalRequestTrace( 3, "http://myurl.com" ) );
// verify
assertNotNull( object.getTrace( new InstantTraceId( "1" ) ) );
assertNotNull( object.getTrace( new InstantTraceId( "2" ) ) );
assertNotNull( object.getTrace( new InstantTraceId( "3" ) ) );
}
@Test
public void adding_more_traces_than_max_then_first_one_is_removed()
{
InstantTraceSessionObject object = new InstantTraceSessionObject( 3 );
object.addTrace( new InstantTraceId( "1" ), new PortalRequestTrace( 1, "http://myurl.com" ) );
object.addTrace( new InstantTraceId( "2" ), new PortalRequestTrace( 2, "http://myurl.com" ) );
object.addTrace( new InstantTraceId( "3" ), new PortalRequestTrace( 3, "http://myurl.com" ) );
// exercise
object.addTrace( new InstantTraceId( "4" ), new PortalRequestTrace( 4, "http://myurl.com" ) );
// verify
assertNull( object.getTrace( new InstantTraceId( "1" ) ) );
assertNotNull( object.getTrace( new InstantTraceId( "2" ) ) );
assertNotNull( object.getTrace( new InstantTraceId( "3" ) ) );
assertNotNull( object.getTrace( new InstantTraceId( "4" ) ) );
}
}