package org.pentaho.platform.engine.core.system.objfac.references; import org.junit.Test; import org.pentaho.platform.api.engine.IObjectCreator; import org.pentaho.platform.api.engine.IPentahoSession; import org.pentaho.platform.engine.core.system.PentahoSessionHolder; import org.pentaho.platform.engine.core.system.StandaloneSession; import java.util.UUID; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; /** * Created by nbaker on 4/16/14. */ public class SessionBoundPentahoObjectReferenceTest { @Test public void testReference() throws Exception { SessionBoundPentahoObjectReference<UUID> sessionRef = new SessionBoundPentahoObjectReference.Builder<UUID>( UUID.class ).creator( new IObjectCreator<UUID>() { @Override public UUID create( IPentahoSession session ) { return UUID.randomUUID(); } } ).build(); IPentahoSession s1 = new StandaloneSession( "joe" ); IPentahoSession s2 = new StandaloneSession( "admin" ); PentahoSessionHolder.setSession( s1 ); UUID s1Uuid = sessionRef.getObject(); PentahoSessionHolder.setSession( s2 ); UUID s2Uuid = sessionRef.getObject(); assertNotSame( s1Uuid, s2Uuid ); PentahoSessionHolder.setSession( s1 ); UUID s1UuidAgain = sessionRef.getObject(); assertSame( s1Uuid, s1UuidAgain ); } }