@@ -35,8 +35,8 @@ public void Start_FiresSessionStart_WithSessionId()
3535
3636 Assert . AreEqual ( 1 , _events . Count ) ;
3737 Assert . AreEqual ( "session_start" , _events [ 0 ] . name ) ;
38- Assert . IsTrue ( _events [ 0 ] . props . ContainsKey ( "sessionId " ) ) ;
39- Assert . IsNotEmpty ( ( string ) _events [ 0 ] . props [ "sessionId " ] ) ;
38+ Assert . IsTrue ( _events [ 0 ] . props . ContainsKey ( "session_id " ) ) ;
39+ Assert . IsNotEmpty ( ( string ) _events [ 0 ] . props [ "session_id " ] ) ;
4040 }
4141
4242 [ Test ]
@@ -64,9 +64,9 @@ public void End_FiresSessionEnd_WithDuration()
6464
6565 var endEvent = _events . FirstOrDefault ( e => e . name == "session_end" ) ;
6666 Assert . IsNotNull ( endEvent . props ) ;
67- Assert . IsTrue ( endEvent . props . ContainsKey ( "sessionId " ) ) ;
68- Assert . IsTrue ( endEvent . props . ContainsKey ( "durationSec " ) ) ;
69- Assert . AreEqual ( 2L , ( long ) endEvent . props [ "durationSec " ] ) ;
67+ Assert . IsTrue ( endEvent . props . ContainsKey ( "session_id " ) ) ;
68+ Assert . IsTrue ( endEvent . props . ContainsKey ( "duration_sec " ) ) ;
69+ Assert . AreEqual ( 2L , ( long ) endEvent . props [ "duration_sec " ] ) ;
7070 }
7171
7272 [ Test ]
@@ -121,8 +121,8 @@ void Track(string name, Dictionary<string, object> props)
121121 {
122122 var beat = events . FirstOrDefault ( e => e . name == "session_heartbeat" ) ;
123123 Assert . IsNotNull ( beat . props , "heartbeat event should carry a properties dictionary" ) ;
124- Assert . IsTrue ( beat . props . ContainsKey ( "sessionId " ) ) ;
125- Assert . IsTrue ( beat . props . ContainsKey ( "durationSec " ) ) ;
124+ Assert . IsTrue ( beat . props . ContainsKey ( "session_id " ) ) ;
125+ Assert . IsTrue ( beat . props . ContainsKey ( "duration_sec " ) ) ;
126126 }
127127 }
128128
@@ -198,7 +198,7 @@ public void Pause_CalledTwice_SecondCallIsNoOp()
198198 session . End ( ) ;
199199
200200 var sessionEnd = _events . Last ( e => e . name == "session_end" ) ;
201- var duration = ( long ) sessionEnd . props [ "durationSec " ] ;
201+ var duration = ( long ) sessionEnd . props [ "duration_sec " ] ;
202202 // Wall-clock Start→End = 13s, paused from T=5 to T=10 = 5s, engaged = 8s.
203203 Assert . AreEqual ( 8L , duration ,
204204 "double Pause must preserve the first Pause timestamp so engagement arithmetic covers the full pause window" ) ;
@@ -246,7 +246,7 @@ public void Resume_NegativePauseDuration_ClampsAccumulatorToZero()
246246 session . End ( ) ;
247247
248248 var sessionEnd = _events . Last ( e => e . name == "session_end" ) ;
249- var duration = ( long ) sessionEnd . props [ "durationSec " ] ;
249+ var duration = ( long ) sessionEnd . props [ "duration_sec " ] ;
250250 // Wall-clock from Start to End is 10 + (-5) + 2 = 7 s. The
251251 // pause duration was clamped to 0, so engaged seconds = 7 - 0 = 7.
252252 // Without the clamp, _accumulatedPause would be -5, the
@@ -277,7 +277,7 @@ public void End_ClockRewindsSinceStart_ClampsDurationToZero()
277277 session . End ( ) ;
278278
279279 var sessionEnd = _events . Last ( e => e . name == "session_end" ) ;
280- var duration = ( long ) sessionEnd . props [ "durationSec " ] ;
280+ var duration = ( long ) sessionEnd . props [ "duration_sec " ] ;
281281 Assert . AreEqual ( 0L , duration ,
282282 "negative engaged time from a wall-clock rewind must clamp to zero" ) ;
283283 }
@@ -306,7 +306,7 @@ public void End_ClockRewindsWhilePaused_DoesNotInflateDuration()
306306 session . End ( ) ;
307307
308308 var sessionEnd = _events . Last ( e => e . name == "session_end" ) ;
309- var duration = ( long ) sessionEnd . props [ "durationSec " ] ;
309+ var duration = ( long ) sessionEnd . props [ "duration_sec " ] ;
310310 Assert . LessOrEqual ( duration , 5L ,
311311 "clock rewind while paused must not over-credit engagement past the wall-clock window" ) ;
312312 }
@@ -331,7 +331,7 @@ public void End_AfterShortPause_ReportsDurationMinusPause()
331331 session . End ( ) ;
332332
333333 var sessionEnd = _events . Last ( e => e . name == "session_end" ) ;
334- var duration = ( long ) sessionEnd . props [ "durationSec " ] ;
334+ var duration = ( long ) sessionEnd . props [ "duration_sec " ] ;
335335 Assert . AreEqual ( 7L , duration ,
336336 "session_end duration should exclude the 3s paused interval" ) ;
337337 }
@@ -353,7 +353,7 @@ public void End_WhilePaused_ExcludesInFlightPauseFromDuration()
353353 session . End ( ) ; // ends while paused
354354
355355 var sessionEnd = _events . Last ( e => e . name == "session_end" ) ;
356- var duration = ( long ) sessionEnd . props [ "durationSec " ] ;
356+ var duration = ( long ) sessionEnd . props [ "duration_sec " ] ;
357357 Assert . AreEqual ( 5L , duration ,
358358 "session_end fired while paused should count only pre-pause engaged time" ) ;
359359 }
@@ -381,7 +381,7 @@ public void End_AfterExtendedPauseRollover_ReportsPrePauseDuration()
381381 session . Resume ( ) ;
382382
383383 var sessionEnd = _events . First ( e => e . name == "session_end" ) ;
384- var duration = ( long ) sessionEnd . props [ "durationSec " ] ;
384+ var duration = ( long ) sessionEnd . props [ "duration_sec " ] ;
385385 Assert . AreEqual ( 10L , duration ,
386386 "session_end on extended-pause rollover should report pre-pause engaged time, not wall-clock" ) ;
387387 }
@@ -406,7 +406,7 @@ public void Heartbeat_AfterShortPause_ReportsPauseAdjustedDuration()
406406 session . OnHeartbeat ( ) ;
407407
408408 var heartbeat = _events . Last ( e => e . name == "session_heartbeat" ) ;
409- var duration = ( long ) heartbeat . props [ "durationSec " ] ;
409+ var duration = ( long ) heartbeat . props [ "duration_sec " ] ;
410410 Assert . AreEqual ( 6L , duration ,
411411 "heartbeat duration should exclude the 2s paused interval" ) ;
412412 }
0 commit comments