/** * Resolves dynamic parameter name and value and add to dynamic context. * * @param dynParam dynamic parameter to add */ private void addDynamicParameter(DynamicParameterConcatType dynParam, Map<String, Integer> iterators) { DynamicParameterConcatType resolvedParameter = contextProvider.getDynamicContext().cloneParameter(dynParam); resolvedParameter.setName(parameterResolver.resolveIteratorParameter(resolvedParameter.getName(), iterators)); resolvedParameter.setValue(parameterResolver.resolveIteratorParameter(resolvedParameter.getValue(), iterators)); resolvedParameter.setAdd(parameterResolver.resolveIteratorParameter(resolvedParameter.getAdd(), iterators)); contextProvider.getDynamicContext().addParameter(resolvedParameter, ContextInfo.EMPTY, skipOperationResolver.isSkip(dynParam)); }
@Test(expected = ConversionException.class) public void dynamicParameterAddOperationFailsWhenAdditionValueIsNotInt() throws Exception { DynamicParameterConcatType param = new DynamicParameterConcatType(); param.setName("param"); param.setValue("10"); TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); param.setAdd("test"); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); }
@Test(expected = ConversionException.class) public void dynamicParameterAddOperationFailsWhenParamValueIsNotInt() throws Exception { DynamicParameterConcatType param = new DynamicParameterConcatType(); param.setName("param"); param.setValue("test"); TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); param.setAdd("10"); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); }
/** * Clones dynamic parameter. * * @param parameter original parameter * @return clone of parameter */ public DynamicParameterConcatType cloneParameter(DynamicParameterConcatType parameter) { DynamicParameterConcatType clonedParameter = new DynamicParameterConcatType(); clonedParameter.setAdd(parameter.getAdd()); clonedParameter.setConcat(parameter.isConcat()); clonedParameter.setConcatWhitespace(parameter.isConcatWhitespace()); clonedParameter.setDeleteOnExit(parameter.isDeleteOnExit()); clonedParameter.setName(parameter.getName()); clonedParameter.setValue(parameter.getValue()); clonedParameter.setIf(parameter.getIf()); clonedParameter.setUnless(parameter.getUnless()); return clonedParameter; }
@Test public void dynamicParameterAddOperationCanAdditionWhenParameterIsAbsent() throws Exception { DynamicParameterConcatType param = new DynamicParameterConcatType(); param.setName("param"); param.setValue("10"); param.setAdd("10"); TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); assertEquals("10", contextProvider.getDynamicContext().getParameterValueAsString(param.getName())); }
@Test public void dynamicParameterAddOperationCanAddition() throws Exception { DynamicParameterConcatType param = new DynamicParameterConcatType(); param.setName("param"); param.setValue("10"); TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); param.setAdd("10"); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); assertEquals("20", contextProvider.getDynamicContext().getParameterValueAsString(param.getName())); }
@Test public void testAddDynamicParameterFromConversionXml() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); DynamicParameterConcatType dynamicParameter1 = new DynamicParameterConcatType(); dynamicParameter1.setName("addDynamicSimple1"); dynamicParameter1.setValue("addDynamicValue1"); dynamicParameter1.setDeleteOnExit(false); DynamicParameterConcatType dynamicParameter2 = new DynamicParameterConcatType(); dynamicParameter2.setName("addDynamicSimple2"); dynamicParameter2.setValue("addDynamicValue2"); dynamicParameter2.setDeleteOnExit(true); contextProvider.getDynamicContext().addParameter(dynamicParameter1, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter(dynamicParameter2, ContextInfo.EMPTY, false); assertEquals(DEFAULT_PARAMETERS_COUNT + 2, contextProvider.getDynamicContext().getAllParametersAsString().size()); assertEquals("addDynamicValue1", contextProvider.getDynamicContext().getParameterValueAsString("addDynamicSimple1")); assertEquals("addDynamicValue2", contextProvider.getDynamicContext().getParameterValueAsString("addDynamicSimple2")); assertFalse(contextProvider.getDynamicContext().getParameterValue("addDynamicSimple1").isDeleteOnExit()); assertTrue(contextProvider.getDynamicContext().getParameterValue("addDynamicSimple2").isDeleteOnExit()); }
@Test public void dynamicParameterAddOperationCanAdditionWhenAddIsParameter() throws Exception { DynamicParameterConcatType param = new DynamicParameterConcatType(); param.setName("param"); param.setValue("10"); TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter("add", "3"); param.setAdd("%{dynamic.add}"); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); assertEquals("13", contextProvider.getDynamicContext().getParameterValueAsString(param.getName())); }
dynamicParameter1.setValue("addDynamicValue1"); dynamicParameter1.setConcat(true); dynamicParameter1.setDeleteOnExit(false); dynamicParameter2.setValue("addDynamicValue1_1"); dynamicParameter2.setConcat(false); dynamicParameter2.setDeleteOnExit(true); dynamicParameter3.setValue("addDynamicValue3"); dynamicParameter3.setConcat(false); dynamicParameter3.setDeleteOnExit(true); dynamicParameter4.setValue("addDynamicValue4"); dynamicParameter4.setConcat(true); dynamicParameter4.setDeleteOnExit(true); dynamicParameter3_whitespace.setValue("addDynamicValue3"); dynamicParameter3_whitespace.setConcat(false); dynamicParameter3_whitespace.setDeleteOnExit(false); dynamicParameter4_whitespace.setValue("addDynamicValue4"); dynamicParameter4_whitespace.setConcat(true); dynamicParameter4_whitespace.setDeleteOnExit(false);