blob: b5e297df0f7b42bb2dc8cd3090a10ee523164f12 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you 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.apache.jmeter.functions.gui
import org.apache.jmeter.config.Argument
import org.apache.jmeter.config.Arguments
import spock.lang.IgnoreIf
import spock.lang.Specification
import spock.lang.Unroll
@Unroll
class FunctionHelperSpec extends Specification {
@IgnoreIf({ System.properties['java.awt.headless'] as boolean })
def "construct correct call string for parameters #parameters"() {
setup:
def functionHelper = new FunctionHelper()
when:
def args = new Arguments()
args.setArguments(parameters.collect { new Argument("dummy${it}", it) })
then:
functionHelper.buildFunctionCallString(functionName, args).toString() == combined
where:
functionName | parameters | combined
"fname" | [] | "\${fname}"
"fname" | ["a"] | "\${fname(a)}"
"fname" | ["a,b"] | "\${fname(a\\,b)}"
"fname" | ["a,b,c"] | "\${fname(a\\,b\\,c)}"
"fname" | ["a", "b"] | "\${fname(a,b)}"
"fname" | ["a,b", "c"] | "\${fname(a\\,b,c)}"
"fname" | ["\\\${f(a,b)}"] | "\${fname(\\\${f(a\\,b)})}"
"fname" | ["\${f(a,b)},c,\${g(d,e)}", "h"] | "\${fname(\${f(a,b)}\\,c\\,\${g(d,e)},h)}"
"fname" | ["a,\${f(b,\${g(c,d)},e)},f", "h"] | "\${fname(a\\,\${f(b,\${g(c,d)},e)}\\,f,h)}"
}
}