package org.geowebcache; import static org.easymock.EasyMock.expect; import static org.easymock.classextension.EasyMock.createMock; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.geowebcache.demo.Demo; import org.geowebcache.grid.GridSetBroker; import org.geowebcache.grid.GridSubset; import org.geowebcache.layer.TileLayer; import org.geowebcache.layer.TileLayerDispatcher; import org.geowebcache.layer.wms.WMSLayer; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import static org.junit.Assert.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; /** * Simple test class for testing advertised and unadvertised Layers in the Demo Page * * @author Nicola Lagomarsini */ public class DemoTest { @Test public void testAdvertised() throws GeoWebCacheException, IOException { // Initialize mock resources TileLayerDispatcher tld = mock(TileLayerDispatcher.class); MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletRequest servReq = new MockHttpServletRequest(); servReq.setRequestURI("/test"); // Creating an advertised Layer and an unadvertised one HashMap<String, GridSubset> subSets = new HashMap<String, GridSubset>(); TileLayer advertisedLayer = new WMSLayer("testAdv", null, null, null, null, subSets, null, null, null, false, null); advertisedLayer.setEnabled(true); advertisedLayer.setAdvertised(true); TileLayer unAdvertisedLayer = new WMSLayer("testNotAdv", null, null, null, null, subSets, null, null, null, false, null); unAdvertisedLayer.setEnabled(true); unAdvertisedLayer.setAdvertised(false); // Define used method TreeSet<String> set = new TreeSet<String>(); set.add(advertisedLayer.getName()); set.add(unAdvertisedLayer.getName()); when(tld.getLayerNames()).thenReturn(set); when(tld.getTileLayer("testAdv")).thenReturn(advertisedLayer); when(tld.getTileLayer("testNotAdv")).thenReturn(unAdvertisedLayer); // Generate the HTML Demo.makeMap(tld, null, null, servReq, response); // Get the HTML from the response String result = response.getContentAsString(); // Ensure the Advertised Layer is present and the Unadvertised Layer is not assertTrue(result.contains("testAdv")); assertFalse(result.contains("testNotAdv")); } }