package org.geoserver.threadlocals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import java.util.concurrent.ExecutionException; import org.geoserver.ows.Dispatcher; import org.geoserver.ows.Request; import org.junit.Test; public class PublicThreadLocalTransferTest extends AbstractThreadLocalTransferTest { @Test public void testRequest() throws InterruptedException, ExecutionException, SecurityException, NoSuchFieldException { // setup the state final Request request = new Request(); Dispatcher.REQUEST.set(request); // test it's transferred properly using the base class machinery testThreadLocalTransfer(new ThreadLocalTransferCallable( new PublicThreadLocalTransfer(Dispatcher.class, "REQUEST")) { @Override void assertThreadLocalCleaned() { assertNull(Dispatcher.REQUEST.get()); } @Override void assertThreadLocalApplied() { assertSame(request, Dispatcher.REQUEST.get()); } }); } }