Skip to content

Commit 3d7a77b

Browse files
committed
test: simplify LettuceConnectionUnitTests to verify option delegation (#3276)
1 parent 8156530 commit 3d7a77b

File tree

1 file changed

+12
-144
lines changed

1 file changed

+12
-144
lines changed

src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionUnitTests.java

Lines changed: 12 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,11 @@
5050
import org.springframework.dao.InvalidDataAccessResourceUsageException;
5151
import org.springframework.data.redis.connection.AbstractConnectionUnitTestBase;
5252
import org.springframework.data.redis.connection.RedisServerCommands.ShutdownOption;
53-
import org.springframework.data.redis.connection.RedisStreamCommands;
5453
import org.springframework.data.redis.connection.RedisStreamCommands.TrimOptions;
5554
import org.springframework.data.redis.connection.RedisStreamCommands.XAddOptions;
5655
import org.springframework.data.redis.connection.RedisStreamCommands.XClaimOptions;
5756
import org.springframework.data.redis.connection.RedisStreamCommands.XTrimOptions;
5857
import org.springframework.data.redis.connection.stream.MapRecord;
59-
import org.springframework.data.redis.connection.stream.RecordId;
6058
import org.springframework.data.redis.connection.zset.Tuple;
6159
import org.springframework.data.redis.core.Cursor;
6260
import org.springframework.data.redis.core.KeyScanOptions;
@@ -201,15 +199,25 @@ void translatesPipelineUnknownExceptions() {
201199
}
202200

203201
@Test // DATAREDIS-1122
204-
void xaddShouldHonorMaxlen() {
202+
void xaddShouldPassOptionsToConverter() {
205203

206204
MapRecord<byte[], byte[], byte[]> record = MapRecord.create("key".getBytes(), Collections.emptyMap());
207205

208206
connection.streamCommands().xAdd(record, XAddOptions.maxlen(100));
209207
ArgumentCaptor<XAddArgs> args = ArgumentCaptor.forClass(XAddArgs.class);
210208
verify(asyncCommandsMock).xadd(any(), args.capture(), anyMap());
211209

212-
assertThat(args.getValue()).extracting("maxlen").isEqualTo(100L);
210+
assertThat(args.getValue()).isNotNull();
211+
}
212+
213+
@Test // GH-3232
214+
void xtrimShouldPassOptionsToConverter() {
215+
216+
connection.streamCommands().xTrim("key".getBytes(), XTrimOptions.trim(TrimOptions.maxLen(100)));
217+
ArgumentCaptor<XTrimArgs> args = ArgumentCaptor.forClass(XTrimArgs.class);
218+
verify(asyncCommandsMock).xtrim(any(), args.capture());
219+
220+
assertThat(args.getValue()).isNotNull();
213221
}
214222

215223
@Test // DATAREDIS-1226
@@ -251,146 +259,6 @@ void executeShouldPassThruCustomCommands() {
251259
verify(asyncCommandsMock).dispatch(eq(command.getType()), eq(command.getOutput()), any(CommandArgs.class));
252260
}
253261

254-
@Test // GH-2047
255-
void xaddShouldHonorNoMkStream() {
256-
257-
MapRecord<byte[], byte[], byte[]> record = MapRecord.create("key".getBytes(), Collections.emptyMap());
258-
259-
connection.streamCommands().xAdd(record, XAddOptions.makeNoStream());
260-
ArgumentCaptor<XAddArgs> args = ArgumentCaptor.forClass(XAddArgs.class);
261-
verify(asyncCommandsMock).xadd(any(), args.capture(), anyMap());
262-
263-
assertThat(args.getValue()).extracting("nomkstream").isEqualTo(true);
264-
}
265-
266-
@Test // GH-3232
267-
void xaddShouldHonorMinId() {
268-
269-
MapRecord<byte[], byte[], byte[]> record = MapRecord.create("key".getBytes(), Collections.emptyMap());
270-
271-
XAddOptions options = XAddOptions.none();
272-
connection.streamCommands().xAdd(record, options.minId(RecordId.of("1234567890-0")));
273-
ArgumentCaptor<XAddArgs> args = ArgumentCaptor.forClass(XAddArgs.class);
274-
verify(asyncCommandsMock).xadd(any(), args.capture(), anyMap());
275-
276-
assertThat(ReflectionTestUtils.getField(args.getValue(), "minid")).isEqualTo("1234567890-0");
277-
}
278-
279-
@Test // GH-3232
280-
void xaddShouldHonorLimit() {
281-
282-
MapRecord<byte[], byte[], byte[]> record = MapRecord.create("key".getBytes(), Collections.emptyMap());
283-
284-
connection.streamCommands().xAdd(record, XAddOptions.trim(TrimOptions.maxLen(100).approximate().limit(50)));
285-
ArgumentCaptor<XAddArgs> args = ArgumentCaptor.forClass(XAddArgs.class);
286-
verify(asyncCommandsMock).xadd(any(), args.capture(), anyMap());
287-
288-
assertThat(args.getValue()).extracting("limit").isEqualTo(50L);
289-
}
290-
291-
@Test // GH-3232
292-
void xaddShouldHonorExactTrimming() {
293-
294-
MapRecord<byte[], byte[], byte[]> record = MapRecord.create("key".getBytes(), Collections.emptyMap());
295-
296-
connection.streamCommands().xAdd(record, XAddOptions.trim(TrimOptions.maxLen(100).exact()));
297-
ArgumentCaptor<XAddArgs> args = ArgumentCaptor.forClass(XAddArgs.class);
298-
verify(asyncCommandsMock).xadd(any(), args.capture(), anyMap());
299-
300-
assertThat(args.getValue()).extracting("exactTrimming").isEqualTo(true);
301-
}
302-
303-
@Test // GH-3232
304-
void xaddShouldHonorApproximateTrimming() {
305-
306-
MapRecord<byte[], byte[], byte[]> record = MapRecord.create("key".getBytes(), Collections.emptyMap());
307-
308-
connection.streamCommands().xAdd(record, XAddOptions.maxlen(100).approximateTrimming(true));
309-
ArgumentCaptor<XAddArgs> args = ArgumentCaptor.forClass(XAddArgs.class);
310-
verify(asyncCommandsMock).xadd(any(), args.capture(), anyMap());
311-
312-
assertThat(args.getValue()).extracting("approximateTrimming").isEqualTo(true);
313-
}
314-
315-
@Test // GH-3232
316-
void xaddShouldHonorDeletionPolicy() {
317-
318-
MapRecord<byte[], byte[], byte[]> record = MapRecord.create("key".getBytes(), Collections.emptyMap());
319-
320-
connection.streamCommands().xAdd(record,
321-
XAddOptions.trim(TrimOptions.maxLen(100).deletionPolicy(RedisStreamCommands.StreamDeletionPolicy.keep())));
322-
ArgumentCaptor<XAddArgs> args = ArgumentCaptor.forClass(XAddArgs.class);
323-
verify(asyncCommandsMock).xadd(any(), args.capture(), anyMap());
324-
325-
assertThat(args.getValue()).extracting("trimmingMode").isEqualTo(io.lettuce.core.StreamDeletionPolicy.KEEP_REFERENCES);
326-
}
327-
328-
@Test // GH-3232
329-
void xtrimShouldHonorMaxlen() {
330-
331-
connection.streamCommands().xTrim("key".getBytes(), XTrimOptions.trim(TrimOptions.maxLen(100)));
332-
ArgumentCaptor<XTrimArgs> args = ArgumentCaptor.forClass(XTrimArgs.class);
333-
verify(asyncCommandsMock).xtrim(any(), args.capture());
334-
335-
assertThat(args.getValue()).extracting("maxlen").isEqualTo(100L);
336-
}
337-
338-
@Test // GH-3232
339-
void xtrimShouldHonorMinId() {
340-
341-
connection.streamCommands().xTrim("key".getBytes(),
342-
XTrimOptions.trim(TrimOptions.minId(RecordId.of("1234567890-0"))));
343-
ArgumentCaptor<XTrimArgs> args = ArgumentCaptor.forClass(XTrimArgs.class);
344-
verify(asyncCommandsMock).xtrim(any(), args.capture());
345-
346-
assertThat(ReflectionTestUtils.getField(args.getValue(), "minId")).isEqualTo("1234567890-0");
347-
}
348-
349-
@Test // GH-3232
350-
void xtrimShouldHonorApproximateTrimming() {
351-
352-
connection.streamCommands().xTrim("key".getBytes(),
353-
XTrimOptions.trim(TrimOptions.maxLen(100).approximate()));
354-
ArgumentCaptor<XTrimArgs> args = ArgumentCaptor.forClass(XTrimArgs.class);
355-
verify(asyncCommandsMock).xtrim(any(), args.capture());
356-
357-
assertThat(args.getValue()).extracting("approximateTrimming").isEqualTo(true);
358-
}
359-
360-
@Test // GH-3232
361-
void xtrimShouldHonorExactTrimming() {
362-
363-
connection.streamCommands().xTrim("key".getBytes(),
364-
XTrimOptions.trim(TrimOptions.maxLen(100).exact()));
365-
ArgumentCaptor<XTrimArgs> args = ArgumentCaptor.forClass(XTrimArgs.class);
366-
verify(asyncCommandsMock).xtrim(any(), args.capture());
367-
368-
assertThat(args.getValue()).extracting("exactTrimming").isEqualTo(true);
369-
}
370-
371-
@Test // GH-3232
372-
void xtrimShouldHonorLimit() {
373-
374-
connection.streamCommands().xTrim("key".getBytes(),
375-
XTrimOptions.trim(TrimOptions.maxLen(100).approximate().limit(50)));
376-
ArgumentCaptor<XTrimArgs> args = ArgumentCaptor.forClass(XTrimArgs.class);
377-
verify(asyncCommandsMock).xtrim(any(), args.capture());
378-
379-
assertThat(args.getValue()).extracting("limit").isEqualTo(50L);
380-
}
381-
382-
@Test // GH-3232
383-
void xtrimShouldHonorDeletionPolicy() {
384-
385-
connection.streamCommands().xTrim("key".getBytes(), XTrimOptions.trim(TrimOptions.maxLen(100)
386-
.deletionPolicy(RedisStreamCommands.StreamDeletionPolicy.keep())));
387-
ArgumentCaptor<XTrimArgs> args = ArgumentCaptor.forClass(XTrimArgs.class);
388-
verify(asyncCommandsMock).xtrim(any(), args.capture());
389-
390-
assertThat(args.getValue()).extracting("trimmingMode")
391-
.isEqualTo(io.lettuce.core.StreamDeletionPolicy.KEEP_REFERENCES);
392-
}
393-
394262
@Test // GH-2796
395263
void scanShouldOperateUponUnsigned64BitCursorId() {
396264

0 commit comments

Comments
 (0)