@@ -1511,6 +1511,24 @@ public void StreamReadEmptyStreams()
15111511 Assert . Equal ( 0 , len2 ) ;
15121512 }
15131513
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+
15141532 [ Fact ]
15151533 public void StreamReadExpectedExceptionInvalidCountMultipleStream ( )
15161534 {
@@ -1590,6 +1608,49 @@ public void StreamReadMultipleStreams()
15901608 Assert . Equal ( id4 , streams [ 1 ] . Entries [ 1 ] . Id ) ;
15911609 }
15921610
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+
15931654 [ Fact ]
15941655 public void StreamReadMultipleStreamsWithCount ( )
15951656 {
0 commit comments