/** * 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 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())); }