/** * Gets the parameter value of the given key. * @param key the key of the parameter. * @return the value of the parameter if presented otherwise {@code null}. */ public String get(String key) { String value = null; for (Parameter p : parameters) { if (p.getName().equals(key)) { value = p.getValue(); } } return value; }
private ParameterList parseTemplateFormatterParameters(final NodeList params) { ParameterList parameterList = new ParameterList(); if (params != null) { for (int i = 0; i < params.getLength(); i++) { Element el = (Element) params.item(i); String name = el.getAttribute("name"); String value = el.getAttribute("value"); parameterList.addParameter(new Parameter(name, value)); } } return parameterList; }
@Override public byte[] formatResponse(WilmaHttpRequest wilmaRequest, HttpServletResponse resp, byte[] responseResource, ParameterList params) { //we add/update headers based on params for (Parameter p : params.getAllParameters()) { String name = p.getName(); String value = p.getValue(); if (name != null && name.length() > 0 && value != null && value.length() > 0) { if (resp.containsHeader(name)) { resp.setHeader(name, value); } else { resp.addHeader(name, value); } } else { logger.warn("Template Formatter issue: specified parameters cannot be used in header: " + p.toString()); } } //we don't touch the body part return responseResource; } }
private boolean checkInRequestHeaders(final WilmaHttpRequest request, final Parameter parameter) { boolean result; if (!"".equals(parameter.getValue())) { result = checkInHeaders(request, parameter); } else { result = false; } return result; }
@Override public boolean checkCondition(final WilmaHttpRequest request, final ParameterList parameters) { Parameter parameter = parameters.getAllParameters().get(0); String name = request.getHeader(parameter.getName()); return name != null && !name.isEmpty(); } }
private boolean evaluateParameter(final WilmaHttpRequest request, final Parameter parameter) { String paramValue = parameter.getValue(); boolean result = false; if (request.getRequestLine().contains(paramValue)) { result = true; } return result; }
private ParameterList parseInterceptorParameters(final NodeList params) { ParameterList parameterList = new ParameterList(); if (params != null) { for (int i = 0; i < params.getLength(); i++) { Element el = (Element) params.item(i); String name = el.getAttribute("name"); String value = el.getAttribute("value"); parameterList.addParameter(new Parameter(name, value)); } } return parameterList; } }
private boolean evaluateParameter(final WilmaHttpRequest request, final Parameter parameter) { String paramValue = parameter.getValue(); boolean result = false; if (request.getRequestLine().contains(paramValue)) { result = true; } return result; }
private ParameterList parseSimpleConditionParams(final NodeList params) { ParameterList paramList = new ParameterList(); if (params != null && params.getLength() > 0) { for (int i = 0; i < params.getLength(); i++) { Element el = (Element) params.item(i); String name = el.getAttribute("name"); String value = el.getAttribute("value"); paramList.addParameter(new Parameter(name, value)); } } return paramList; } }
private String getTemplate(final byte[] templateResource, final ParameterList params) throws IOException { String template = IOUtils.toString(templateResource, "utf-8"); for (Parameter param : params.getAllParameters()) { String name = param.getName(); String value = param.getValue(); template = template.replace(name, value); } return template; }
private boolean checkInHeaders(final WilmaHttpRequest request, final Parameter parameter) { boolean result = false; Iterator<Entry<String, String>> headerIterator = request.getHeaders().entrySet().iterator(); while (headerIterator.hasNext() && !result) { Map.Entry<String, String> header = headerIterator.next(); result = operator.checkTarget(parameter.getValue(), header.getValue()); } return result; }
@BeforeMethod public void setup() { initializeMocksAndTestDate(); parameters.addParameter(new Parameter("type:RegexResolvable", "url:.*/urls/regex.html")); parameters.addParameter(new Parameter("type:ExactResolvable", "url:www.epam.com/urls/target.html")); parameters.addParameter(new Parameter("not_a_type", "url:www.typeless.com/urls/resolvable.html")); parameters.addParameter(new Parameter("type:NonResolvable", "not_an_url")); parameters.addParameter(new Parameter("typequery:" + XPATH_QUERY, "url:www.xpath.com/query/test")); }
private String getTemplate(final byte[] templateResource, final ParameterList params) throws IOException { String template = IOUtils.toString(templateResource, "utf-8"); for (Parameter param : params.getAllParameters()) { String name = param.getName(); String value = param.getValue(); try { template = template.replaceAll(name, value); } catch (PatternSyntaxException e) { throw new ResponseFormattingFailedException("Pattern syntax :'" + name + "' incorrect!", e); } } return template; }
@Override public boolean checkCondition(final WilmaHttpRequest request, final ParameterList parameterList) { List<Parameter> params = parameterList.getAllParameters(); Iterator<Parameter> iterator = params.iterator(); boolean result = !params.isEmpty(); while (iterator.hasNext() && result) { Parameter parameter = iterator.next(); String parameterValue = parameter.getValue(); result = evaluateParameter(request, parameterValue); } return result; }
@Test public void testFormatTemplateWhenMultipleParametersShouldReplaceString() throws Exception { //GIVEN templateResource = "123 this is a test template 123".getBytes(); parameterList.addParameter(new Parameter("[0-2]+", "HELLO")); parameterList.addParameter(new Parameter("is", "is not")); //WHEN byte[] actual = underTest.formatResponse(request, response, templateResource, parameterList); //THEN assertEquals(actual, "HELLO3 this not is not a test template HELLO3".getBytes()); }
@Override public boolean checkCondition(final WilmaHttpRequest request, final ParameterList parameterList) { List<Parameter> params = parameterList.getAllParameters(); Iterator<Parameter> iterator = params.iterator(); boolean result = !params.isEmpty(); while (iterator.hasNext() && result) { Parameter parameter = iterator.next(); String header = request.getHeader(parameter.getName()); if (header != null) { result = result && header.contains(parameter.getValue()); } else { result = false; } } return result; }
@Override public boolean checkCondition(final WilmaHttpRequest request, final ParameterList parameterList) { List<Parameter> params = parameterList.getAllParameters(); Iterator<Parameter> iterator = params.iterator(); boolean result = !params.isEmpty(); while (iterator.hasNext() && result) { Parameter parameter = iterator.next(); String parameterValue = parameter.getValue(); result = evaluateParameter(request, parameterValue); } return result; }
@Test public void testFormatTemplateWhenMultipleParametersShouldReplaceString() throws Exception { //GIVEN templateResource = "this is a test template".getBytes(); parameterList.addParameter(new Parameter("t", "blabla")); parameterList.addParameter(new Parameter("is", "is not")); parameterList.addParameter(new Parameter("a", "o")); //WHEN byte[] actual = underTest.formatResponse(request, response, templateResource, parameterList); //THEN assertEquals(actual, "bloblohis not is not o blobloesbloblo blobloemploblobloe".getBytes()); }
@Override public void onResponseReceive(final WilmaHttpResponse response, final ParameterList parameters) { if (parameters != null && !parameters.isEmpty()) { List<Parameter> parameterList = parameters.getAllParameters(); for (Parameter parameter : parameterList) { String name = parameter.getName(); String value = parameter.getValue(); if (REMOVE_HEADER.equals(name.toUpperCase())) { // remove header response.addHeaderRemove(value); } else { response.addHeaderUpdate(name, value); } } } }