Setup


import
fitnesse.testsystems.slim.tables

scenario Test Json Method Extractor Configuration _ _ _ _ configuration, example column name, generated method name?,parameter list?
start Method Extractor @configuration
$RR= findRule @exampleColumnName
start $RR
$generatedMethodName= getMethod Name
$generatedMethodName= get Disgraced Method Name
$parameterList= getParameters

scenario Test Object Method Extractor Configuration _ _ _ example column name, generated method name?,parameter list?
start $TestMethodExtractorConfiguration
$RR= findRule @exampleColumnName
start $RR
$generatedMethodName= getMethod Name
$generatedMethodName= get Disgraced Method Name
$parameterList= getParameters




Build a JSON configuration string


Hint: use this table to construct your Json expression.


script Method Extractor
# Scope Pattern Target Name Parameter List
add; Cell\s+(\w+):(\d+)\s* getRowColumn $2,$1
# used a named group in the pattern
add; Named\s+Cell\s+(?<column>\w+):(?<row>\d+)\s* getRowColumn $row,$column
# used a fixed value as parameter
add; Header\s+Column\s+(\w+)\s* getRowColumn 0,$1
# Function name in bold everything else is ignored
add; (?s).*<b>(.*)</b>.* set $1
# Function in the first line followed by a description in the following lines
add; (?s)^([^\n]*)\n.* set $1
# Default (match all pattern) catches every column name
add; .+ set $0
# The first matching rule is used. The below will never be used as it comes after the default rule
add; Last.* Unreachable
show collapsed to Json
$TestMethodExtractorConfiguration= get fixture

Test the above defined configuration


Hint: use this table to test your own definitions.


Test Object Method Extractor Configuration
example column name generated method name? parameter list?
hallo set [hallo]
Cell A:5 getRowColumn [5, A]
Named Cell BX:451 getRowColumn [451, BX]
Header Column F getRowColumn [0, F]
Cell 7 set [Cell 7]
hello This is a Description to explain the column purpose. It will be ignored for the function identitication setHello []
The bold word is the key in this long text setTheKey []
Last and Least set [Last and Least]


Test a JSON configuration string




Test Json Method Extractor Configuration having configuration { "FormatVersion":"1.0", "MethodExtractorRules":[ { "Scope":"char at (\\d)", "TargetName":"char at", "Parameters":"$1" }, { "Scope":"index of '(\\w)'", "TargetName":"index of", "Parameters":"$1" }, { "Scope":"Element\\s(\\d)", "TargetName":"get", "Parameters":"$1" }, { "Scope":"property\\s+(\\w*)\\s*", "TargetName":"get property", "Parameters":"$1" }, { "Scope":"has Value\\s+'(\\w*)'\\s*", "TargetName":"contains Value", "Parameters":"$1" }, { "Scope":"(?s).*<[b]>(.*).*", "TargetName":"set $1", "Parameters":"" }, { "Scope":"(?s)^([^\\n]*)\\n.*", "TargetName":"set $1", "Parameters":"" }, { "Scope":".+", "TargetName":"set $0", "Parameters":"" } ] }
example column name generated method name? parameter list?
hallo setHallo []
property abc getProperty [abc]
Element 5 get [5]
hello This is a Description to explain the column purpose. It will be ignored for the function identitication setHello []
The bold word is the key in this long text setTheKey []
no match setNoMatch []