     }
 
     func test_didChangeSection_forDefault_mustNotCrash() {
-        let dataSource = self.createTableViewFetcherDataSource(sectionNameKeyPath: "ruleName")
-        let tableViewCellNib = UINib(nibName: "TableViewCell", bundle: NSBundle(forClass: self.dynamicType))
-        self.tableView.registerNib(tableViewCellNib, forCellReuseIdentifier: "TableViewCell")
-        self.tableView.dataSource = dataSource
-        
-        EntitySyncHistory.removeAll(inManagedObjectContext: self.managedObjectContext)
-        
-        let ruleName = TestUtil().randomRuleName()
-        EntitySyncHistory.entityAutoSyncHistoryByName(ruleName,
-            lastExecutionDate: nil,
-            inManagedObjectContext: self.managedObjectContext)
-        
-        let ruleName2 = TestUtil().randomRuleName()
-        EntitySyncHistory.entityAutoSyncHistoryByName(ruleName2,
-            lastExecutionDate: nil,
-            inManagedObjectContext: self.managedObjectContext)
-        
-        let ruleName3 = TestUtil().randomRuleName()
-        EntitySyncHistory.entityAutoSyncHistoryByName(ruleName3,
-            lastExecutionDate: nil,
-            inManagedObjectContext: self.managedObjectContext)
+        let dataSource = self.createTableViewFetcherDataSource(sectionNameKeyPath: "sectionName")
+        let helper = CoreDataUtil(inManagedObjectContext: self.managedObjectContext)
+        
+        let tableViewCellNib = UINib(nibName: "TableViewCell", bundle: NSBundle(forClass: self.dynamicType))
+        self.tableView.registerNib(tableViewCellNib, forCellReuseIdentifier: "TableViewCell")
+        self.tableView.dataSource = dataSource
+        
+        helper.removeAllTestEntities()
+        
+        helper.createTestMass(withSize: 1, usingInitialIndex: 1, inSection: 1, initialOrderValue: 1)
+        helper.createTestMass(withSize: 1, usingInitialIndex: 1, inSection: 2, initialOrderValue: 1)
+        helper.createTestMass(withSize: 1, usingInitialIndex: 1, inSection: 3, initialOrderValue: 1)
         
         do {
             try dataSource.refreshData()

        XCTAssertEqual(numberOfRows, 1)
    }
    
    func test_cellForRowAtIndexPath_mustReturnCell() {
        let dataSource = self.createTableViewFetcherDataSource(sectionNameKeyPath: nil)
        let tableViewCellNib = UINib(nibName: "TableViewCell", bundle: NSBundle(forClass: self.dynamicType))
        self.tableView.registerNib(tableViewCellNib, forCellReuseIdentifier: "TableViewCell")
        self.tableView.dataSource = dataSource
        
        EntitySyncHistory.removeAll(inManagedObjectContext: self.managedObjectContext)
        let ruleName = TestUtil().randomRuleName()
        EntitySyncHistory.entityAutoSyncHistoryByName(ruleName,
            lastExecutionDate: nil,
            inManagedObjectContext: self.managedObjectContext)
        
        self.coreDataStack.saveContext()
        do {
            try dataSource.refreshData()
            XCTAssertTrue(true)
        } catch {
            XCTAssertTrue(false)
        }

        tableView.reloadData()
        
        let cell = dataSource.tableView(tableView, cellForRowAtIndexPath: NSIndexPath(forRow: 0, inSection: 0))
        XCTAssertNotNil(cell)
    }

    
    func test_canEditRowAtIndexPath_withBlock_mustSucceed() {
        let dataSource = self.createTableViewFetcherDataSource(sectionNameKeyPath: nil)

        let tableViewCellNib = UINib(nibName: "TableViewCell", bundle: NSBundle(forClass: self.dynamicType))
        self.tableView.registerNib(tableViewCellNib, forCellReuseIdentifier: "TableViewCell")
        self.tableView.dataSource = dataSource
        let helper = CoreDataUtil(inManagedObjectContext: self.managedObjectContext)

        helper.removeAllTestEntities()
        
        let testEntity = helper.createTestMass(withSize: 2, usingInitialIndex: 1, inSection: 1, initialOrderValue: 1).first
        
        do {
            try dataSource.refreshData()
            XCTAssertTrue(true)
        } catch {
            XCTAssertTrue(false)
        }

        self.tableView.beginUpdates()
        dataSource.controller(dataSource.fetchedResultsController,
            didChangeObject: testEntity!,
            atIndexPath: NSIndexPath(forRow: 0, inSection: 0),
            forChangeType: .Move,
            newIndexPath: NSIndexPath(forRow: 1, inSection: 0))
        self.tableView.endUpdates()
    }
    
    
    // MARK: - Tests - controllerDidChangeContent
    
    func test_controllerDidChangeContent_mustNotCrash() {
        let dataSource = self.createTableViewFetcherDataSource(sectionNameKeyPath: nil)
        dataSource.controllerDidChangeContent(dataSource.fetchedResultsController)
