package org.geoserver.threadlocals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import java.util.concurrent.ExecutionException;
import org.geoserver.catalog.LayerInfo;
import org.geoserver.catalog.impl.LayerInfoImpl;
import org.geoserver.ows.LocalPublished;
import org.junit.After;
import org.junit.Test;
public class LocalLayerThreadLocalTransferTest extends AbstractThreadLocalTransferTest {
@After
public void cleanupThreadLocals() {
LocalPublished.remove();
}
@Test
public void testRequest() throws InterruptedException, ExecutionException {
// setup the state
final LayerInfo layer = new LayerInfoImpl();
LocalPublished.set(layer);
// test it's transferred properly using the base class machinery
testThreadLocalTransfer(new ThreadLocalTransferCallable(new LocalPublishedThreadLocalTransfer()) {
@Override
void assertThreadLocalCleaned() {
assertNull(LocalPublished.get());
}
@Override
void assertThreadLocalApplied() {
assertSame(layer, LocalPublished.get());
}
});
}
}