1616package org .springframework .data .redis .connection .jedis ;
1717
1818import static org .assertj .core .api .Assertions .*;
19+ import static org .junit .jupiter .params .provider .Arguments .*;
1920
2021import redis .clients .jedis .params .XAddParams ;
2122import redis .clients .jedis .params .XPendingParams ;
22- import redis .clients .jedis .params .XTrimParams ;
2323
2424import java .time .Duration ;
2525import java .time .temporal .ChronoUnit ;
26+ import java .util .stream .Stream ;
2627
2728import org .assertj .core .api .InstanceOfAssertFactories ;
29+ import org .junit .jupiter .api .DisplayName ;
2830import org .junit .jupiter .api .Nested ;
2931import org .junit .jupiter .api .Test ;
32+ import org .junit .jupiter .params .ParameterizedTest ;
33+ import org .junit .jupiter .params .provider .Arguments ;
34+ import org .junit .jupiter .params .provider .MethodSource ;
3035
3136import org .springframework .data .redis .connection .RedisStreamCommands .StreamDeletionPolicy ;
3237import org .springframework .data .redis .connection .RedisStreamCommands .TrimOptions ;
@@ -56,71 +61,22 @@ void shouldConvertIdle() {
5661 @ Nested // GH-3232
5762 class ToXAddParamsShould {
5863
59- @ Test
60- void convertXAddOptionsWithMaxlen () {
61-
62- RecordId recordId = RecordId .autoGenerate ();
63- XAddOptions options = XAddOptions .trim (TrimOptions .maxLen (100 ));
64-
65- XAddParams params = StreamConverters .toXAddParams (recordId , options );
66-
67- assertThat (params ).hasFieldOrPropertyWithValue ("maxLen" , 100L );
68- }
69-
70- @ Test
71- void convertXAddOptionsWithMinId () {
72-
73- RecordId recordId = RecordId .autoGenerate ();
74- XAddOptions options = XAddOptions .trim (TrimOptions .minId (RecordId .of ("1234567890-0" )));
75-
76- XAddParams params = StreamConverters .toXAddParams (recordId , options );
77-
78- assertThat (params ).hasFieldOrPropertyWithValue ("minId" , "1234567890-0" );
79- }
80-
81- @ Test
82- void convertXAddOptionsWithApproximateTrimming () {
83-
84- RecordId recordId = RecordId .autoGenerate ();
85- XAddOptions options = XAddOptions .trim (TrimOptions .maxLen (100 ).approximate ());
86-
87- XAddParams params = StreamConverters .toXAddParams (recordId , options );
88-
89- assertThat (params ).hasFieldOrPropertyWithValue ("approximateTrimming" , true );
64+ @ ParameterizedTest
65+ @ DisplayName ("ConvertXAddOptions" )
66+ @ MethodSource
67+ void convertXAddOptions (XAddOptions options , String paramsFieldToCheck , Object paramsFieldExpectedValue ) {
68+ assertThat (StreamConverters .toXAddParams (RecordId .autoGenerate (), options )).hasFieldOrPropertyWithValue (paramsFieldToCheck , paramsFieldExpectedValue );
9069 }
9170
92- @ Test
93- void convertXAddOptionsWithExactTrimming () {
94-
95- RecordId recordId = RecordId .autoGenerate ();
96- XAddOptions options = XAddOptions .trim (TrimOptions .maxLen (100 ).exact ());
97-
98- XAddParams params = StreamConverters .toXAddParams (recordId , options );
99-
100- assertThat (params ).hasFieldOrPropertyWithValue ("exactTrimming" , true );
101- }
102-
103- @ Test
104- void convertXAddOptionsWithLimit () {
105-
106- RecordId recordId = RecordId .autoGenerate ();
107- XAddOptions options = XAddOptions .trim (TrimOptions .maxLen (100 ).approximate ().limit (50 ));
108-
109- XAddParams params = StreamConverters .toXAddParams (recordId , options );
110-
111- assertThat (params ).hasFieldOrPropertyWithValue ("limit" , 50L );
112- }
113-
114- @ Test
115- void convertXAddOptionsWithDeletionPolicy () {
116-
117- RecordId recordId = RecordId .autoGenerate ();
118- XAddOptions options = XAddOptions .trim (TrimOptions .maxLen (100 ).pendingReferences (StreamDeletionPolicy .keep ()));
119-
120- XAddParams params = StreamConverters .toXAddParams (recordId , options );
121-
122- assertThat (params ).hasFieldOrPropertyWithValue ("trimMode" ,
123- redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES );
71+ static Stream <Arguments > convertXAddOptions () {
72+ return Stream .of (
73+ argumentSet ("withMaxLen" , XAddOptions .trim (TrimOptions .maxLen (100 )), "maxLen" , 100L ),
74+ argumentSet ("withMinId" , XAddOptions .trim (TrimOptions .minId (RecordId .of ("1234567890-0" ))), "minId" , "1234567890-0" ),
75+ argumentSet ("withApproximateTrimming" , XAddOptions .trim (TrimOptions .maxLen (100 ).approximate ()), "approximateTrimming" , true ),
76+ argumentSet ("withExactTrimming" , XAddOptions .trim (TrimOptions .maxLen (100 ).exact ()), "exactTrimming" , true ),
77+ argumentSet ("withLimit" , XAddOptions .trim (TrimOptions .maxLen (100 ).approximate ().limit (50 )), "limit" , 50L ),
78+ argumentSet ("withDeletionPolicy" , XAddOptions .trim (TrimOptions .maxLen (100 ).pendingReferences (StreamDeletionPolicy .keep ())), "trimMode" , redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES )
79+ );
12480 }
12581
12682 @ Test
@@ -137,112 +93,38 @@ void convertXAddOptionsWithRecordId() {
13793 }
13894 }
13995
140- @ Nested // GH-3232
141- class ToXTrimParamsShould {
142-
143- @ Test
144- void convertXTrimOptionsWithMaxlen () {
145-
146- XTrimOptions options = XTrimOptions .trim (TrimOptions .maxLen (100 ));
147-
148- XTrimParams params = StreamConverters .toXTrimParams (options );
149-
150- assertThat (params ).hasFieldOrPropertyWithValue ("maxLen" , 100L );
151- }
152-
153- @ Test
154- void convertXTrimOptionsWithMinId () {
155-
156- XTrimOptions options = XTrimOptions .trim (TrimOptions .minId (RecordId .of ("1234567890-0" )));
157-
158- XTrimParams params = StreamConverters .toXTrimParams (options );
159-
160- assertThat (params ).hasFieldOrPropertyWithValue ("minId" , "1234567890-0" );
161- }
162-
163- @ Test
164- void convertXTrimOptionsWithApproximateTrimming () {
165-
166- XTrimOptions options = XTrimOptions .trim (TrimOptions .maxLen (100 ).approximate ());
167-
168- XTrimParams params = StreamConverters .toXTrimParams (options );
169-
170- assertThat (params ).hasFieldOrPropertyWithValue ("approximateTrimming" , true );
171- }
172-
173- @ Test
174- void convertXTrimOptionsWithExactTrimming () {
175-
176- XTrimOptions options = XTrimOptions .trim (TrimOptions .maxLen (100 ).exact ());
177-
178- XTrimParams params = StreamConverters .toXTrimParams (options );
179-
180- assertThat (params ).hasFieldOrPropertyWithValue ("exactTrimming" , true );
181- }
182-
183- @ Test
184- void convertXTrimOptionsWithLimit () {
185-
186- XTrimOptions options = XTrimOptions .trim (TrimOptions .maxLen (100 ).approximate ().limit (50 ));
187-
188- XTrimParams params = StreamConverters .toXTrimParams (options );
189-
190- assertThat (params ).hasFieldOrPropertyWithValue ("limit" , 50L );
191- }
192-
193- @ Test
194- void convertXTrimOptionsWithDeletionPolicy () {
195-
196- XTrimOptions options = XTrimOptions .trim (TrimOptions .maxLen (100 ).pendingReferences (StreamDeletionPolicy .keep ()));
197-
198- XTrimParams params = StreamConverters .toXTrimParams (options );
199-
200- assertThat (params ).hasFieldOrPropertyWithValue ("trimMode" ,
201- redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES );
202- }
96+ @ ParameterizedTest // GH-3232
97+ @ DisplayName ("ToXTrimParamsShouldConvertXTrimOptions" )
98+ @ MethodSource
99+ void toXTrimParamsShouldConvertXTrimOptions (XTrimOptions options , String paramsFieldToCheck , Object paramsFieldExpectedValue ) {
100+ assertThat (StreamConverters .toXTrimParams (options )).hasFieldOrPropertyWithValue (paramsFieldToCheck , paramsFieldExpectedValue );
203101 }
204102
205- @ Nested // GH-3232
206- class ToStreamDeletionPolicyShould {
207-
208- @ Test
209- void convertDefaultOptions () {
210-
211- XDelOptions options = XDelOptions .defaults ();
212-
213- redis .clients .jedis .args .StreamDeletionPolicy policy = StreamConverters .toStreamDeletionPolicy (options );
214-
215- assertThat (policy ).isEqualTo (redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES );
216- }
217-
218- @ Test
219- void convertKeepReferencesPolicy () {
220-
221- XDelOptions options = XDelOptions .deletionPolicy (StreamDeletionPolicy .keep ());
222-
223- redis .clients .jedis .args .StreamDeletionPolicy policy = StreamConverters .toStreamDeletionPolicy (options );
224-
225- assertThat (policy ).isEqualTo (redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES );
226- }
227-
228- @ Test
229- void convertDeleteReferencesPolicy () {
230-
231- XDelOptions options = XDelOptions .deletionPolicy (StreamDeletionPolicy .delete ());
232-
233- redis .clients .jedis .args .StreamDeletionPolicy policy = StreamConverters .toStreamDeletionPolicy (options );
234-
235- assertThat (policy ).isEqualTo (redis .clients .jedis .args .StreamDeletionPolicy .DELETE_REFERENCES );
236- }
237-
238- @ Test
239- void convertAcknowledgedPolicy () {
240-
241- XDelOptions options = XDelOptions .deletionPolicy (StreamDeletionPolicy .removeAcknowledged ());
103+ static Stream <Arguments > toXTrimParamsShouldConvertXTrimOptions () {
104+ return Stream .of (
105+ argumentSet ("withMaxLen" , XTrimOptions .trim (TrimOptions .maxLen (100 )), "maxLen" , 100L ),
106+ argumentSet ("withMinId" , XTrimOptions .trim (TrimOptions .minId (RecordId .of ("1234567890-0" ))), "minId" , "1234567890-0" ),
107+ argumentSet ("withApproximateTrimming" , XTrimOptions .trim (TrimOptions .maxLen (100 ).approximate ()), "approximateTrimming" , true ),
108+ argumentSet ("withExactTrimming" , XTrimOptions .trim (TrimOptions .maxLen (100 ).exact ()), "exactTrimming" , true ),
109+ argumentSet ("withLimit" , XTrimOptions .trim (TrimOptions .maxLen (100 ).approximate ().limit (50 )), "limit" , 50L ),
110+ argumentSet ("withDeletionPolicy" , XTrimOptions .trim (TrimOptions .maxLen (100 ).pendingReferences (StreamDeletionPolicy .keep ())), "trimMode" , redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES )
111+ );
112+ }
242113
243- redis .clients .jedis .args .StreamDeletionPolicy policy = StreamConverters .toStreamDeletionPolicy (options );
114+ @ ParameterizedTest // GH-3232
115+ @ DisplayName ("ToStreamDeletionPolicyShouldConvertXDelOptions" )
116+ @ MethodSource
117+ void toStreamDeletionPolicyShouldConvertXDelOptions (XDelOptions options , redis .clients .jedis .args .StreamDeletionPolicy expectedDeletionPolicy ) {
118+ assertThat (StreamConverters .toStreamDeletionPolicy (options )).isEqualTo (expectedDeletionPolicy );
119+ }
244120
245- assertThat (policy ).isEqualTo (redis .clients .jedis .args .StreamDeletionPolicy .ACKNOWLEDGED );
246- }
121+ static Stream <Arguments > toStreamDeletionPolicyShouldConvertXDelOptions () {
122+ return Stream .of (
123+ argumentSet ("withDefaultOptions" , XDelOptions .defaults (), redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES ),
124+ argumentSet ("withKeepReferencesPolicy" , XDelOptions .deletionPolicy (StreamDeletionPolicy .keep ()), redis .clients .jedis .args .StreamDeletionPolicy .KEEP_REFERENCES ),
125+ argumentSet ("withDeleteReferencesPolicy" , XDelOptions .deletionPolicy (StreamDeletionPolicy .delete ()), redis .clients .jedis .args .StreamDeletionPolicy .DELETE_REFERENCES ),
126+ argumentSet ("withRemoveAcknowledgedPolicy" , XDelOptions .deletionPolicy (StreamDeletionPolicy .removeAcknowledged ()), redis .clients .jedis .args .StreamDeletionPolicy .ACKNOWLEDGED )
127+ );
247128 }
129+
248130}
0 commit comments