35
35
import org .junit .jupiter .api .Disabled ;
36
36
import org .junit .jupiter .api .Test ;
37
37
38
+ import org .springframework .beans .BeanUtils ;
38
39
import org .springframework .context .support .ClassPathXmlApplicationContext ;
39
40
import org .springframework .data .redis .connection .RedisConnectionFactory ;
40
41
import org .springframework .data .redis .core .StringRedisTemplate ;
41
42
import org .springframework .data .redis .serializer .GenericJackson2JsonRedisSerializer ;
42
43
import org .springframework .integration .channel .DirectChannel ;
43
44
import org .springframework .integration .channel .NullChannel ;
44
45
import org .springframework .integration .channel .QueueChannel ;
46
+ import org .springframework .integration .handler .DelayHandler ;
45
47
import org .springframework .integration .history .MessageHistory ;
46
48
import org .springframework .integration .message .AdviceMessage ;
47
49
import org .springframework .integration .redis .RedisContainerTest ;
64
66
* @author Artem Bilan
65
67
* @author Gary Russell
66
68
* @author Artem Vozhdayenko
69
+ * @author Youbin Wu
67
70
*/
68
71
class RedisMessageGroupStoreTests implements RedisContainerTest {
69
72
@@ -400,11 +403,13 @@ void testJsonSerialization() {
400
403
Message <?> mutableMessage = new MutableMessage <>(UUID .randomUUID ());
401
404
Message <?> adviceMessage = new AdviceMessage <>("foo" , genericMessage );
402
405
ErrorMessage errorMessage = new ErrorMessage (new RuntimeException ("test exception" ), mutableMessage );
406
+ var delayedMessageWrapperConstructor = BeanUtils .getResolvableConstructor (DelayHandler .DelayedMessageWrapper .class );
407
+ Message <?> delayMessage = new GenericMessage <>(BeanUtils .instantiateClass (delayedMessageWrapperConstructor , genericMessage , System .currentTimeMillis ()));
403
408
404
- store .addMessagesToGroup (this .groupId , genericMessage , mutableMessage , adviceMessage , errorMessage );
409
+ store .addMessagesToGroup (this .groupId , genericMessage , mutableMessage , adviceMessage , errorMessage , delayMessage );
405
410
406
411
MessageGroup messageGroup = store .getMessageGroup (this .groupId );
407
- assertThat (messageGroup .size ()).isEqualTo (4 );
412
+ assertThat (messageGroup .size ()).isEqualTo (5 );
408
413
List <Message <?>> messages = new ArrayList <>(messageGroup .getMessages ());
409
414
assertThat (messages .get (0 )).isEqualTo (genericMessage );
410
415
assertThat (messages .get (0 ).getHeaders ()).containsKeys (MessageHistory .HEADER_NAME );
@@ -417,6 +422,7 @@ void testJsonSerialization() {
417
422
.isEqualTo (errorMessage .getOriginalMessage ());
418
423
assertThat (((ErrorMessage ) errorMessageResult ).getPayload ().getMessage ())
419
424
.isEqualTo (errorMessage .getPayload ().getMessage ());
425
+ assertThat (messages .get (4 )).isEqualTo (delayMessage );
420
426
421
427
Message <Foo > fooMessage = new GenericMessage <>(new Foo ("foo" ));
422
428
try {
0 commit comments