Skip to content

Commit b69ae8d

Browse files
committed
chore: Refactor some duplicate code and join assetions
1 parent 910e1ab commit b69ae8d

File tree

2 files changed

+17
-27
lines changed

2 files changed

+17
-27
lines changed

src/main/java/com/endava/cats/dsl/impl/MiniDslParser.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -180,15 +180,12 @@ private int findMatchingBrace(String s, int startIdx) {
180180
if (open < 0) return -1;
181181

182182
int depth = 0;
183-
boolean inSingle = false, inDouble = false;
183+
boolean[] quoteState = new boolean[2];
184184
for (int i = open; i < s.length(); i++) {
185185
char c = s.charAt(i);
186-
if (c == '\'' && !inDouble) {
187-
inSingle = !inSingle;
188-
} else if (c == '"' && !inSingle) {
189-
inDouble = !inDouble;
190-
}
191-
if (inSingle || inDouble) {
186+
updateQuoteState(c, quoteState);
187+
188+
if (quoteState[0] || quoteState[1]) {
192189
continue;
193190
}
194191

@@ -246,7 +243,7 @@ private Object readJsonPath(String json, String path) {
246243
if (json == null || json.isBlank()) return null;
247244
try {
248245
return JsonPath.read(json, path);
249-
} catch (Exception ignored) {
246+
} catch (Exception _) {
250247
return null;
251248
}
252249
}
@@ -286,17 +283,14 @@ private InstanceCall tryParseInstanceCall(String expr) {
286283

287284
private int findTopLevelDotBeforeMethodCall(String expr) {
288285
int depthParen = 0;
289-
boolean inSingle = false, inDouble = false;
286+
boolean[] quoteState = new boolean[2];
290287

291288
for (int i = 0; i < expr.length(); i++) {
292289
char c = expr.charAt(i);
293290

294-
if (c == '\'' && !inDouble) {
295-
inSingle = !inSingle;
296-
} else if (c == '"' && !inSingle) {
297-
inDouble = !inDouble;
298-
}
299-
if (inSingle || inDouble) {
291+
updateQuoteState(c, quoteState);
292+
293+
if (quoteState[0] || quoteState[1]) {
300294
continue;
301295
}
302296

@@ -458,6 +452,7 @@ private boolean areArgsCompatible(Class<?>[] params, Object[] args) {
458452
continue;
459453
}
460454
default -> {
455+
//do nothing
461456
}
462457
}
463458

src/test/java/com/endava/cats/dsl/impl/MiniDslParserTest.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ void shouldHandleEmptyExpression() {
5959
void shouldHandleWhitespaceExpression() {
6060
String result = parser.parse(" ", context);
6161

62-
assertThat(result).isEqualTo("");
62+
assertThat(result).isEmpty();
6363
}
6464
}
6565

@@ -216,26 +216,23 @@ void shouldEvaluateOffsetDateTimeNow() {
216216
void shouldEvaluateCatsRandomAlphanumeric() {
217217
String result = parser.parse("T(com.endava.cats.util.CatsRandom).alphanumeric(10)", context);
218218

219-
assertThat(result).hasSize(10);
220-
assertThat(result).matches("[a-zA-Z0-9]+");
219+
assertThat(result).hasSize(10).matches("[a-zA-Z0-9]+");
221220
}
222221

223222
@Test
224223
@DisplayName("Should evaluate CatsRandom alphabetic")
225224
void shouldEvaluateCatsRandomAlphabetic() {
226225
String result = parser.parse("T(com.endava.cats.util.CatsRandom).alphabetic(5)", context);
227226

228-
assertThat(result).hasSize(5);
229-
assertThat(result).matches("[a-zA-Z]+");
227+
assertThat(result).hasSize(5).matches("[a-zA-Z]+");
230228
}
231229

232230
@Test
233231
@DisplayName("Should evaluate CatsRandom numeric")
234232
void shouldEvaluateCatsRandomNumeric() {
235233
String result = parser.parse("T(com.endava.cats.util.CatsRandom).numeric(8)", context);
236234

237-
assertThat(result).hasSize(8);
238-
assertThat(result).matches("[0-9]+");
235+
assertThat(result).hasSize(8).matches("[0-9]+");
239236
}
240237

241238
@Test
@@ -672,7 +669,7 @@ class EdgeCaseTests {
672669
void shouldHandleExpressionWithOnlyWhitespaceAfterTrim() {
673670
String result = parser.parse(" ", context);
674671

675-
assertThat(result).isEqualTo("");
672+
assertThat(result).isEmpty();
676673
}
677674

678675
@Test
@@ -726,8 +723,7 @@ void shouldHandleIdentifierPath() {
726723
void shouldHandleNumericRangeInCatsRandom() {
727724
String result = parser.parse("T(com.endava.cats.util.CatsRandom).numeric(5, 10)", context);
728725

729-
assertThat(result).hasSizeBetween(5, 9);
730-
assertThat(result).matches("[0-9]+");
726+
assertThat(result).hasSizeBetween(5, 9).matches("[0-9]+");
731727
}
732728

733729
@Test
@@ -799,8 +795,7 @@ void shouldHandlePeriodOfDays() {
799795
void shouldHandleRandomStringUtilsRandom() {
800796
String result = parser.parse("T(org.apache.commons.lang3.RandomStringUtils).randomAlphabetic(5)", context);
801797

802-
assertThat(result).hasSize(5);
803-
assertThat(result).matches("[a-zA-Z]+");
798+
assertThat(result).hasSize(5).matches("[a-zA-Z]+");
804799
}
805800

806801
@Test

0 commit comments

Comments
 (0)