From 35d148440f008fd68186179fc04944ba95430b01 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)); }