@@ -590,11 +590,7 @@ await db.Execute(
590590 Thread . Sleep ( 200 ) ;
591591 Assert . Equal ( 2 , callCount ) ;
592592
593- // Cancel query
594593 subscription . Dispose ( ) ;
595- Thread . Sleep ( 200 ) ;
596-
597- // Shouldn't call OnResult, hence callCount still == 2
598594 await db . Execute (
599595 "insert into assets(id, description, make) values (?, ?, ?)" ,
600596 [ Guid . NewGuid ( ) . ToString ( ) , "some desc" , "some make" ]
@@ -617,34 +613,62 @@ public async void WatchDisposableCustomTokenTest()
617613 {
618614 Signal = customTokenSource . Token
619615 } ) ;
620- Thread . Sleep ( 500 ) ;
621-
622- // Initial OnResult call
616+ Thread . Sleep ( 200 ) ;
623617 Assert . Equal ( 1 , callCount ) ;
624618
625619 await db . Execute (
626620 "insert into assets(id, description, make) values (?, ?, ?)" ,
627621 [ Guid . NewGuid ( ) . ToString ( ) , "some desc" , "some make" ]
628622 ) ;
629- Thread . Sleep ( 500 ) ;
630-
631- // Calls OnResult again
623+ Thread . Sleep ( 200 ) ;
632624 Assert . Equal ( 2 , callCount ) ;
633625
634626 customTokenSource . Cancel ( ) ;
635627 await db . Execute (
636628 "insert into assets(id, description, make) values (?, ?, ?)" ,
637629 [ Guid . NewGuid ( ) . ToString ( ) , "some desc" , "some make" ]
638630 ) ;
639- Thread . Sleep ( 500 ) ;
640-
641- // Shouldn't call OnResult, hence same number
642- Assert . Equal ( 2 , callCount ) ;
631+ Thread . Sleep ( 200 ) ;
632+ Assert . Equal ( 2 , callCount ) ; // Same value
643633 }
644634
645635 [ Fact ( Timeout = 2000 ) ]
646636 public async void WatchMultipleCancelledTest ( )
647637 {
638+ int callCount = 0 ;
639+ var watchHandlerFactory = ( ) => new WatchHandler < IdResult >
640+ {
641+ OnResult = ( result ) => callCount ++ ,
642+ OnError = ( ex ) => Assert . Fail ( "An exception occurred: " + ex . ToString ( ) ) ,
643+ } ;
644+
645+ var query1 = await db . Watch ( "select id from assets" , null , watchHandlerFactory ( ) ) ;
646+ var query2 = await db . Watch ( "select id from customers" , null , watchHandlerFactory ( ) ) ;
647+ Thread . Sleep ( 200 ) ;
648+ Assert . Equal ( 2 , callCount ) ;
649+
650+ await db . Execute (
651+ "insert into assets(id, description, make) values (?, ?, ?)" ,
652+ [ Guid . NewGuid ( ) . ToString ( ) , "some desc" , "some make" ]
653+ ) ;
654+ await db . Execute (
655+ "insert into assets(id, description, make) values (?, ?, ?)" ,
656+ [ Guid . NewGuid ( ) . ToString ( ) , "some desc" , "some make" ]
657+ ) ;
658+ Thread . Sleep ( 200 ) ;
659+ Assert . Equal ( 4 , callCount ) ;
648660
661+ db . UnsubscribeAllQueries ( ) ;
662+
663+ await db . Execute (
664+ "insert into assets(id, description, make) values (?, ?, ?)" ,
665+ [ Guid . NewGuid ( ) . ToString ( ) , "some desc" , "some make" ]
666+ ) ;
667+ await db . Execute (
668+ "insert into assets(id, description, make) values (?, ?, ?)" ,
669+ [ Guid . NewGuid ( ) . ToString ( ) , "some desc" , "some make" ]
670+ ) ;
671+ Thread . Sleep ( 200 ) ;
672+ Assert . Equal ( 4 , callCount ) ;
649673 }
650674}
0 commit comments