From a8c3644b275897e3a959c1a6e1287f7fe7859663 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Tue, 15 Oct 2024 08:00:53 +0200 Subject: [PATCH] Polishing. Add tests to verify expected behaviour of quoted expressions and string that look like expressions. Remove comments that look like old merge conflict left overs and apply code format. Original Pull Request: #4807 --- .../ParameterBindingJsonReaderUnitTests.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/util/json/ParameterBindingJsonReaderUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/util/json/ParameterBindingJsonReaderUnitTests.java index b6fb4c158..a2822edb9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/util/json/ParameterBindingJsonReaderUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/util/json/ParameterBindingJsonReaderUnitTests.java @@ -102,6 +102,22 @@ class ParameterBindingJsonReaderUnitTests { assertThat(pattern.getOptions()).isEqualTo("i"); } + @Test // GH-4806 + void treatsQuotedValueThatLooksLikeRegexAsPlainString() { + + Document target = parse("{ 'c': '/^?0$/i' }", "foo"); + + assertThat(target.get("c")).isInstanceOf(String.class); + } + + @Test // GH-4806 + void treatsStringParameterValueThatLooksLikeRegexAsPlainString() { + + Document target = parse("{ 'c': ?0 }", "/^foo$/i"); + + assertThat(target.get("c")).isInstanceOf(String.class); + } + @Test void bindValueToRegex() { @@ -145,7 +161,6 @@ class ParameterBindingJsonReaderUnitTests { @Test void bindListValue() { - // Document target = parse("{ 'lastname' : { $in : ?0 } }", Arrays.asList("Kohlin", "Davar")); assertThat(target).isEqualTo(Document.parse("{ 'lastname' : { $in : ['Kohlin', 'Davar' ]} }")); } @@ -153,7 +168,6 @@ class ParameterBindingJsonReaderUnitTests { @Test void bindListOfBinaryValue() { - // byte[] value = "Kohlin".getBytes(StandardCharsets.UTF_8); List args = Collections.singletonList(value); @@ -168,12 +182,9 @@ class ParameterBindingJsonReaderUnitTests { assertThat(target).isEqualTo(Document.parse("{ \"id\" : { \"$exists\" : true}}")); } - // {'id':?#{ [0] ? { $exists :true} : [1] }} - @Test void bindDocumentValue() { - // Document target = parse("{ 'lastname' : ?0 }", new Document("$eq", "Kohlin")); assertThat(target).isEqualTo(Document.parse("{ 'lastname' : { '$eq' : 'Kohlin' } }")); } @@ -181,7 +192,6 @@ class ParameterBindingJsonReaderUnitTests { @Test void arrayWithoutBinding() { - // Document target = parse("{ 'lastname' : { $in : [\"Kohlin\", \"Davar\"] } }"); assertThat(target).isEqualTo(Document.parse("{ 'lastname' : { $in : ['Kohlin', 'Davar' ]} }")); } @@ -189,7 +199,6 @@ class ParameterBindingJsonReaderUnitTests { @Test void bindSpEL() { - // "{ arg0 : ?#{[0]} }" Document target = parse("{ arg0 : ?#{[0]} }", 100.01D); assertThat(target).isEqualTo(new Document("arg0", 100.01D)); }