/** * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * <p> * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * <p> * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @author Nuno Oliveira, GeoSolutions S.A.S., Copyright 2017 */ package org.geowebcache.config.legends; import org.junit.Test; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.*; /** * Test styles legends info different combinations. */ public class LegendInfoBuilderTest { @Test public void testWithOnlyDefaults() { LegendInfo legendInfo = new LegendInfoBuilder() .withLayerName("layer1") .withLayerUrl("http://localhost:8080/geoserver") .withDefaultWidth(50) .withDefaultHeight(100) .withDefaultFormat("image/png") .build(); assertThat(legendInfo.getWidth(), is(50)); assertThat(legendInfo.getHeight(), is(100)); assertThat(legendInfo.getFormat(), is("image/png")); assertThat(legendInfo.getStyleName(), is("")); assertThat(legendInfo.getMinScale(), is(nullValue())); assertThat(legendInfo.getMaxScale(), is(nullValue())); assertThat(legendInfo.getLegendUrl(), is("http://localhost:8080/geoserver?" + "service=WMS&request=GetLegendGraphic&format=image/png&width=50&height=100&layer=layer1&style=")); } @Test public void testWithValues() { LegendInfo legendInfo = new LegendInfoBuilder() .withLayerName("layer1") .withLayerUrl("http://localhost:8080/geoserver") .withDefaultWidth(50) .withDefaultHeight(100) .withDefaultFormat("image/png") .withStyleName("style1") .withWidth(150) .withHeight(200) .withFormat("image/gif") .withMinScale(1000.55) .withMaxScale(2000.655) .build(); assertThat(legendInfo.getWidth(), is(150)); assertThat(legendInfo.getHeight(), is(200)); assertThat(legendInfo.getFormat(), is("image/gif")); assertThat(legendInfo.getStyleName(), is("style1")); assertThat(legendInfo.getMinScale(), is(1000.55)); assertThat(legendInfo.getMaxScale(), is(2000.655)); assertThat(legendInfo.getLegendUrl(), is("http://localhost:8080/geoserver?" + "service=WMS&request=GetLegendGraphic&format=image/gif&width=150&height=200&layer=layer1&style=style1")); } @Test public void testWithUrl() { LegendInfo legendInfo = new LegendInfoBuilder() .withLayerName("layer1") .withLayerUrl("http://localhost:8080/geoserver") .withDefaultWidth(50) .withDefaultHeight(100) .withDefaultFormat("image/png") .withStyleName("style1") .withWidth(150) .withHeight(200) .withFormat("image/gif") .withUrl("http://localhost:9090/image.gif?") .build(); assertThat(legendInfo.getWidth(), is(150)); assertThat(legendInfo.getHeight(), is(200)); assertThat(legendInfo.getFormat(), is("image/gif")); assertThat(legendInfo.getStyleName(), is("style1")); assertThat(legendInfo.getLegendUrl(), is("http://localhost:9090/image.gif?" + "service=WMS&request=GetLegendGraphic&format=image/gif&width=150&height=200&layer=layer1&style=style1")); } @Test public void testWithCompleteUrl() { LegendInfo legendInfo = new LegendInfoBuilder() .withLayerName("layer1") .withLayerUrl("http://localhost:8080/geoserver") .withDefaultWidth(50) .withDefaultHeight(100) .withDefaultFormat("image/png") .withStyleName("style1") .withWidth(150) .withHeight(200) .withFormat("image/gif") .withCompleteUrl("http://my.server.com/image.gif") .build(); assertThat(legendInfo.getWidth(), is(150)); assertThat(legendInfo.getHeight(), is(200)); assertThat(legendInfo.getFormat(), is("image/gif")); assertThat(legendInfo.getStyleName(), is("style1")); assertThat(legendInfo.getLegendUrl(), is("http://my.server.com/image.gif")); } @Test public void testWithValuesNoDefaults() { LegendInfo legendInfo = new LegendInfoBuilder() .withLayerName("layer1") .withLayerUrl("http://localhost:8080/geoserver") .withStyleName("style1") .withWidth(150) .withHeight(200) .withFormat("image/gif") .withMinScale(50.5) .withMaxScale(80.5) .build(); assertThat(legendInfo.getWidth(), is(150)); assertThat(legendInfo.getHeight(), is(200)); assertThat(legendInfo.getFormat(), is("image/gif")); assertThat(legendInfo.getStyleName(), is("style1")); assertThat(legendInfo.getMinScale(), is(50.5)); assertThat(legendInfo.getMaxScale(), is(80.5)); assertThat(legendInfo.getLegendUrl(), is("http://localhost:8080/geoserver?" + "service=WMS&request=GetLegendGraphic&format=image/gif&width=150&height=200&layer=layer1&style=style1")); } }