Skip to content
This repository was archived by the owner on Jul 6, 2023. It is now read-only.

Commit 3686388

Browse files
committed
implementing feedback
1 parent 999d5a4 commit 3686388

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

cypher-shell/src/main/java/org/neo4j/shell/commands/Param.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import javax.annotation.Nonnull;
88
import java.util.Collections;
99
import java.util.List;
10-
import java.util.function.BiFunction;
10+
import java.util.function.BiPredicate;
1111
import java.util.regex.Matcher;
1212
import java.util.regex.Pattern;
1313

@@ -67,35 +67,35 @@ public void execute(@Nonnull final String argString) throws CommandException {
6767
throw new CommandException(AnsiFormattedText.from("Incorrect usage.\nusage: ")
6868
.bold().append(COMMAND_NAME).boldOff().append(" ").append(getUsage()));
6969
}
70-
if (!validParameterAssignment(argString)) {
70+
if (!assignIfValidParameter(argString)) {
7171
throw new CommandException(AnsiFormattedText.from("Incorrect number of arguments.\nusage: ")
7272
.bold().append(COMMAND_NAME).boldOff().append(" ").append(getUsage()));
7373
}
7474
}
7575

76-
private boolean validParameterAssignment(@Nonnull String argString) throws CommandException {
77-
return setParameterIfItMatchesPattern(argString, lambdaPattern, validParameterAssignment())
78-
|| setParameterIfItMatchesPattern(argString, argPattern, validParameterAssignment())
76+
private boolean assignIfValidParameter(@Nonnull String argString) throws CommandException {
77+
return setParameterIfItMatchesPattern(argString, lambdaPattern, assignIfValidParameter())
78+
|| setParameterIfItMatchesPattern(argString, argPattern, assignIfValidParameter())
7979
|| setParameterIfItMatchesPattern(argString, backtickLambdaPattern, backTickMatchPattern())
8080
|| setParameterIfItMatchesPattern(argString, backtickPattern, backTickMatchPattern());
8181
}
8282

8383
private boolean setParameterIfItMatchesPattern(@Nonnull String argString, Pattern pattern,
84-
BiFunction<String, Matcher, Boolean> matchingFunction) throws CommandException {
84+
BiPredicate<String, Matcher> matchingFunction) throws CommandException {
8585
Matcher matcher = pattern.matcher(argString);
86-
if (matchingFunction.apply(argString, matcher)) {
86+
if (matchingFunction.test(argString, matcher)) {
8787
variableHolder.set(matcher.group("key"), matcher.group("value"));
8888
return true;
8989
} else {
9090
return false;
9191
}
9292
}
9393

94-
private BiFunction<String, Matcher, Boolean> validParameterAssignment() {
94+
private BiPredicate<String, Matcher> assignIfValidParameter() {
9595
return (argString, matcher) -> matcher.matches();
9696
}
9797

98-
private BiFunction<String, Matcher, Boolean> backTickMatchPattern() {
98+
private BiPredicate<String, Matcher> backTickMatchPattern() {
9999
return (argString, backtickLambdaMatcher) -> {
100100
return argString.trim().startsWith("`")
101101
&& backtickLambdaMatcher.matches()

cypher-shell/src/test/java/org/neo4j/shell/commands/ParamTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,13 @@ public void setSpecialCharacterParameter() throws CommandException {
7272
verify(mockShell).set("bØb", "9");
7373
}
7474

75+
@Test
76+
public void setSpecialCharacterParameterForLambdaExpressions() throws CommandException {
77+
cmd.execute("`first=>Name` => \"Bruce\"");
78+
79+
verify(mockShell).set("`first=>Name`", "\"Bruce\"");
80+
}
81+
7582
@Test
7683
public void setParamWithSpecialCharacters() throws CommandException {
7784
cmd.execute("`bob#` 9");

0 commit comments

Comments
 (0)