/* (c) 2016 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.params.extractor; import org.junit.Test; import java.io.InputStream; import java.util.List; import java.util.function.Function; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; public final class EchoParametersDaoTest extends TestSupport { @Test public void testParsingEmptyFile() throws Exception { doWork("data/echoParameters1.xml", (InputStream inputStream) -> { List<EchoParameter> echoParameters = EchoParametersDao.getEchoParameters(inputStream); assertThat(echoParameters.size(), is(0)); }); } @Test public void testParsingEmptyEchoParameters() throws Exception { doWork("data/echoParameters2.xml", (InputStream inputStream) -> { List<EchoParameter> echoParameters = EchoParametersDao.getEchoParameters(inputStream); assertThat(echoParameters.size(), is(0)); }); } @Test public void testParsingEchoParameter() throws Exception { doWork("data/echoParameters3.xml", (InputStream inputStream) -> { List<EchoParameter> echoParameters = EchoParametersDao.getEchoParameters(inputStream); assertThat(echoParameters.size(), is(1)); checkEchoParameter(echoParameters.get(0), new EchoParameterBuilder().withId("0") .withParameter("CQL_FILTER").withActivated(true).build()); }); } @Test public void testParsingMultipleEchoParameters() throws Exception { doWork("data/echoParameters4.xml", (InputStream inputStream) -> { List<EchoParameter> echoParameters = EchoParametersDao.getEchoParameters(inputStream); assertThat(echoParameters.size(), is(2)); checkEchoParameter(findEchoParameter("0", echoParameters), new EchoParameterBuilder().withId("0") .withParameter("CQL_FILTER").withActivated(true).build()); checkEchoParameter(findEchoParameter("1", echoParameters), new EchoParameterBuilder().withId("1") .withParameter("BBOX").withActivated(false).build()); }); } @Test public void testEchoParameterCrud() { // create the echo parameters to be used, echo parameter C is an update of echo parameter B (the id is the same) EchoParameter echoParameterA = new EchoParameterBuilder().withId("0") .withActivated(true) .withParameter("cql_filter").build(); EchoParameter echoParameterB = new EchoParameterBuilder().withId("1") .withActivated(true) .withParameter("bbox").build(); EchoParameter echoParameterC = new EchoParameterBuilder().withId("1") .withActivated(false) .withParameter("bbox").build(); // get the existing echo parameters, this should return an empty list List<EchoParameter> echoParameters = EchoParametersDao.getEchoParameters(); assertThat(echoParameters.size(), is(0)); // we save echo parameters A and B EchoParametersDao.saveOrUpdateEchoParameter(echoParameterA); EchoParametersDao.saveOrUpdateEchoParameter(echoParameterB); echoParameters = EchoParametersDao.getEchoParameters(); assertThat(echoParameters.size(), is(2)); checkEchoParameter(echoParameterA, findEchoParameter("0", echoParameters)); checkEchoParameter(echoParameterB, findEchoParameter("1", echoParameters)); // we update echo parameter B using rule C EchoParametersDao.saveOrUpdateEchoParameter(echoParameterC); echoParameters = EchoParametersDao.getEchoParameters(); assertThat(echoParameters.size(), is(2)); checkEchoParameter(echoParameterA, findEchoParameter("0", echoParameters)); checkEchoParameter(echoParameterC, findEchoParameter("1", echoParameters)); // we delete echo parameter A EchoParametersDao.deleteEchoParameters("0"); echoParameters = EchoParametersDao.getEchoParameters(); assertThat(echoParameters.size(), is(1)); } }