@@ -8,15 +8,14 @@ namespace Datadog.Trace.Tests
88 public class SpanTests
99 {
1010 private Mock < IDatadogTracer > _tracerMock ;
11- private Mock < ITraceContext > _traceContextMock ;
11+ private TraceContext _traceContext ;
1212
1313 public SpanTests ( )
1414 {
1515 _tracerMock = new Mock < IDatadogTracer > ( MockBehavior . Strict ) ;
16- _traceContextMock = new Mock < ITraceContext > ( MockBehavior . Strict ) ;
17- _traceContextMock . Setup ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) ) ;
18- _traceContextMock . Setup ( x => x . GetCurrentSpanContext ( ) ) . Returns < SpanContext > ( null ) ;
19- _tracerMock . Setup ( x => x . GetTraceContext ( ) ) . Returns ( _traceContextMock . Object ) ;
16+ _traceContext = new TraceContext ( _tracerMock . Object ) ;
17+ _tracerMock . Setup ( x => x . GetTraceContext ( ) ) . Returns ( _traceContext ) ;
18+ _tracerMock . Setup ( x => x . CloseCurrentTraceContext ( ) ) ;
2019 _tracerMock . Setup ( x => x . DefaultServiceName ) . Returns ( "DefaultServiceName" ) ;
2120 }
2221
@@ -30,7 +29,7 @@ public void SetTag_Tags_TagsAreProperlySet()
3029 span . SetTag ( "DoubleKey" , 1.618 ) ;
3130 span . SetTag ( "BoolKey" , true ) ;
3231
33- _traceContextMock . Verify ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) , Times . Never ) ;
32+ _tracerMock . Verify ( x => x . CloseCurrentTraceContext ( ) , Times . Never ) ;
3433 Assert . Equal ( "What's tracing" , span . GetTag ( "StringKey" ) ) ;
3534 Assert . Equal ( "42" , span . GetTag ( "IntKey" ) ) ;
3635 Assert . Equal ( "1.618" , span . GetTag ( "DoubleKey" ) ) ;
@@ -44,19 +43,20 @@ public void SetOperationName_ValidOperationName_OperationNameIsProperlySet()
4443
4544 span . SetOperationName ( "Op1" ) ;
4645
47- _traceContextMock . Verify ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) , Times . Never ) ;
46+ _tracerMock . Verify ( x => x . CloseCurrentTraceContext ( ) , Times . Never ) ;
4847 Assert . Equal ( "Op1" , span . OperationName ) ;
4948 }
5049
5150 [ Fact ]
5251 public void Finish_StartTimeInThePastWithNoEndTime_DurationProperlyComputed ( )
5352 {
54- var startTime = DateTimeOffset . UtcNow . AddMinutes ( - 1 ) ;
53+ // The 10 additional milliseconds account for the clock precision
54+ var startTime = DateTimeOffset . UtcNow . AddMinutes ( - 1 ) . AddMilliseconds ( - 10 ) ;
5555 var span = new Span ( _tracerMock . Object , null , null , null , startTime ) ;
5656
5757 span . Finish ( ) ;
5858
59- _traceContextMock . Verify ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) , Times . Once ) ;
59+ _tracerMock . Verify ( x => x . CloseCurrentTraceContext ( ) , Times . Once ) ;
6060 Assert . True ( span . Duration >= TimeSpan . FromMinutes ( 1 ) && span . Duration < TimeSpan . FromMinutes ( 2 ) ) ;
6161 }
6262
@@ -67,7 +67,7 @@ public async Task Finish_NoEndTimeProvided_SpanWriten()
6767 await Task . Delay ( TimeSpan . FromMilliseconds ( 1 ) ) ;
6868 span . Finish ( ) ;
6969
70- _traceContextMock . Verify ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) , Times . Once ) ;
70+ _tracerMock . Verify ( x => x . CloseCurrentTraceContext ( ) , Times . Once ) ;
7171 Assert . True ( span . Duration > TimeSpan . Zero ) ;
7272 }
7373
@@ -80,7 +80,7 @@ public void Finish_EndTimeProvided_SpanWritenWithCorrectDuration()
8080
8181 span . Finish ( endTime ) ;
8282
83- _traceContextMock . Verify ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) , Times . Once ) ;
83+ _tracerMock . Verify ( x => x . CloseCurrentTraceContext ( ) , Times . Once ) ;
8484 Assert . Equal ( endTime - startTime , span . Duration ) ;
8585 }
8686
@@ -93,7 +93,7 @@ public void Finish_EndTimeInThePast_DurationIs0()
9393
9494 span . Finish ( endTime ) ;
9595
96- _traceContextMock . Verify ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) , Times . Once ) ;
96+ _tracerMock . Verify ( x => x . CloseCurrentTraceContext ( ) , Times . Once ) ;
9797 Assert . Equal ( TimeSpan . Zero , span . Duration ) ;
9898 }
9999
@@ -105,7 +105,7 @@ public void Dispose_ExitUsing_SpanWriten()
105105 {
106106 }
107107
108- _traceContextMock . Verify ( x => x . CloseSpan ( It . IsAny < Span > ( ) ) , Times . Once ) ;
108+ _tracerMock . Verify ( x => x . CloseCurrentTraceContext ( ) , Times . Once ) ;
109109 Assert . True ( span . Duration > TimeSpan . Zero ) ;
110110 }
111111 }
0 commit comments