@@ -54,27 +54,52 @@ final class ChunkedArrayTests: NextcloudFileProviderKitTestCase {
5454 // MARK: - concurrentChunkedForEach(into:operation:)
5555
5656 func testConcurrentChunkedForEach( ) async {
57+ actor ResultsCollector {
58+ var results = [ Int] ( )
59+
60+ func append( _ value: Int ) {
61+ results. append ( value)
62+ }
63+
64+ func getResults( ) -> [ Int ] {
65+ return results
66+ }
67+ }
68+
5769 let array = [ 1 , 2 , 3 , 4 ]
58- var results = [ Int] ( )
59- let resultsQueue =
60- DispatchQueue ( label: " com.claucambra.NextcloudFileProviderKitTests.resultsQueue " )
70+ let collector = ResultsCollector ( )
6171
6272 await array. concurrentChunkedForEach ( into: 2 ) { element in
6373 try ? await Task . sleep ( nanoseconds: 100_000_000 ) // Simulate work (100ms)
64- resultsQueue . sync { results . append ( element * 2 ) }
74+ await collector . append ( element * 2 )
6575 }
66- let sortedResults = results . sorted ( )
76+ let sortedResults = await collector . getResults ( ) . sorted ( )
6777 let expectedResults = [ 2 , 4 , 6 , 8 ]
6878 XCTAssertEqual ( sortedResults, expectedResults)
6979 }
7080
7181 func testConcurrentChunkedForEachEmptyArray( ) async {
82+ actor ResultsCollector {
83+ var results = [ Int] ( )
84+
85+ func append( _ value: Int ) {
86+ results. append ( value)
87+ }
88+
89+ func isEmpty( ) -> Bool {
90+ return results. isEmpty
91+ }
92+ }
93+
7294 let emptyArray : [ Int ] = [ ]
73- var results = [ Int] ( )
95+ let collector = ResultsCollector ( )
96+
7497 await emptyArray. concurrentChunkedForEach ( into: 2 ) { element in
75- results . append ( element)
98+ await collector . append ( element)
7699 }
77- XCTAssertTrue ( results. isEmpty)
100+
101+ let isEmpty = await collector. isEmpty ( )
102+ XCTAssertTrue ( isEmpty)
78103 }
79104
80105 // MARK: - concurrentChunkedCompactMap(into:transform:)
0 commit comments