From 3346eb3ad24150ea5f1000e03897938325eeb52c Mon Sep 17 00:00:00 2001 From: Oliver Wiese <oliver.wiese@fu-berlin.de> Date: Sat, 10 Oct 2020 13:26:33 +0200 Subject: [PATCH] rename functions --- .../PersistentDataProvider.swift | 23 +++++++++-- enzevalos_iphoneTests/CoreAddressTest.swift | 8 ++-- enzevalos_iphoneTests/CoreMailTest.swift | 39 ++++++++++++++++--- enzevalos_iphoneTests/GeneratedMocks.swift | 4 +- 4 files changed, 59 insertions(+), 15 deletions(-) diff --git a/enzevalos_iphone/persistentData/PersistentDataProvider.swift b/enzevalos_iphone/persistentData/PersistentDataProvider.swift index 3239b5d4..ccf20252 100644 --- a/enzevalos_iphone/persistentData/PersistentDataProvider.swift +++ b/enzevalos_iphone/persistentData/PersistentDataProvider.swift @@ -225,7 +225,7 @@ class PersitentDataProvider { // MARK: - NSFetchedResultsController - lazy var fetchAddressResultController: NSFetchedResultsController<AddressRecord> = { + lazy var fetchedAddressResultController: NSFetchedResultsController<AddressRecord> = { let freq = NSFetchRequest<AddressRecord>(entityName: AddressRecord.entityName) freq.sortDescriptors = [NSSortDescriptor(key: "email", ascending: false)] @@ -238,7 +238,7 @@ class PersitentDataProvider { return controller }() - lazy var fetchedFolderResultsControler: NSFetchedResultsController<FolderRecord> = { + lazy var fetchedFolderResultsController: NSFetchedResultsController<FolderRecord> = { let fetchRequest = NSFetchRequest<FolderRecord>(entityName: FolderRecord.entityName) fetchRequest.sortDescriptors = [NSSortDescriptor(key: "path", ascending: false)] let controller = NSFetchedResultsController(fetchRequest: fetchRequest, @@ -273,7 +273,24 @@ class PersitentDataProvider { return controller }() - + func generateFetchedMailsInFolderResultsController(folderpath: String) -> NSFetchedResultsController<MailRecord> { + let freq = NSFetchRequest<MailRecord>(entityName: MailRecord.entityName) + freq.sortDescriptors = [NSSortDescriptor(key: "date", ascending: true)] + let predicate = NSPredicate(format: "inFolder.path == %@", folderpath) + freq.predicate = predicate + freq.propertiesToFetch = ["subject"] + let controller = NSFetchedResultsController(fetchRequest: freq, + managedObjectContext: persistentContainer.viewContext, + sectionNameKeyPath: nil, cacheName: nil) + // Perform the fetch. + do { + try controller.performFetch() + } catch { + fatalError("Unresolved error \(error)") + } + return controller + + } /** Handles remote store change notifications (.NSPersistentStoreRemoteChange). diff --git a/enzevalos_iphoneTests/CoreAddressTest.swift b/enzevalos_iphoneTests/CoreAddressTest.swift index 712a262f..3e718f2a 100644 --- a/enzevalos_iphoneTests/CoreAddressTest.swift +++ b/enzevalos_iphoneTests/CoreAddressTest.swift @@ -23,7 +23,7 @@ class CoreAddressTest: XCTestCase { }) wait(for: [deleteExpectation], timeout: TimeInterval(20)) provider.reset() - let frc = provider.fetchAddressResultController + let frc = provider.fetchedAddressResultController XCTAssertEqual(frc.fetchedObjects?.count ?? 0, 0) provider = PersitentDataProvider() } @@ -49,7 +49,7 @@ class CoreAddressTest: XCTestCase { }) wait(for: [importExpectation], timeout: TimeInterval(20)) provider.reset() - let frc = provider.fetchAddressResultController + let frc = provider.fetchedAddressResultController XCTAssertEqual(frc.fetchedObjects?.count ?? 0, 1, "Missing addresses! \(frc.fetchedObjects?.count ?? 0)") if let objects = frc.fetchedObjects { for obj in objects { @@ -89,7 +89,7 @@ class CoreAddressTest: XCTestCase { }) wait(for: [importExpectation], timeout: TimeInterval(20)) provider.reset() - let frc = provider.fetchAddressResultController + let frc = provider.fetchedAddressResultController XCTAssertEqual(frc.fetchedObjects?.count ?? 0, n, "Missing addresses! \(frc.fetchedObjects?.count ?? 0)") if let objects = frc.fetchedObjects { for obj in objects { @@ -128,7 +128,7 @@ class CoreAddressTest: XCTestCase { wait(for: [importExpectation], timeout: TimeInterval(20)) provider.reset() - let frc = provider.fetchAddressResultController + let frc = provider.fetchedAddressResultController XCTAssertEqual(frc.fetchedObjects?.count ?? 0, n, "Missing addresses! \(frc.fetchedObjects?.count ?? 0)") if let objects = frc.fetchedObjects { for obj in objects { diff --git a/enzevalos_iphoneTests/CoreMailTest.swift b/enzevalos_iphoneTests/CoreMailTest.swift index 1d98c688..ff4f72a6 100644 --- a/enzevalos_iphoneTests/CoreMailTest.swift +++ b/enzevalos_iphoneTests/CoreMailTest.swift @@ -67,7 +67,7 @@ class CoreMailTest: XCTestCase { XCTFail("No mails...") } - let frc = provider.fetchAddressResultController + let frc = provider.fetchedAddressResultController if let objects = frc.fetchedObjects { for obj in objects { XCTAssertEqual(obj.inFromField?.count, 2, "Missing mails.. \(String(describing: obj.inFromField?.count))") @@ -189,7 +189,7 @@ class CoreMailTest: XCTestCase { XCTFail("Could not fetch! \(error)") } XCTAssertEqual(frc.fetchedObjects?.count ?? 0, n, "Missing message! \(frc.fetchedObjects?.count ?? 0)") - if let folders = provider.fetchedFolderResultsControler.fetchedObjects { + if let folders = provider.fetchedFolderResultsController.fetchedObjects { XCTAssert(folders.count == 1, "We have only one folder! folders: \(folders.count)") if let f = folders.first { XCTAssertEqual(f.path, "Testfolder") @@ -198,10 +198,11 @@ class CoreMailTest: XCTestCase { } else{ XCTFail("No folders!") } + } - func testImportMoreMails() { + private func generateMails() -> Int { let n = 100 let m = 10 var k = 1 @@ -239,13 +240,17 @@ class CoreMailTest: XCTestCase { } XCTAssertEqual(frc.fetchedObjects?.count ?? 0, j*n, "Missing message! \(frc.fetchedObjects?.count ?? 0)") } + return n*m + } + + func testImportMoreMails() { + let n = generateMails() - - if let folders = provider.fetchedFolderResultsControler.fetchedObjects { + if let folders = provider.fetchedFolderResultsController.fetchedObjects { XCTAssert(folders.count == 1, "We have only one folder! folders: \(folders.count)") if let f = folders.first { XCTAssertEqual(f.path, "Testfolder") - XCTAssertEqual(f.mailsInFolder?.count, m*n) + XCTAssertEqual(f.mailsInFolder?.count, n) } else{ XCTFail("No folders!") @@ -254,4 +259,26 @@ class CoreMailTest: XCTestCase { XCTFail("No folders!") } } + + func testFetchFolder() { + let n = generateMails() + if let mails = provider.generateFetchedMailsInFolderResultsController(folderpath: "Testfolder").fetchedObjects { + XCTAssertEqual(mails.count, n) + print("Mails! \(mails.count)") + var i = 1 + for m in mails { + XCTAssertEqual(m.messageID, "\(i)") + i = i + 1 + XCTAssertEqual(m.inFolder?.path, "Testfolder") + } + if let m = mails.first { + print(m) + print(m.date, m.messageID, m.body, m.subject) + } + + } + else { + XCTFail("No mails...") + } + } } diff --git a/enzevalos_iphoneTests/GeneratedMocks.swift b/enzevalos_iphoneTests/GeneratedMocks.swift index a0fa61aa..0d92cc8b 100644 --- a/enzevalos_iphoneTests/GeneratedMocks.swift +++ b/enzevalos_iphoneTests/GeneratedMocks.swift @@ -1,4 +1,4 @@ -// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationModel.swift at 2020-10-05 15:19:11 +0000 +// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationModel.swift at 2020-10-05 16:31:02 +0000 // // AuthenticationModel.swift @@ -654,7 +654,7 @@ import Foundation } -// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationViewModel.swift at 2020-10-05 15:19:11 +0000 +// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationViewModel.swift at 2020-10-05 16:31:02 +0000 // // AuthenticationViewModel.swift -- GitLab