File tree Expand file tree Collapse file tree
Sources/CoreDataRepository
Tests/CoreDataRepositoryTests Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -82,10 +82,20 @@ extension CoreDataRepository {
8282 /// - urls: [URL]
8383 /// - Returns
8484 /// - (success: [Model, failed: [Model])
85+ @available ( * , deprecated, message: " This method has an unused parameter for transactionAuthor. " )
8586 public func read< Model: UnmanagedModel > (
8687 urls: [ URL ] ,
8788 transactionAuthor _: String ? = nil
8889 ) async -> ( success: [ Model ] , failed: [ URL ] ) {
90+ await read ( urls: urls)
91+ }
92+
93+ /// Batch update objects in CoreData
94+ /// - Parameters
95+ /// - urls: [URL]
96+ /// - Returns
97+ /// - (success: [Model, failed: [Model])
98+ public func read< Model: UnmanagedModel > ( urls: [ URL ] ) async -> ( success: [ Model ] , failed: [ URL ] ) {
8999 var successes = [ Model] ( )
90100 var failures = [ URL] ( )
91101 await withTaskGroup ( of: _Result< Model, URL> . self , body: { [ weak self] group in
Original file line number Diff line number Diff line change @@ -142,6 +142,28 @@ final class BatchRepositoryTests: CoreDataXCTestCase {
142142 try verify ( transactionAuthor: transactionAuthor, timeStamp: historyTimeStamp)
143143 }
144144
145+ func testDeprecatedReadSuccess( ) async throws {
146+ let fetchRequest = NSFetchRequest < RepoMovie > ( entityName: " RepoMovie " )
147+ var movies = [ Movie] ( )
148+ try await repositoryContext ( ) . perform {
149+ let count = try self . repositoryContext ( ) . count ( for: fetchRequest)
150+ XCTAssertEqual ( count, 0 , " Count of objects in CoreData should be zero at the start of each test. " )
151+
152+ let repoMovies = try self . movies
153+ . map ( self . mapDictToRepoMovie ( _: ) )
154+ try self . repositoryContext ( ) . save ( )
155+ movies = repoMovies. map ( \. asUnmanaged)
156+ }
157+
158+ let result : ( success: [ Movie ] , failed: [ URL ] ) = try await repository ( )
159+ . read ( urls: movies. compactMap ( \. url) , transactionAuthor: " Unused " )
160+
161+ XCTAssertEqual ( result. success. count, movies. count)
162+ XCTAssertEqual ( result. failed. count, 0 )
163+
164+ XCTAssertEqual ( Set ( movies) , Set ( result. success) )
165+ }
166+
145167 func testReadSuccess( ) async throws {
146168 let fetchRequest = NSFetchRequest < RepoMovie > ( entityName: " RepoMovie " )
147169 var movies = [ Movie] ( )
You can’t perform that action at this time.
0 commit comments