@@ -22,16 +22,17 @@ public void HeartbeatIntervalIsOneSecond()
2222        } 
2323
2424        [ Fact ] 
25-         public  async  Task  BlockedHeartbeatDoesntCauseOverlapsAndIsLoggedAsError ( ) 
25+         public  async  Task  HeartbeatTakingLongerThanIntervalIsLoggedAsError ( ) 
2626        { 
2727            var  systemClock  =  new  MockSystemClock ( ) ; 
2828            var  heartbeatHandler  =  new  Mock < IHeartbeatHandler > ( ) ; 
2929            var  debugger  =  new  Mock < IDebugger > ( ) ; 
3030            var  kestrelTrace  =  new  Mock < IKestrelTrace > ( ) ; 
3131            var  handlerMre  =  new  ManualResetEventSlim ( ) ; 
3232            var  handlerStartedTcs  =  new  TaskCompletionSource < object > ( TaskCreationOptions . RunContinuationsAsynchronously ) ; 
33+             var  now  =  systemClock . UtcNow ; 
3334
34-             heartbeatHandler . Setup ( h =>  h . OnHeartbeat ( systemClock . UtcNow ) ) . Callback ( ( )  => 
35+             heartbeatHandler . Setup ( h =>  h . OnHeartbeat ( now ) ) . Callback ( ( )  => 
3536            { 
3637                handlerStartedTcs . SetResult ( null ) ; 
3738                handlerMre . Wait ( ) ; 
@@ -45,29 +46,31 @@ public async Task BlockedHeartbeatDoesntCauseOverlapsAndIsLoggedAsError()
4546                blockedHeartbeatTask  =  Task . Run ( ( )  =>  heartbeat . OnHeartbeat ( ) ) ; 
4647
4748                await  handlerStartedTcs . Task . DefaultTimeout ( ) ; 
48- 
49-                 heartbeat . OnHeartbeat ( ) ; 
5049            } 
5150
51+             // 2 seconds passes... 
52+             systemClock . UtcNow  =  systemClock . UtcNow . AddSeconds ( 2 ) ; 
53+ 
5254            handlerMre . Set ( ) ; 
5355
5456            await  blockedHeartbeatTask . DefaultTimeout ( ) ; 
5557
56-             heartbeatHandler . Verify ( h =>  h . OnHeartbeat ( systemClock . UtcNow ) ,  Times . Once ( ) ) ; 
57-             kestrelTrace . Verify ( t =>  t . HeartbeatSlow ( TimeSpan . Zero ,  Heartbeat . Interval ,  systemClock . UtcNow ) ,  Times . Once ( ) ) ; 
58+             heartbeatHandler . Verify ( h =>  h . OnHeartbeat ( now ) ,  Times . Once ( ) ) ; 
59+             kestrelTrace . Verify ( t =>  t . HeartbeatSlow ( TimeSpan . FromSeconds ( 2 ) ,  Heartbeat . Interval ,  now ) ,  Times . Once ( ) ) ; 
5860        } 
5961
6062        [ Fact ] 
61-         public  async  Task  BlockedHeartbeatIsNotLoggedAsErrorIfDebuggerAttached ( ) 
63+         public  async  Task  HeartbeatTakingLongerThanIntervalIsNotLoggedAsErrorIfDebuggerAttached ( ) 
6264        { 
6365            var  systemClock  =  new  MockSystemClock ( ) ; 
6466            var  heartbeatHandler  =  new  Mock < IHeartbeatHandler > ( ) ; 
6567            var  debugger  =  new  Mock < IDebugger > ( ) ; 
6668            var  kestrelTrace  =  new  Mock < IKestrelTrace > ( ) ; 
6769            var  handlerMre  =  new  ManualResetEventSlim ( ) ; 
6870            var  handlerStartedTcs  =  new  TaskCompletionSource < object > ( TaskCreationOptions . RunContinuationsAsynchronously ) ; 
71+             var  now  =  systemClock . UtcNow ; 
6972
70-             heartbeatHandler . Setup ( h =>  h . OnHeartbeat ( systemClock . UtcNow ) ) . Callback ( ( )  => 
73+             heartbeatHandler . Setup ( h =>  h . OnHeartbeat ( now ) ) . Callback ( ( )  => 
7174            { 
7275                handlerStartedTcs . SetResult ( null ) ; 
7376                handlerMre . Wait ( ) ; 
@@ -82,16 +85,17 @@ public async Task BlockedHeartbeatIsNotLoggedAsErrorIfDebuggerAttached()
8285                blockedHeartbeatTask  =  Task . Run ( ( )  =>  heartbeat . OnHeartbeat ( ) ) ; 
8386
8487                await  handlerStartedTcs . Task . DefaultTimeout ( ) ; 
85- 
86-                 heartbeat . OnHeartbeat ( ) ; 
8788            } 
8889
90+             // 2 seconds passes... 
91+             systemClock . UtcNow  =  systemClock . UtcNow . AddSeconds ( 2 ) ; 
92+ 
8993            handlerMre . Set ( ) ; 
9094
9195            await  blockedHeartbeatTask . DefaultTimeout ( ) ; 
9296
93-             heartbeatHandler . Verify ( h =>  h . OnHeartbeat ( systemClock . UtcNow ) ,  Times . Once ( ) ) ; 
94-             kestrelTrace . Verify ( t =>  t . HeartbeatSlow ( TimeSpan . Zero ,  Heartbeat . Interval ,  systemClock . UtcNow ) ,  Times . Never ( ) ) ; 
97+             heartbeatHandler . Verify ( h =>  h . OnHeartbeat ( now ) ,  Times . Once ( ) ) ; 
98+             kestrelTrace . Verify ( t =>  t . HeartbeatSlow ( TimeSpan . FromSeconds ( 2 ) ,  Heartbeat . Interval ,  now ) ,  Times . Never ( ) ) ; 
9599        } 
96100
97101        [ Fact ] 
0 commit comments