Skip to content

Commit 9f3b801

Browse files
committed
Use ParameterizedTest for StreamConvertersUnitTest
Signed-off-by: Chris Bono <chris.bono@broadcom.com>
1 parent d49b113 commit 9f3b801

File tree

1 file changed

+49
-167
lines changed

1 file changed

+49
-167
lines changed

src/test/java/org/springframework/data/redis/connection/jedis/StreamConvertersUnitTest.java

Lines changed: 49 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,22 @@
1616
package org.springframework.data.redis.connection.jedis;
1717

1818
import static org.assertj.core.api.Assertions.*;
19+
import static org.junit.jupiter.params.provider.Arguments.*;
1920

2021
import redis.clients.jedis.params.XAddParams;
2122
import redis.clients.jedis.params.XPendingParams;
22-
import redis.clients.jedis.params.XTrimParams;
2323

2424
import java.time.Duration;
2525
import java.time.temporal.ChronoUnit;
26+
import java.util.stream.Stream;
2627

2728
import org.assertj.core.api.InstanceOfAssertFactories;
29+
import org.junit.jupiter.api.DisplayName;
2830
import org.junit.jupiter.api.Nested;
2931
import 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

3136
import org.springframework.data.redis.connection.RedisStreamCommands.StreamDeletionPolicy;
3237
import 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

Comments
 (0)