@@ -960,6 +960,46 @@ public async Task When_dispose_store_then_should_dispose_all_stream_subscription
960960 }
961961 }
962962
963+ [ Fact , Trait ( "Category" , "Subscriptions" ) ]
964+ public async Task When_subscribe_to_stream_and_append_messages_then_should_receive_message ( )
965+ {
966+ using ( var fixture = GetFixture ( ) )
967+ {
968+ using ( var store = await fixture . GetStreamStore ( ) )
969+ {
970+ string streamId1 = "stream-1" ;
971+ string streamId2 = "stream-2" ;
972+ var received = new AsyncAutoResetEvent ( ) ;
973+ string streamIdReceived = null ;
974+ using ( store . SubscribeToStream (
975+ streamId1 ,
976+ null ,
977+ ( _ , message , ct ) =>
978+ {
979+ streamIdReceived = message . StreamId ;
980+ received . Set ( ) ;
981+ return Task . CompletedTask ;
982+ } ) )
983+ {
984+ await AppendMessages ( store , streamId1 , 1 ) ;
985+ await AppendMessages ( store , streamId2 , 1 ) ;
986+ await received . WaitAsync ( ) . WithTimeout ( ) ;
987+ streamIdReceived . ShouldBe ( streamId1 ) ;
988+
989+ await AppendMessages ( store , streamId1 , 1 ) ;
990+ await AppendMessages ( store , streamId2 , 1 ) ;
991+ await received . WaitAsync ( ) . WithTimeout ( ) ;
992+ streamIdReceived . ShouldBe ( streamId1 ) ;
993+
994+ await AppendMessages ( store , streamId1 , 1 ) ;
995+ await AppendMessages ( store , streamId2 , 1 ) ;
996+ await received . WaitAsync ( ) . WithTimeout ( ) ;
997+ streamIdReceived . ShouldBe ( streamId1 ) ;
998+ }
999+ }
1000+ }
1001+ }
1002+
9631003 private static async Task AppendMessages ( IStreamStore streamStore , string streamId , int numberOfEvents )
9641004 {
9651005 for ( int i = 0 ; i < numberOfEvents ; i ++ )
0 commit comments