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