11import CloudKit
2- import CustomDump
32import OrderedCollections
43
54@available ( iOS 17 , macOS 14 , tvOS 17 , watchOS 10 , * )
65package final class MockSyncEngine : SyncEngineProtocol {
76 package let database : MockCloudDatabase
87 package let parentSyncEngine : SyncEngine
98 private let _state : LockIsolated < MockSyncEngineState >
10- private let _fetchChangesScopes = LockIsolated < [ CKSyncEngine . FetchChangesOptions . Scope ] > ( [ ] )
11- private let _acceptedShareMetadata = LockIsolated < Set < ShareMetadata > > ( [ ] )
9+ package let _fetchChangesScopes = LockIsolated < [ CKSyncEngine . FetchChangesOptions . Scope ] > ( [ ] )
10+ package let _acceptedShareMetadata = LockIsolated < Set < ShareMetadata > > ( [ ] )
1211
1312 package init (
1413 database: MockCloudDatabase ,
@@ -95,57 +94,17 @@ package final class MockSyncEngine: SyncEngineProtocol {
9594 )
9695 }
9796
98- package func assertFetchChangesScopes(
99- _ scopes: [ CKSyncEngine . FetchChangesOptions . Scope ] ,
100- fileID: StaticString = #fileID,
101- filePath: StaticString = #filePath,
102- line: UInt = #line,
103- column: UInt = #column
104- ) {
105- _fetchChangesScopes. withValue {
106- expectNoDifference (
107- scopes,
108- $0,
109- fileID: fileID,
110- filePath: filePath,
111- line: line,
112- column: column
113- )
114- $0. removeAll ( )
115- }
116- }
117-
118- package func assertAcceptedShareMetadata(
119- _ sharedMetadata: Set < ShareMetadata > ,
120- fileID: StaticString = #fileID,
121- filePath: StaticString = #filePath,
122- line: UInt = #line,
123- column: UInt = #column
124- ) {
125- _acceptedShareMetadata. withValue {
126- expectNoDifference (
127- sharedMetadata,
128- $0,
129- fileID: fileID,
130- filePath: filePath,
131- line: line,
132- column: column
133- )
134- $0. removeAll ( )
135- }
136- }
137-
13897 package func cancelOperations( ) async {
13998 }
14099}
141100
142101@available ( iOS 17 , macOS 14 , tvOS 17 , watchOS 10 , * )
143- package final class MockSyncEngineState : CKSyncEngineStateProtocol , CustomDumpReflectable {
144- private let _pendingRecordZoneChanges = LockIsolated<
102+ package final class MockSyncEngineState : CKSyncEngineStateProtocol {
103+ package let _pendingRecordZoneChanges = LockIsolated<
145104 OrderedSet< CKSyncEngine . PendingRecordZoneChange>
146105 > ( [ ]
147106 )
148- private let _pendingDatabaseChanges = LockIsolated<
107+ package let _pendingDatabaseChanges = LockIsolated<
149108 OrderedSet< CKSyncEngine . PendingDatabaseChange>
150109 > ( [ ] )
151110 private let fileID : StaticString
@@ -165,46 +124,6 @@ package final class MockSyncEngineState: CKSyncEngineStateProtocol, CustomDumpRe
165124 self . column = column
166125 }
167126
168- package func assertPendingRecordZoneChanges(
169- _ changes: OrderedSet < CKSyncEngine . PendingRecordZoneChange > ,
170- fileID: StaticString = #fileID,
171- filePath: StaticString = #filePath,
172- line: UInt = #line,
173- column: UInt = #column
174- ) {
175- _pendingRecordZoneChanges. withValue {
176- expectNoDifference (
177- Set ( changes) ,
178- Set ( $0) ,
179- fileID: fileID,
180- filePath: filePath,
181- line: line,
182- column: column
183- )
184- $0. removeAll ( )
185- }
186- }
187-
188- package func assertPendingDatabaseChanges(
189- _ changes: OrderedSet < CKSyncEngine . PendingDatabaseChange > ,
190- fileID: StaticString = #fileID,
191- filePath: StaticString = #filePath,
192- line: UInt = #line,
193- column: UInt = #column
194- ) {
195- _pendingDatabaseChanges. withValue {
196- expectNoDifference (
197- Set ( changes) ,
198- Set ( $0) ,
199- fileID: fileID,
200- filePath: filePath,
201- line: line,
202- column: column
203- )
204- $0. removeAll ( )
205- }
206- }
207-
208127 package var pendingRecordZoneChanges : [ CKSyncEngine . PendingRecordZoneChange ] {
209128 _pendingRecordZoneChanges. withValue { Array ( $0) }
210129 }
@@ -241,63 +160,6 @@ package final class MockSyncEngineState: CKSyncEngineStateProtocol, CustomDumpRe
241160 $0. subtract ( pendingDatabaseChanges)
242161 }
243162 }
244-
245- package var customDumpMirror : Mirror {
246- return Mirror (
247- self ,
248- children: [
249- (
250- " pendingRecordZoneChanges " ,
251- _pendingRecordZoneChanges. withValue ( \. self)
252- . sorted ( by: comparePendingRecordZoneChange)
253- as Any
254- ) ,
255- (
256- " pendingDatabaseChanges " ,
257- _pendingDatabaseChanges. withValue ( \. self)
258- . sorted ( by: comparePendingDatabaseChange) as Any
259- ) ,
260- ] ,
261- displayStyle: . struct
262- )
263- }
264- }
265-
266- @available ( iOS 17 , macOS 14 , tvOS 17 , watchOS 10 , * )
267- private func comparePendingRecordZoneChange(
268- _ lhs: CKSyncEngine . PendingRecordZoneChange ,
269- _ rhs: CKSyncEngine . PendingRecordZoneChange
270- ) -> Bool {
271- switch ( lhs, rhs) {
272- case ( . saveRecord( let lhs) , . saveRecord( let rhs) ) ,
273- ( . deleteRecord( let lhs) , . deleteRecord( let rhs) ) :
274- lhs. recordName < rhs. recordName
275- case ( . deleteRecord, . saveRecord) :
276- true
277- case ( . saveRecord, . deleteRecord) :
278- false
279- default :
280- false
281- }
282- }
283-
284- @available ( iOS 17 , macOS 14 , tvOS 17 , watchOS 10 , * )
285- private func comparePendingDatabaseChange(
286- _ lhs: CKSyncEngine . PendingDatabaseChange ,
287- _ rhs: CKSyncEngine . PendingDatabaseChange
288- ) -> Bool {
289- switch ( lhs, rhs) {
290- case ( . saveZone( let lhs) , . saveZone( let rhs) ) :
291- lhs. zoneID. zoneName < rhs. zoneID. zoneName
292- case ( . deleteZone( let lhs) , . deleteZone( let rhs) ) :
293- lhs. zoneName < rhs. zoneName
294- case ( . deleteZone, . saveZone) :
295- true
296- case ( . saveZone, . deleteZone) :
297- false
298- default :
299- false
300- }
301163}
302164
303165@available ( iOS 17 , macOS 14 , tvOS 17 , watchOS 10 , * )
0 commit comments