17
17
18
18
import static org .assertj .core .api .Assertions .assertThat ;
19
19
import static org .junit .jupiter .api .Assertions .assertNotSame ;
20
- import static org .mockito .Mockito .RETURNS_MOCKS ;
21
20
21
+ import feign .codec .Decoder ;
22
+ import feign .codec .Encoder ;
23
+ import feign .codec .ErrorDecoder ;
22
24
import java .lang .reflect .Field ;
23
25
import java .util .List ;
24
26
import org .junit .jupiter .api .Test ;
@@ -36,9 +38,20 @@ void checkEnrichTouchesAllAsyncBuilderFields()
36
38
14 );
37
39
}
38
40
41
+ @ Test
42
+ void checkEnrichTouchesAllBuilderFields ()
43
+ throws IllegalArgumentException , IllegalAccessException {
44
+ test (
45
+ Feign .builder ()
46
+ .requestInterceptor (template -> {})
47
+ .responseInterceptor ((ic , c ) -> c .next (ic )),
48
+ 12 );
49
+ }
50
+
39
51
private void test (BaseBuilder <?, ?> builder , int expectedFieldsCount )
40
52
throws IllegalArgumentException , IllegalAccessException {
41
- Capability mockingCapability = Mockito .mock (Capability .class , RETURNS_MOCKS );
53
+ Capability mockingCapability = new MockingCapability ();
54
+
42
55
BaseBuilder <?, ?> enriched = builder .addCapability (mockingCapability ).enrich ();
43
56
44
57
List <Field > fields = enriched .getFieldsToEnrich ();
@@ -58,13 +71,98 @@ private void test(BaseBuilder<?, ?> builder, int expectedFieldsCount)
58
71
}
59
72
}
60
73
61
- @ Test
62
- void checkEnrichTouchesAllBuilderFields ()
63
- throws IllegalArgumentException , IllegalAccessException {
64
- test (
65
- Feign .builder ()
66
- .requestInterceptor (template -> {})
67
- .responseInterceptor ((ic , c ) -> c .next (ic )),
68
- 12 );
74
+ private final class MockingCapability implements Capability {
75
+
76
+ @ Override
77
+ @ SuppressWarnings ("unchecked" )
78
+ public <C > AsyncContextSupplier <C > enrich (AsyncContextSupplier <C > asyncContextSupplier ) {
79
+ return (AsyncContextSupplier <C >) Mockito .mock (AsyncContextSupplier .class );
80
+ }
81
+
82
+ @ Override
83
+ public AsyncResponseHandler enrich (AsyncResponseHandler asyncResponseHandler ) {
84
+ return Mockito .mock (AsyncResponseHandler .class );
85
+ }
86
+
87
+ @ Override
88
+ public ResponseInterceptor .Chain enrich (ResponseInterceptor .Chain chain ) {
89
+ return Mockito .mock (ResponseInterceptor .Chain .class );
90
+ }
91
+
92
+ @ Override
93
+ @ SuppressWarnings ("unchecked" )
94
+ public AsyncClient <Object > enrich (AsyncClient <Object > client ) {
95
+ return (AsyncClient <Object >) Mockito .mock (AsyncClient .class );
96
+ }
97
+
98
+ @ Override
99
+ public Client enrich (Client client ) {
100
+ return Mockito .mock (Client .class );
101
+ }
102
+
103
+ @ Override
104
+ public Contract enrich (Contract contract ) {
105
+ return Mockito .mock (Contract .class );
106
+ }
107
+
108
+ @ Override
109
+ public Decoder enrich (Decoder decoder ) {
110
+ return Mockito .mock (Decoder .class );
111
+ }
112
+
113
+ @ Override
114
+ public ErrorDecoder enrich (ErrorDecoder decoder ) {
115
+ return Mockito .mock (ErrorDecoder .class );
116
+ }
117
+
118
+ @ Override
119
+ public Encoder enrich (Encoder encoder ) {
120
+ return Mockito .mock (Encoder .class );
121
+ }
122
+
123
+ @ Override
124
+ public InvocationHandlerFactory enrich (InvocationHandlerFactory invocationHandlerFactory ) {
125
+ return Mockito .mock (InvocationHandlerFactory .class );
126
+ }
127
+
128
+ @ Override
129
+ public Logger .Level enrich (Logger .Level level ) {
130
+ return Mockito .mock (Logger .Level .class );
131
+ }
132
+
133
+ @ Override
134
+ public Logger enrich (Logger logger ) {
135
+ return Mockito .mock (Logger .class );
136
+ }
137
+
138
+ @ Override
139
+ public MethodInfoResolver enrich (MethodInfoResolver methodInfoResolver ) {
140
+ return Mockito .mock (MethodInfoResolver .class );
141
+ }
142
+
143
+ @ Override
144
+ public Request .Options enrich (Request .Options options ) {
145
+ return Mockito .mock (Request .Options .class );
146
+ }
147
+
148
+ @ Override
149
+ public QueryMapEncoder enrich (QueryMapEncoder queryMapEncoder ) {
150
+ return Mockito .mock (QueryMapEncoder .class );
151
+ }
152
+
153
+ @ Override
154
+ public RequestInterceptor enrich (RequestInterceptor requestInterceptor ) {
155
+ return Mockito .mock (RequestInterceptor .class );
156
+ }
157
+
158
+ @ Override
159
+ public ResponseInterceptor enrich (ResponseInterceptor responseInterceptor ) {
160
+ return Mockito .mock (ResponseInterceptor .class );
161
+ }
162
+
163
+ @ Override
164
+ public Retryer enrich (Retryer retryer ) {
165
+ return Mockito .mock (Retryer .class );
166
+ }
69
167
}
70
168
}
0 commit comments