15
15
*/
16
16
package org .springframework .data .neo4j .integration .issues .gh2498 ;
17
17
18
+ import static org .assertj .core .api .Assertions .assertThat ;
19
+
18
20
import java .util .Arrays ;
19
21
import java .util .Collection ;
20
22
import java .util .List ;
21
23
22
- import org .assertj .core .api .Assertions ;
23
24
import org .junit .jupiter .api .BeforeEach ;
24
25
import org .junit .jupiter .api .Test ;
25
26
import org .neo4j .cypherdsl .core .Condition ;
@@ -59,6 +60,10 @@ void setupData(@Autowired Driver driver, @Autowired BookmarkCapture bookmarkCapt
59
60
session .writeTransaction (tx -> tx .run (
60
61
"UNWIND ['A', 'B', 'C'] AS name WITH name CREATE (n:DomainModel {id: randomUUID(), name: name})" )
61
62
.consume ());
63
+ session .writeTransaction (tx -> tx .run ("MATCH (n:Person) DETACH DELETE n" ).consume ());
64
+ session .writeTransaction (tx -> tx .run (
65
+ "CREATE (n:Person {name: 'a'}) -[:KNOWS] ->(m:Person {name: 'b'})" )
66
+ .consume ());
62
67
bookmarkCapture .seedWith (session .lastBookmark ());
63
68
}
64
69
}
@@ -71,11 +76,23 @@ void cypherdslConditionExecutorShouldWorkWithAnonParameters(@Autowired DomainMod
71
76
Parameter <List <String >> parameters = Cypher .anonParameter (Arrays .asList ("A" , "C" ));
72
77
Condition in = name .in (parameters );
73
78
Collection <DomainModel > result = repository .findAll (in , Cypher .sort (name ).descending ());
74
- Assertions . assertThat (result ).hasSize (2 )
79
+ assertThat (result ).hasSize (2 )
75
80
.map (DomainModel ::getName )
76
81
.containsExactly ("C" , "A" );
77
82
}
78
83
84
+ @ Test // GH-2498
85
+ void cypherdslConditionExecutorMustApplyParametersToNestedStatementsToo (@ Autowired PersonRepository repository ) {
86
+ Node personNode = Cypher .node ("Person" ).named ("person" );
87
+ Property name = personNode .property ("name" );
88
+ Parameter <List <String >> param = Cypher .anonParameter (Arrays .asList ("a" , "b" ));
89
+ Condition in = name .in (param );
90
+ Collection <Person > people = repository .findAll (in );
91
+ assertThat (people )
92
+ .extracting (Person ::getName )
93
+ .containsExactlyInAnyOrder ("a" , "b" );
94
+ }
95
+
79
96
@ Configuration
80
97
@ EnableTransactionManagement
81
98
@ EnableNeo4jRepositories
0 commit comments