Skip to content

Commit c0e950b

Browse files
committed
GH-2884 - Add test for cyclic domain.
1 parent 8d9b557 commit c0e950b

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

src/test/java/org/springframework/data/neo4j/integration/issues/IssuesIT.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -744,12 +744,21 @@ void sortByCompositeProperty(@Autowired CityModelRepository repository) {
744744
Sort sort = Sort.by(Sort.Order.asc("compositeProperty.language"));
745745
List<CityModel> models = repository.findAll(sort);
746746

747-
assertThat(models).extracting("name").containsExactlyInAnyOrder("Utrecht", "Aachen");
747+
assertThat(models).extracting("name").containsExactly("Utrecht", "Aachen");
748748

749749
Sort sortDesc = Sort.by(Sort.Order.desc("compositeProperty.language"));
750750
models = repository.findAll(sortDesc);
751751

752-
assertThat(models).extracting("name").containsExactlyInAnyOrder("Aachen", "Utrecht");
752+
assertThat(models).extracting("name").containsExactly("Aachen", "Utrecht");
753+
}
754+
755+
756+
@Test
757+
@Tag("GH-2884")
758+
void sortByCompositePropertyForCyclicDomainReturn(@Autowired SkuRORepository repository) {
759+
List<SkuRO> result = repository.findAll(Sort.by("composite.a"));
760+
761+
assertThat(result).extracting("number").containsExactly(3L, 2L, 1L, 0L);
753762
}
754763

755764
@Test

src/test/java/org/springframework/data/neo4j/integration/issues/TestBase.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ protected final void beforeEach(@Autowired BookmarkCapture bookmarkCapture) {
102102
protected static void setupGH2289(QueryRunner queryRunner) {
103103
queryRunner.run("MATCH (s:SKU_RO) DETACH DELETE s").consume();
104104
for (int i = 0; i < 4; ++i) {
105-
queryRunner.run("CREATE (s:SKU_RO {number: $i, name: $n})",
106-
Values.parameters("i", i, "n", new String(new char[]{(char) ('A' + i)}))).consume();
105+
queryRunner.run("CREATE (s:SKU_RO {number: $i, name: $n, `composite.a`: $a})",
106+
Values.parameters("i", i, "n", new String(new char[]{(char) ('A' + i)}), "a", 10 - i)).consume();
107107
}
108108
}
109109

src/test/java/org/springframework/data/neo4j/integration/issues/gh2289/SkuRO.java

+13
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616
package org.springframework.data.neo4j.integration.issues.gh2289;
1717

1818
import org.springframework.data.annotation.ReadOnlyProperty;
19+
import org.springframework.data.neo4j.core.schema.CompositeProperty;
1920
import org.springframework.data.neo4j.core.schema.GeneratedValue;
2021
import org.springframework.data.neo4j.core.schema.Id;
2122
import org.springframework.data.neo4j.core.schema.Node;
2223
import org.springframework.data.neo4j.core.schema.Property;
2324
import org.springframework.data.neo4j.core.schema.Relationship;
2425

2526
import java.util.HashSet;
27+
import java.util.Map;
2628
import java.util.Set;
2729

2830
/**
@@ -48,6 +50,9 @@ public class SkuRO {
4850
@Relationship(type = "RANGE_RELATION_TO", direction = Relationship.Direction.INCOMING)
4951
private Set<RangeRelationRO> rangeRelationsIn = new HashSet<>();
5052

53+
@CompositeProperty
54+
private Map<String, Integer> composite;
55+
5156
public SkuRO(Long number, String name) {
5257
this.number = number;
5358
this.name = name;
@@ -99,6 +104,14 @@ public void setRangeRelationsIn(Set<RangeRelationRO> rangeRelationsIn) {
99104
this.rangeRelationsIn = rangeRelationsIn;
100105
}
101106

107+
public Map<String, Integer> getComposite() {
108+
return composite;
109+
}
110+
111+
public void setComposite(Map<String, Integer> composite) {
112+
this.composite = composite;
113+
}
114+
102115
public boolean equals(final Object o) {
103116
if (o == this) {
104117
return true;

0 commit comments

Comments
 (0)