Java tutorial
/** * Copyright 2005-2013 hdiv.org * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.hdiv.dataComposer; import javax.servlet.http.HttpServletRequest; import org.hdiv.AbstractHDIVTestCase; import org.hdiv.config.HDIVConfig; import org.hdiv.config.Strategy; import org.hdiv.state.IParameter; import org.hdiv.state.IState; import org.hdiv.state.StateUtil; import org.hdiv.util.HDIVUtil; import org.springframework.mock.web.MockHttpServletRequest; /** * Unit tests for the <code>org.hdiv.composer.DataComposerMemory</code> class. * * @author Gorka Vicente */ public class DataComposerCipherTest extends AbstractHDIVTestCase { private DataComposerFactory dataComposerFactory; private StateUtil stateUtil; protected void postCreateHdivConfig(HDIVConfig config) { config.setStrategy(Strategy.CIPHER); } /* * @see TestCase#setUp() */ protected void onSetUp() throws Exception { this.dataComposerFactory = this.getApplicationContext().getBean(DataComposerFactory.class); this.stateUtil = this.getApplicationContext().getBean(StateUtil.class); } /** * @see DataComposerMamory#compose(String, String, String, boolean) */ public void testComposeSimple() { HttpServletRequest request = HDIVUtil.getHttpServletRequest(); IDataComposer dataComposer = this.dataComposerFactory.newInstance(request); HDIVUtil.setDataComposer(dataComposer, request); assertTrue(dataComposer instanceof DataComposerCipher); dataComposer.startPage(); dataComposer.beginRequest("test.do"); boolean confidentiality = this.getConfig().getConfidentiality(); // we add a multiple parameter that will be encoded as 0, 1, 2, ... String result = dataComposer.compose("test.do", "parameter1", "2", false); String value = (!confidentiality) ? "2" : "0"; assertTrue(value.equals(result)); result = dataComposer.compose("test.do", "parameter1", "2", false); value = (!confidentiality) ? "2" : "1"; assertTrue(value.equals(result)); result = dataComposer.compose("test.do", "parameter1", "2", false); assertTrue("2".equals(result)); result = dataComposer.compose("test.do", "parameter2", "2", false); value = (!confidentiality) ? "2" : "0"; assertTrue(value.equals(result)); result = dataComposer.compose("test.do", "parameter2", "2", false); value = (!confidentiality) ? "2" : "1"; assertTrue(value.equals(result)); String id = dataComposer.endRequest(); assertNotNull(id); } public void testComposeAndRestore() { HttpServletRequest request = HDIVUtil.getHttpServletRequest(); IDataComposer dataComposer = this.dataComposerFactory.newInstance(request); dataComposer.startPage(); dataComposer.beginRequest("test.do"); dataComposer.compose("parameter1", "2", false); String stateId = dataComposer.endRequest(); dataComposer.endPage(); assertNotNull(stateId); IState state = this.stateUtil.restoreState(stateId); assertEquals("test.do", state.getAction()); } public void testAjax() { MockHttpServletRequest request = (MockHttpServletRequest) HDIVUtil.getHttpServletRequest(); IDataComposer dataComposer = this.dataComposerFactory.newInstance(request); HDIVUtil.setDataComposer(dataComposer, request); dataComposer.startPage(); dataComposer.beginRequest("test.do"); dataComposer.compose("parameter1", "1", false); String state1 = dataComposer.endRequest(); dataComposer.endPage(); assertNotNull(state1); // Ajax request to modify state request.addParameter("_MODIFY_HDIV_STATE_", state1); IDataComposer dataComposer2 = this.dataComposerFactory.newInstance(request); HDIVUtil.setDataComposer(dataComposer2, request); // Add new parameter dataComposer2.compose("parameter2", "2", false); String state2 = dataComposer2.endRequest(); dataComposer2.endPage(); // Restore state IState state = this.stateUtil.restoreState(state2); // State contains both parameters IParameter param = state.getParameter("parameter1"); String val = param.getValues().get(0); assertEquals("1", val); param = state.getParameter("parameter2"); val = param.getValues().get(0); assertEquals("2", val); } }