@@ -523,14 +523,22 @@ public void xack() {
523
523
524
524
@ Test
525
525
public void xpendingWithParams () {
526
+ final String stream = "xpendeing-stream" ;
527
+
528
+ assertEquals ("OK" , jedis .xgroupCreate (stream , "xpendeing-group" , null , true ));
529
+
530
+ // Get the summary from empty stream
531
+ StreamPendingSummary emptySummary = jedis .xpending (stream , "xpendeing-group" );
532
+ assertEquals (0 , emptySummary .getTotal ());
533
+ assertNull (emptySummary .getMinId ());
534
+ assertNull (emptySummary .getMaxId ());
535
+ assertNull (emptySummary .getConsumerMessageCount ());
536
+
526
537
Map <String , String > map = new HashMap <>();
527
538
map .put ("f1" , "v1" );
528
- StreamEntryID id1 = jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
539
+ StreamEntryID id1 = jedis .xadd (stream , (StreamEntryID ) null , map );
529
540
530
- assertEquals ("OK" , jedis .xgroupCreate ("xpendeing-stream" , "xpendeing-group" , null , false ));
531
-
532
- Map <String , StreamEntryID > streamQeury1 = singletonMap (
533
- "xpendeing-stream" , StreamEntryID .UNRECEIVED_ENTRY );
541
+ Map <String , StreamEntryID > streamQeury1 = singletonMap (stream , StreamEntryID .UNRECEIVED_ENTRY );
534
542
535
543
// Read the event from Stream put it on pending
536
544
List <Entry <String , List <StreamEntry >>> range = jedis .xreadGroup ("xpendeing-group" ,
@@ -539,8 +547,14 @@ public void xpendingWithParams() {
539
547
assertEquals (1 , range .get (0 ).getValue ().size ());
540
548
assertEquals (map , range .get (0 ).getValue ().get (0 ).getFields ());
541
549
550
+ // Get the summary about the pending messages
551
+ StreamPendingSummary pendingSummary = jedis .xpending (stream , "xpendeing-group" );
552
+ assertEquals (1 , pendingSummary .getTotal ());
553
+ assertEquals (id1 , pendingSummary .getMinId ());
554
+ assertEquals (1l , pendingSummary .getConsumerMessageCount ().get ("xpendeing-consumer" ).longValue ());
555
+
542
556
// Get the pending event
543
- List <StreamPendingEntry > pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
557
+ List <StreamPendingEntry > pendingRange = jedis .xpending (stream , "xpendeing-group" ,
544
558
new XPendingParams ().count (3 ).consumer ("xpendeing-consumer" ));
545
559
assertEquals (1 , pendingRange .size ());
546
560
assertEquals (id1 , pendingRange .get (0 ).getID ());
@@ -549,41 +563,41 @@ public void xpendingWithParams() {
549
563
assertTrue (pendingRange .get (0 ).toString ().contains ("xpendeing-consumer" ));
550
564
551
565
// Without consumer
552
- pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" , new XPendingParams ().count (3 ));
566
+ pendingRange = jedis .xpending (stream , "xpendeing-group" , new XPendingParams ().count (3 ));
553
567
assertEquals (1 , pendingRange .size ());
554
568
assertEquals (id1 , pendingRange .get (0 ).getID ());
555
569
assertEquals (1 , pendingRange .get (0 ).getDeliveredTimes ());
556
570
assertEquals ("xpendeing-consumer" , pendingRange .get (0 ).getConsumerName ());
557
571
558
572
// with idle
559
- pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
573
+ pendingRange = jedis .xpending (stream , "xpendeing-group" ,
560
574
new XPendingParams ().idle (Duration .ofMinutes (1 ).toMillis ()).count (3 ));
561
575
assertEquals (0 , pendingRange .size ());
562
576
}
563
577
564
578
@ Test
565
579
public void xpendingRange () {
580
+ final String stream = "xpendeing-stream" ;
566
581
Map <String , String > map = new HashMap <>();
567
582
map .put ("foo" , "bar" );
568
- StreamEntryID m1 = jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
569
- StreamEntryID m2 = jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
570
- jedis .xgroupCreate ("xpendeing- stream" , "xpendeing-group" , null , false );
583
+ StreamEntryID m1 = jedis .xadd (stream , (StreamEntryID ) null , map );
584
+ StreamEntryID m2 = jedis .xadd (stream , (StreamEntryID ) null , map );
585
+ jedis .xgroupCreate (stream , "xpendeing-group" , null , false );
571
586
572
587
// read 1 message from the group with each consumer
573
- Map <String , StreamEntryID > streamQeury = singletonMap (
574
- "xpendeing-stream" , StreamEntryID .UNRECEIVED_ENTRY );
588
+ Map <String , StreamEntryID > streamQeury = singletonMap (stream , StreamEntryID .UNRECEIVED_ENTRY );
575
589
jedis .xreadGroup ("xpendeing-group" , "consumer1" , XReadGroupParams .xReadGroupParams ().count (1 ), streamQeury );
576
590
jedis .xreadGroup ("xpendeing-group" , "consumer2" , XReadGroupParams .xReadGroupParams ().count (1 ), streamQeury );
577
591
578
- List <StreamPendingEntry > response = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
592
+ List <StreamPendingEntry > response = jedis .xpending (stream , "xpendeing-group" ,
579
593
XPendingParams .xPendingParams ("(0" , "+" , 5 ));
580
594
assertEquals (2 , response .size ());
581
595
assertEquals (m1 , response .get (0 ).getID ());
582
596
assertEquals ("consumer1" , response .get (0 ).getConsumerName ());
583
597
assertEquals (m2 , response .get (1 ).getID ());
584
598
assertEquals ("consumer2" , response .get (1 ).getConsumerName ());
585
599
586
- response = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
600
+ response = jedis .xpending (stream , "xpendeing-group" ,
587
601
XPendingParams .xPendingParams (StreamEntryID .MINIMUM_ID , StreamEntryID .MAXIMUM_ID , 5 ));
588
602
assertEquals (2 , response .size ());
589
603
assertEquals (m1 , response .get (0 ).getID ());
@@ -594,18 +608,19 @@ public void xpendingRange() {
594
608
595
609
@ Test
596
610
public void xclaimWithParams () {
611
+ final String stream = "xpendeing-stream" ;
597
612
Map <String , String > map = new HashMap <>();
598
613
map .put ("f1" , "v1" );
599
- jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
614
+ jedis .xadd (stream , (StreamEntryID ) null , map );
600
615
601
- assertEquals ("OK" , jedis .xgroupCreate ("xpendeing- stream" , "xpendeing-group" , null , false ));
616
+ assertEquals ("OK" , jedis .xgroupCreate (stream , "xpendeing-group" , null , false ));
602
617
603
618
// Read the event from Stream put it on pending
604
619
jedis .xreadGroup ("xpendeing-group" , "xpendeing-consumer" , XReadGroupParams .xReadGroupParams ().count (1 ).block (1 ),
605
- singletonMap ("xpendeing- stream" , StreamEntryID .UNRECEIVED_ENTRY ));
620
+ singletonMap (stream , StreamEntryID .UNRECEIVED_ENTRY ));
606
621
607
622
// Get the pending event
608
- List <StreamPendingEntry > pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
623
+ List <StreamPendingEntry > pendingRange = jedis .xpending (stream , "xpendeing-group" ,
609
624
null , null , 3 , "xpendeing-consumer" );
610
625
// Sleep for 100ms so we can claim events pending for more than 50ms
611
626
try {
@@ -614,7 +629,7 @@ public void xclaimWithParams() {
614
629
e .printStackTrace ();
615
630
}
616
631
617
- List <StreamEntry > streamEntrys = jedis .xclaim ("xpendeing- stream" , "xpendeing-group" ,
632
+ List <StreamEntry > streamEntrys = jedis .xclaim (stream , "xpendeing-group" ,
618
633
"xpendeing-consumer2" , 50 , XClaimParams .xClaimParams ().idle (0 ).retryCount (0 ),
619
634
pendingRange .get (0 ).getID ());
620
635
assertEquals (1 , streamEntrys .size ());
@@ -624,18 +639,19 @@ public void xclaimWithParams() {
624
639
625
640
@ Test
626
641
public void xclaimJustId () {
642
+ final String stream = "xpendeing-stream" ;
627
643
Map <String , String > map = new HashMap <>();
628
644
map .put ("f1" , "v1" );
629
- jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
645
+ jedis .xadd (stream , (StreamEntryID ) null , map );
630
646
631
- assertEquals ("OK" , jedis .xgroupCreate ("xpendeing- stream" , "xpendeing-group" , null , false ));
647
+ assertEquals ("OK" , jedis .xgroupCreate (stream , "xpendeing-group" , null , false ));
632
648
633
649
// Read the event from Stream put it on pending
634
650
jedis .xreadGroup ("xpendeing-group" , "xpendeing-consumer" , XReadGroupParams .xReadGroupParams ().count (1 ).block (1 ),
635
- singletonMap ("xpendeing- stream" , StreamEntryID .UNRECEIVED_ENTRY ));
651
+ singletonMap (stream , StreamEntryID .UNRECEIVED_ENTRY ));
636
652
637
653
// Get the pending event
638
- List <StreamPendingEntry > pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
654
+ List <StreamPendingEntry > pendingRange = jedis .xpending (stream , "xpendeing-group" ,
639
655
null , null , 3 , "xpendeing-consumer" );
640
656
// Sleep for 100ms so we can claim events pending for more than 50ms
641
657
try {
@@ -644,7 +660,7 @@ public void xclaimJustId() {
644
660
e .printStackTrace ();
645
661
}
646
662
647
- List <StreamEntryID > streamEntryIDS = jedis .xclaimJustId ("xpendeing- stream" , "xpendeing-group" ,
663
+ List <StreamEntryID > streamEntryIDS = jedis .xclaimJustId (stream , "xpendeing-group" ,
648
664
"xpendeing-consumer2" , 50 , XClaimParams .xClaimParams ().idle (0 ).retryCount (0 ),
649
665
pendingRange .get (0 ).getID ());
650
666
assertEquals (1 , streamEntryIDS .size ());
0 commit comments