2
2
// Licensed under the Apache License, Version 2.0. Please see https://github.com/Workiva/opentelemetry-dart/blob/master/LICENSE for more information
3
3
4
4
@TestOn ('vm' )
5
+ import 'package:fixnum/src/int64.dart' ;
5
6
import 'package:mockito/mockito.dart' ;
7
+ import 'package:opentelemetry/src/sdk/time_providers/time_provider.dart' ;
8
+ import 'package:opentelemetry/src/sdk/trace/read_only_span.dart' ;
6
9
import 'package:opentelemetry/src/sdk/trace/span_processors/span_processor.dart' ;
7
10
import 'package:opentelemetry/src/sdk/trace/tracer_provider.dart' ;
8
11
import 'package:test/test.dart' ;
@@ -36,6 +39,13 @@ void main() {
36
39
expect (provider.spanProcessors, [mockProcessor1, mockProcessor2]);
37
40
});
38
41
42
+ test ('traceProvider custom timeProvider' , () {
43
+ final mockTimeProvider = FakeTimeProvider (now: Int64 (123 ));
44
+ final provider = TracerProviderBase (timeProvider: mockTimeProvider);
45
+ final span = provider.getTracer ('foo' ).startSpan ('bar' ) as ReadOnlySpan ;
46
+ expect (span.startTime, Int64 (123 ));
47
+ });
48
+
39
49
test ('tracerProvider force flushes all processors' , () {
40
50
final mockProcessor1 = MockSpanProcessor ();
41
51
final mockProcessor2 = MockSpanProcessor ();
@@ -55,3 +65,11 @@ void main() {
55
65
verify (mockProcessor2.shutdown ()).called (1 );
56
66
});
57
67
}
68
+
69
+ class FakeTimeProvider extends Mock implements TimeProvider {
70
+ FakeTimeProvider ({required Int64 now}) : _now = now;
71
+ final Int64 _now;
72
+
73
+ @override
74
+ Int64 get now => _now;
75
+ }
0 commit comments