27
27
import org .junit .jupiter .api .Test ;
28
28
import org .reactivestreams .Publisher ;
29
29
30
- import org .springframework .core .MethodParameter ;
31
30
import org .springframework .data .domain .Limit ;
32
31
import org .springframework .data .domain .OffsetScrollPosition ;
33
32
import org .springframework .data .domain .Page ;
34
33
import org .springframework .data .domain .Pageable ;
35
34
import org .springframework .data .domain .Sort ;
36
35
import org .springframework .data .domain .Window ;
37
36
import org .springframework .data .repository .Repository ;
38
- import org .springframework .data .util .TypeInformation ;
37
+ import org .springframework .data .repository .core .RepositoryMetadata ;
38
+ import org .springframework .data .repository .core .support .DefaultRepositoryMetadata ;
39
39
import org .springframework .test .util .ReflectionTestUtils ;
40
40
41
41
/**
47
47
class ParametersUnitTests {
48
48
49
49
private Method valid ;
50
+ private RepositoryMetadata metadata ;
50
51
51
52
@ BeforeEach
52
53
void setUp () throws SecurityException , NoSuchMethodException {
53
54
54
55
valid = SampleDao .class .getMethod ("valid" , String .class );
56
+ metadata = new DefaultRepositoryMetadata (SampleDao .class );
55
57
}
56
58
57
59
@ Test
@@ -60,14 +62,14 @@ void checksValidMethodCorrectly() throws Exception {
60
62
var validWithPageable = SampleDao .class .getMethod ("validWithPageable" , String .class , Pageable .class );
61
63
var validWithSort = SampleDao .class .getMethod ("validWithSort" , String .class , Sort .class );
62
64
63
- new DefaultParameters (valid );
64
- new DefaultParameters (validWithPageable );
65
- new DefaultParameters (validWithSort );
65
+ new DefaultParameters (metadata , valid );
66
+ new DefaultParameters (metadata , validWithPageable );
67
+ new DefaultParameters (metadata , validWithSort );
66
68
}
67
69
68
70
@ Test
69
71
void rejectsNullMethod () {
70
- assertThatIllegalArgumentException ().isThrownBy (() -> new DefaultParameters (null ));
72
+ assertThatIllegalArgumentException ().isThrownBy (() -> new DefaultParameters (metadata , null ));
71
73
}
72
74
73
75
@ Test
@@ -91,12 +93,12 @@ void calculatesPlaceholderPositionCorrectly() throws Exception {
91
93
92
94
var method = SampleDao .class .getMethod ("validWithSortFirst" , Sort .class , String .class );
93
95
94
- Parameters <?, ?> parameters = new DefaultParameters (method );
96
+ Parameters <?, ?> parameters = new DefaultParameters (metadata , method );
95
97
assertThat (parameters .getBindableParameter (0 ).getIndex ()).isEqualTo (1 );
96
98
97
99
method = SampleDao .class .getMethod ("validWithSortInBetween" , String .class , Sort .class , String .class );
98
100
99
- parameters = new DefaultParameters (method );
101
+ parameters = new DefaultParameters (metadata , method );
100
102
101
103
assertThat (parameters .getBindableParameter (0 ).getIndex ()).isEqualTo (0 );
102
104
assertThat (parameters .getBindableParameter (1 ).getIndex ()).isEqualTo (2 );
@@ -211,9 +213,7 @@ void considersGenericType() throws Exception {
211
213
212
214
var method = TypedInterface .class .getMethod ("foo" , Object .class );
213
215
214
- var parameters = new DefaultParameters (method ,
215
- index -> new MethodParameter (method , index ).withContainingClass (TypedInterface .class ),
216
- TypeInformation .of (User .class ));
216
+ var parameters = new DefaultParameters (new DefaultRepositoryMetadata (TypedInterface .class ), method );
217
217
218
218
assertThat (parameters .getParameter (0 ).getType ()).isEqualTo (Long .class );
219
219
}
@@ -223,14 +223,14 @@ private Parameters<?, Parameter> getParametersFor(String methodName, Class<?>...
223
223
224
224
var method = SampleDao .class .getMethod (methodName , parameterTypes );
225
225
226
- return new DefaultParameters (method );
226
+ return new DefaultParameters (metadata , method );
227
227
}
228
228
229
229
static class User {
230
230
231
231
}
232
232
233
- interface SampleDao {
233
+ interface SampleDao extends Repository < User , String > {
234
234
235
235
User valid (@ Param ("username" ) String username );
236
236
0 commit comments