@@ -1511,6 +1511,24 @@ public void StreamReadEmptyStreams()
1511
1511
Assert . Equal ( 0 , len2 ) ;
1512
1512
}
1513
1513
1514
+ [ Fact ]
1515
+ public void StreamReadLastMessage ( )
1516
+ {
1517
+ using var conn = Create ( require : RedisFeatures . v7_4_0_rc1 ) ;
1518
+ var db = conn . GetDatabase ( ) ;
1519
+ var key1 = Me ( ) ;
1520
+
1521
+ // Read the entire stream from the beginning.
1522
+ db . StreamRead ( key1 , "0-0" ) ;
1523
+ db . StreamAdd ( key1 , "field2" , "value2" ) ;
1524
+ db . StreamAdd ( key1 , "fieldLast" , "valueLast" ) ;
1525
+ var entries = db . StreamRead ( key1 , "+" ) ;
1526
+
1527
+ Assert . NotNull ( entries ) ;
1528
+ Assert . True ( entries . Length > 0 ) ;
1529
+ Assert . Equal ( new [ ] { new NameValueEntry ( "fieldLast" , "valueLast" ) } , entries [ 0 ] . Values ) ;
1530
+ }
1531
+
1514
1532
[ Fact ]
1515
1533
public void StreamReadExpectedExceptionInvalidCountMultipleStream ( )
1516
1534
{
@@ -1590,6 +1608,49 @@ public void StreamReadMultipleStreams()
1590
1608
Assert . Equal ( id4 , streams [ 1 ] . Entries [ 1 ] . Id ) ;
1591
1609
}
1592
1610
1611
+ [ Fact ]
1612
+ public void StreamReadMultipleStreamsLastMessage ( )
1613
+ {
1614
+ using var conn = Create ( require : RedisFeatures . v7_4_0_rc1 ) ;
1615
+
1616
+ var db = conn . GetDatabase ( ) ;
1617
+ var key1 = Me ( ) + "a" ;
1618
+ var key2 = Me ( ) + "b" ;
1619
+
1620
+ var id1 = db . StreamAdd ( key1 , "field1" , "value1" ) ;
1621
+ var id2 = db . StreamAdd ( key1 , "field2" , "value2" ) ;
1622
+ var id3 = db . StreamAdd ( key2 , "field3" , "value3" ) ;
1623
+ var id4 = db . StreamAdd ( key2 , "field4" , "value4" ) ;
1624
+
1625
+ var streamList = new [ ] { new StreamPosition ( key1 , "0-0" ) , new StreamPosition ( key2 , "0-0" ) } ;
1626
+ db . StreamRead ( streamList ) ;
1627
+
1628
+ var streams = db . StreamRead ( streamList ) ;
1629
+
1630
+ db . StreamAdd ( key1 , "field5" , "value5" ) ;
1631
+ db . StreamAdd ( key1 , "field6" , "value6" ) ;
1632
+ db . StreamAdd ( key2 , "field7" , "value7" ) ;
1633
+ db . StreamAdd ( key2 , "field8" , "value8" ) ;
1634
+
1635
+ streamList = new [ ] { new StreamPosition ( key1 , "+" ) , new StreamPosition ( key2 , "+" ) } ;
1636
+
1637
+ streams = db . StreamRead ( streamList ) ;
1638
+
1639
+ Assert . NotNull ( streams ) ;
1640
+ Assert . True ( streams . Length == 2 ) ;
1641
+
1642
+ var stream1 = streams . Where ( e => e . Key == key1 ) . First ( ) ;
1643
+ Assert . NotNull ( stream1 . Entries ) ;
1644
+ Assert . True ( stream1 . Entries . Length > 0 ) ;
1645
+ Assert . Equal ( new [ ] { new NameValueEntry ( "field6" , "value6" ) } , stream1 . Entries [ 0 ] . Values ) ;
1646
+
1647
+ var stream2 = streams . Where ( e => e . Key == key2 ) . First ( ) ;
1648
+ Assert . NotNull ( stream2 . Entries ) ;
1649
+ Assert . True ( stream2 . Entries . Length > 0 ) ;
1650
+ Assert . Equal ( new [ ] { new NameValueEntry ( "field8" , "value8" ) } , stream2 . Entries [ 0 ] . Values ) ;
1651
+ }
1652
+
1653
+
1593
1654
[ Fact ]
1594
1655
public void StreamReadMultipleStreamsWithCount ( )
1595
1656
{
0 commit comments