3535import org .junit .jupiter .api .Disabled ;
3636import org .junit .jupiter .api .Test ;
3737
38+ import org .springframework .beans .BeanUtils ;
3839import org .springframework .context .support .ClassPathXmlApplicationContext ;
3940import org .springframework .data .redis .connection .RedisConnectionFactory ;
4041import org .springframework .data .redis .core .StringRedisTemplate ;
4142import org .springframework .data .redis .serializer .GenericJackson2JsonRedisSerializer ;
4243import org .springframework .integration .channel .DirectChannel ;
4344import org .springframework .integration .channel .NullChannel ;
4445import org .springframework .integration .channel .QueueChannel ;
46+ import org .springframework .integration .handler .DelayHandler ;
4547import org .springframework .integration .history .MessageHistory ;
4648import org .springframework .integration .message .AdviceMessage ;
4749import org .springframework .integration .redis .RedisContainerTest ;
6466 * @author Artem Bilan
6567 * @author Gary Russell
6668 * @author Artem Vozhdayenko
69+ * @author Youbin Wu
6770 */
6871class RedisMessageGroupStoreTests implements RedisContainerTest {
6972
@@ -400,11 +403,13 @@ void testJsonSerialization() {
400403 Message <?> mutableMessage = new MutableMessage <>(UUID .randomUUID ());
401404 Message <?> adviceMessage = new AdviceMessage <>("foo" , genericMessage );
402405 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 ()));
403408
404- store .addMessagesToGroup (this .groupId , genericMessage , mutableMessage , adviceMessage , errorMessage );
409+ store .addMessagesToGroup (this .groupId , genericMessage , mutableMessage , adviceMessage , errorMessage , delayMessage );
405410
406411 MessageGroup messageGroup = store .getMessageGroup (this .groupId );
407- assertThat (messageGroup .size ()).isEqualTo (4 );
412+ assertThat (messageGroup .size ()).isEqualTo (5 );
408413 List <Message <?>> messages = new ArrayList <>(messageGroup .getMessages ());
409414 assertThat (messages .get (0 )).isEqualTo (genericMessage );
410415 assertThat (messages .get (0 ).getHeaders ()).containsKeys (MessageHistory .HEADER_NAME );
@@ -417,6 +422,7 @@ void testJsonSerialization() {
417422 .isEqualTo (errorMessage .getOriginalMessage ());
418423 assertThat (((ErrorMessage ) errorMessageResult ).getPayload ().getMessage ())
419424 .isEqualTo (errorMessage .getPayload ().getMessage ());
425+ assertThat (messages .get (4 )).isEqualTo (delayMessage );
420426
421427 Message <Foo > fooMessage = new GenericMessage <>(new Foo ("foo" ));
422428 try {
0 commit comments