@@ -417,11 +417,12 @@ public async Task Should_query_all_reverse_by_names(int commits, int count)
417417 [ InlineData ( 5 , 30 ) ]
418418 [ InlineData ( 5 , 300 ) ]
419419 [ InlineData ( 5 , 3000 ) ]
420- public async Task Should_query_all_reverse_by_filter ( int commits , int count )
420+ public async Task Should_query_all_reverse_by_prefix ( int commits , int count )
421421 {
422422 var sut = await CreateSutAsync ( ) ;
423423
424- var streamName = $ "test-{ Guid . NewGuid ( ) } -suffix";
424+ var randomPart = Guid . NewGuid ( ) ;
425+ var streamName = $ "test-{ randomPart } -suffix";
425426 var streamFilter = StreamFilter . Prefix ( streamName [ ..^ 7 ] , "invalid" ) ;
426427
427428 var eventsWritten = await AppendEventsAsync ( sut , streamName , count , commits ) ;
@@ -436,6 +437,30 @@ public async Task Should_query_all_reverse_by_filter(int commits, int count)
436437 }
437438 }
438439
440+ [ Theory ]
441+ [ InlineData ( 5 , 30 ) ]
442+ [ InlineData ( 5 , 300 ) ]
443+ [ InlineData ( 5 , 3000 ) ]
444+ public async Task Should_query_all_reverse_by_wildcard_prefix ( int commits , int count )
445+ {
446+ var sut = await CreateSutAsync ( ) ;
447+
448+ var randomPart = Guid . NewGuid ( ) ;
449+ var streamName = $ "test-{ randomPart } -suffix";
450+ var streamFilter = StreamFilter . Prefix ( $ "%-{ randomPart } ", "invalid" ) ;
451+
452+ var eventsWritten = await AppendEventsAsync ( sut , streamName , count , commits ) ;
453+ var eventsStored = eventsWritten . Select ( ( x , i ) => new StoredEvent ( streamName , "Position" , i , x ) ) . ToArray ( ) ;
454+
455+ for ( var take = 0 ; take < count ; take += count / 10 )
456+ {
457+ var eventsExpected = eventsStored . Reverse ( ) . Take ( take ) . ToArray ( ) ;
458+ var eventsQueried = await sut . QueryAllReverseAsync ( streamFilter , default , take , ct ) . ToArrayAsync ( ) ;
459+
460+ ShouldBeEquivalentTo ( eventsQueried , eventsExpected ) ;
461+ }
462+ }
463+
439464 [ Theory ]
440465 [ InlineData ( 5 , 30 ) ]
441466 [ InlineData ( 5 , 300 ) ]
0 commit comments