Skip to content

Commit 6a7c4fc

Browse files
christophstroblmp911de
authored andcommitted
Add test to verify map keys retain order when mapped.
See: #4577 Original pull request: #4568
1 parent 3dccdd2 commit 6a7c4fc

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

Diff for: spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/QueryMapperUnitTests.java

+15
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.List;
2929
import java.util.Map;
3030
import java.util.Optional;
31+
import java.util.TreeMap;
3132

3233
import org.bson.conversions.Bson;
3334
import org.bson.types.Code;
@@ -1517,6 +1518,20 @@ void usesKeyNameWithDotsIfFieldNameTypeIsKey() {
15171518
assertThat(mappedObject).isEqualTo("{ 'field.name.with.dots' : 'A' }");
15181519
}
15191520

1521+
@Test // GH-4577
1522+
void mappingShouldRetainMapKeyOrder() {
1523+
1524+
TreeMap<String, String> sourceMap = new TreeMap<>(Map.of("test1", "123", "test2", "456"));
1525+
1526+
org.bson.Document target = mapper.getMappedObject(query(where("simpleMap").is(sourceMap)).getQueryObject(),
1527+
context.getPersistentEntity(WithSimpleMap.class));
1528+
assertThat(target.get("simpleMap", Map.class)).containsExactlyEntriesOf(sourceMap);
1529+
}
1530+
1531+
class WithSimpleMap {
1532+
Map<String, String> simpleMap;
1533+
}
1534+
15201535
class WithDeepArrayNesting {
15211536

15221537
List<WithNestedArray> level0;

0 commit comments

Comments
 (0)