@@ -160,6 +160,52 @@ final class ObservabilitySystemTest: XCTestCase {
160
160
}
161
161
}
162
162
163
+ @available ( * , deprecated, message: " temporary for transition DiagnosticsEngine -> DiagnosticsEmitter " )
164
+ func testBridging( ) throws {
165
+
166
+ do {
167
+ let collector = Collector ( )
168
+ let observabilitySystem = ObservabilitySystem ( collector)
169
+ let diagnosticsEngine = observabilitySystem. topScope. makeDiagnosticsEngine ( )
170
+
171
+ let data = TestData ( )
172
+ let location = TestLocation ( )
173
+
174
+ diagnosticsEngine. emit ( . error( data) , location: location)
175
+ testDiagnostics ( collector. diagnostics) { result in
176
+ var expectedMetadata = ObservabilityMetadata ( )
177
+ expectedMetadata. legacyDiagnosticLocation = . init( location)
178
+ expectedMetadata. legacyDiagnosticData = . init( data)
179
+ result. check ( diagnostic: " \( data) " , severity: . error, metadata: expectedMetadata)
180
+ }
181
+ }
182
+
183
+ do {
184
+ let diagnosticsEngine1 = DiagnosticsEngine ( )
185
+ let observabilitySystem = ObservabilitySystem ( diagnosticEngine: diagnosticsEngine1)
186
+ let diagnosticsEngine2 = observabilitySystem. topScope. makeDiagnosticsEngine ( )
187
+
188
+ let data = TestData ( )
189
+ let location = TestLocation ( )
190
+
191
+ diagnosticsEngine2. emit ( . error( data) , location: location)
192
+
193
+
194
+ XCTAssertEqual ( diagnosticsEngine1. diagnostics. count, 1 )
195
+ XCTAssertEqual ( diagnosticsEngine1. diagnostics. first!. message. data as? TestData , data)
196
+ XCTAssertEqual ( diagnosticsEngine1. diagnostics. first!. location as? TestLocation , location)
197
+ }
198
+
199
+ struct TestData : DiagnosticData , Equatable {
200
+ var description : String = UUID ( ) . uuidString
201
+ }
202
+
203
+ struct TestLocation : DiagnosticLocation , Equatable {
204
+ var description : String = UUID ( ) . uuidString
205
+
206
+ }
207
+ }
208
+
163
209
struct Collector : ObservabilityHandlerProvider , DiagnosticsHandler {
164
210
private let _diagnostics = ThreadSafeArrayStore < Diagnostic > ( )
165
211
0 commit comments