/* (c) 2017 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.rest;
import org.geoserver.config.impl.GeoServerLifecycleHandler;
import org.geoserver.data.test.SystemTestData;
import org.geoserver.test.GeoServerSystemTestSupport;
import org.junit.Test;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.mock.web.MockHttpServletResponse;
import static org.geoserver.rest.RestBaseController.ROOT_PATH;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class CatalogReloadControllerTest extends GeoServerSystemTestSupport {
static ReloadResetWatcher watcher = new ReloadResetWatcher();
@Override
protected void onSetUp(SystemTestData data) {
ConfigurableListableBeanFactory beanFactory = applicationContext.getBeanFactory();
beanFactory.registerSingleton("ReloadResetWatcher", watcher);
}
public void reset() {
watcher.didReload = false;
watcher.didReset = false;
}
@Test
public synchronized void testPutReload() throws Exception {
reset();
MockHttpServletResponse response =
putAsServletResponse(ROOT_PATH + "/reload", (String)null, null);
assertEquals( 200, response.getStatus() );
assertTrue(watcher.didReload);
assertTrue(watcher.didReset);
}
@Test
public synchronized void testPostReload() throws Exception {
reset();
MockHttpServletResponse response =
postAsServletResponse(ROOT_PATH + "/reload", "", null);
assertEquals( 200, response.getStatus() );
assertTrue(watcher.didReload);
assertTrue(watcher.didReset);
}
@Test
public synchronized void testPutReset() throws Exception {
reset();
MockHttpServletResponse response =
putAsServletResponse(ROOT_PATH + "/reset", (String)null, null);
assertEquals( 200, response.getStatus() );
assertFalse(watcher.didReload);
assertTrue(watcher.didReset);
}
@Test
public synchronized void testPostReset() throws Exception {
reset();
MockHttpServletResponse response =
postAsServletResponse(ROOT_PATH + "/reset", "", null);
assertEquals( 200, response.getStatus() );
assertFalse(watcher.didReload);
assertTrue(watcher.didReset);
}
private static class ReloadResetWatcher implements GeoServerLifecycleHandler {
boolean didReload;
boolean didReset;
@Override
public void onReset() {
didReset = true;
}
@Override
public void onReload() {
didReload = true;
}
@Override
public void onDispose() { }
@Override
public void beforeReload() { }
}
}