I know this does not answer your question about why your code does not work for you, but if you want a slightly more attractive / better way to implement your code, you can throw your values on the map so that you do not have to use the operator switch:
class ValueTests {
public static final String HIGH_STRING = "high"
public static final String LOW_STRING = "low"
@Test
void stuff() {
assert "string was high" == getValue("high")
assert "string was low" == getValue("low")
assert "no match" == getValue("higher")
}
def getValue(String key) {
def valuesMap = [
(HIGH_STRING): "string was high",
(LOW_STRING):"string was low"
]
valuesMap.get(key) ?: "no match"
}
}
A little cleaner than switchIMO.
source
share