From 9994d5abc250f4a190dfd6d8a89dd98cf94e4b98 Mon Sep 17 00:00:00 2001 From: Maxime Ollivier Date: Thu, 21 Jan 2021 19:55:59 -0800 Subject: [PATCH] clean up performExperimentalUpdateAnimated Summary: Lets clean up `-performExperimentalUpdateAnimated` * Remove the "experimental" * Re-order the params to match the other method * Rename dataBlock -> sectionDataBlock to make it clear we mean sections * Rename applyDataBlock -> applySectionDataBlock Reviewed By: Haud Differential Revision: D25884784 fbshipit-source-id: e24c54b43c08c02538c83ba044b1a547cd0f38ae --- Source/IGListKit/IGListAdapter.m | 14 +- Source/IGListKit/IGListAdapterUpdater.m | 24 +- Source/IGListKit/IGListReloadDataUpdater.m | 16 +- Source/IGListKit/IGListUpdatingDelegate.h | 18 +- .../Internal/IGListBatchUpdateTransaction.h | 4 +- .../Internal/IGListBatchUpdateTransaction.m | 34 +- .../Internal/IGListUpdateTransactionBuilder.h | 8 +- .../Internal/IGListUpdateTransactionBuilder.m | 24 +- Tests/IGListAdapterUpdaterTests.m | 360 +++++++++--------- 9 files changed, 251 insertions(+), 251 deletions(-) diff --git a/Source/IGListKit/IGListAdapter.m b/Source/IGListKit/IGListAdapter.m index 53f8ea09..08777bcf 100644 --- a/Source/IGListKit/IGListAdapter.m +++ b/Source/IGListKit/IGListAdapter.m @@ -350,7 +350,7 @@ [self _enterBatchUpdates]; __weak __typeof__(self) weakSelf = self; - IGListTransitionDataBlock dataBlock = ^IGListTransitionData *{ + IGListTransitionDataBlock sectionDataBlock = ^IGListTransitionData *{ __typeof__(self) strongSelf = weakSelf; if (strongSelf == nil) { return nil; @@ -359,7 +359,7 @@ return [strongSelf _generateTransitionDataWithObjects:toObjects dataSource:dataSource]; }; - IGListTransitionDataApplyBlock applyDataBlock = ^void(IGListTransitionData *data) { + IGListTransitionDataApplyBlock applySectionDataBlock = ^void(IGListTransitionData *data) { __typeof__(self) strongSelf = weakSelf; if (strongSelf == nil) { return; @@ -384,11 +384,11 @@ [strongSelf _exitBatchUpdates]; }; - [updater performExperimentalUpdateAnimated:animated - collectionViewBlock:[self _collectionViewBlock] - dataBlock:dataBlock - applyDataBlock:applyDataBlock - completion:outerCompletionBlock]; + [updater performUpdateWithCollectionViewBlock:[self _collectionViewBlock] + animated:animated + sectionDataBlock:sectionDataBlock + applySectionDataBlock:applySectionDataBlock + completion:outerCompletionBlock]; } - (void)reloadDataWithCompletion:(nullable IGListUpdaterCompletion)completion { diff --git a/Source/IGListKit/IGListAdapterUpdater.m b/Source/IGListKit/IGListAdapterUpdater.m index 448a856a..1e303f2c 100644 --- a/Source/IGListKit/IGListAdapterUpdater.m +++ b/Source/IGListKit/IGListAdapterUpdater.m @@ -63,7 +63,7 @@ // dispatch_async to give the main queue time to collect more batch updates so that a minimum amount of work // (diffing, etc) is done on main. dispatch_async does not garauntee a full runloop turn will pass though. - // see -performUpdateWithCollectionView:fromObjects:toObjects:animated:objectTransitionBlock:completion: for more + // see -performUpdateWithCollectionViewBlock:animated:sectionDataBlock:applySectionDataBlock:completion: for more // details on how coalescence is done. self.hasQueuedUpdate = YES; dispatch_async(dispatch_get_main_queue(), ^{ @@ -147,21 +147,21 @@ static NSUInteger IGListIdentifierHash(const void *item, NSUInteger (*size)(cons return functions; } -- (void)performExperimentalUpdateAnimated:(BOOL)animated - collectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock - dataBlock:(IGListTransitionDataBlock)dataBlock - applyDataBlock:(IGListTransitionDataApplyBlock)applyDataBlock - completion:(IGListUpdatingCompletion)completion { +- (void)performUpdateWithCollectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock + animated:(BOOL)animated + sectionDataBlock:(IGListTransitionDataBlock)sectionDataBlock + applySectionDataBlock:(IGListTransitionDataApplyBlock)applySectionDataBlock + completion:(nullable IGListUpdatingCompletion)completion { IGAssertMainThread(); IGParameterAssert(collectionViewBlock != nil); - IGParameterAssert(dataBlock != nil); - IGParameterAssert(applyDataBlock != nil); + IGParameterAssert(sectionDataBlock != nil); + IGParameterAssert(applySectionDataBlock != nil); [self.transactionBuilder addSectionBatchUpdateAnimated:animated - collectionViewBlock:collectionViewBlock - dataBlock:dataBlock - applyDataBlock:applyDataBlock - completion:completion]; + collectionViewBlock:collectionViewBlock + sectionDataBlock:sectionDataBlock + applySectionDataBlock:applySectionDataBlock + completion:completion]; [self _queueUpdateIfNeeded]; } diff --git a/Source/IGListKit/IGListReloadDataUpdater.m b/Source/IGListKit/IGListReloadDataUpdater.m index 7bc39aa3..abb14d47 100644 --- a/Source/IGListKit/IGListReloadDataUpdater.m +++ b/Source/IGListKit/IGListReloadDataUpdater.m @@ -15,14 +15,14 @@ return [NSPointerFunctions pointerFunctionsWithOptions:NSPointerFunctionsObjectPersonality]; } -- (void)performExperimentalUpdateAnimated:(BOOL)animated - collectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock - dataBlock:(IGListTransitionDataBlock)dataBlock - applyDataBlock:(IGListTransitionDataApplyBlock)applyDataBlock - completion:(nullable IGListUpdatingCompletion)completion { - IGListTransitionData *sectionData = dataBlock ? dataBlock() : nil; - if (sectionData != nil) { - applyDataBlock(sectionData); +- (void)performUpdateWithCollectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock + animated:(BOOL)animated + sectionDataBlock:(IGListTransitionDataBlock)sectionDataBlock + applySectionDataBlock:(IGListTransitionDataApplyBlock)applySectionDataBlock + completion:(nullable IGListUpdatingCompletion)completion { + IGListTransitionData *sectionData = sectionDataBlock ? sectionDataBlock() : nil; + if (sectionData != nil && applySectionDataBlock != nil) { + applySectionDataBlock(sectionData); } [self _synchronousReloadDataWithCollectionView:collectionViewBlock()]; if (completion) { diff --git a/Source/IGListKit/IGListUpdatingDelegate.h b/Source/IGListKit/IGListUpdatingDelegate.h index 70ce07fa..63746767 100644 --- a/Source/IGListKit/IGListUpdatingDelegate.h +++ b/Source/IGListKit/IGListUpdatingDelegate.h @@ -84,24 +84,24 @@ NS_SWIFT_NAME(ListUpdatingDelegate) /** Perform a **section** update from an old array of objects to a new one. - @param animated A flag indicating if the transition should be animated. @param collectionViewBlock A block returning the collecion view to perform updates on. - @param dataBlock A block that returns the section information (ex: from and to objects) - @param applyDataBlock A block that must be called when the adapter applies changes to the collection view. + @param animated A flag indicating if the transition should be animated. + @param sectionDataBlock A block that returns the section information (ex: from and to objects) + @param applySectionDataBlock A block that must be called when the adapter applies changes to the collection view. @param completion A completion block to execute when the update is finished. @note Implementations determine how to transition between objects. You can perform a diff on the objects, reload each section, or simply call `-reloadData` on the collection view. In the end, the collection view must be setup with a section for each object in the `toObjects` array. - The `applyDataBlock` block should be called prior to making any `UICollectionView` updates, passing in the `toObjects` + The `applySectionDataBlock` block should be called prior to making any `UICollectionView` updates, passing in the `toObjects` that the updater is applying. */ -- (void)performExperimentalUpdateAnimated:(BOOL)animated - collectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock - dataBlock:(IGListTransitionDataBlock)dataBlock - applyDataBlock:(IGListTransitionDataApplyBlock)applyDataBlock - completion:(nullable IGListUpdatingCompletion)completion; +- (void)performUpdateWithCollectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock + animated:(BOOL)animated + sectionDataBlock:(IGListTransitionDataBlock)sectionDataBlock + applySectionDataBlock:(IGListTransitionDataApplyBlock)applySectionDataBlock + completion:(nullable IGListUpdatingCompletion)completion; /** Perform an **item** update block in the collection view. diff --git a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h index 1d059647..e37430a8 100644 --- a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h +++ b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h @@ -26,8 +26,8 @@ IGLK_SUBCLASSING_RESTRICTED delegate:(nullable id)delegate config:(IGListUpdateTransactationConfig)config animated:(BOOL)animated - dataBlock:(nullable IGListTransitionDataBlock)dataBlock - applyDataBlock:(nullable IGListTransitionDataApplyBlock)applyDataBlock + sectionDataBlock:(nullable IGListTransitionDataBlock)sectionDataBlock + applySectionDataBlock:(nullable IGListTransitionDataApplyBlock)applySectionDataBlock itemUpdateBlocks:(NSArray *)itemUpdateBlocks completionBlocks:(NSArray *)completionBlocks NS_DESIGNATED_INITIALIZER; diff --git a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m index 2d7ea7b7..1dd13c32 100644 --- a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m +++ b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m @@ -33,8 +33,8 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { @property (nonatomic, weak, readonly, nullable) id delegate; @property (nonatomic, assign, readonly) IGListUpdateTransactationConfig config; @property (nonatomic, assign, readonly) BOOL animated; -@property (nonatomic, copy, readonly, nullable) IGListTransitionData *data; -@property (nonatomic, copy, readonly, nullable) IGListTransitionDataApplyBlock applyDataBlock; +@property (nonatomic, copy, readonly, nullable) IGListTransitionData *sectionData; +@property (nonatomic, copy, readonly, nullable) IGListTransitionDataApplyBlock applySectionDataBlock; @property (nonatomic, copy, readonly) NSArray *itemUpdateBlocks; @property (nonatomic, copy, readonly) NSArray *completionBlocks; // Internal @@ -52,8 +52,8 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { delegate:(id)delegate config:(IGListUpdateTransactationConfig)config animated:(BOOL)animated - dataBlock:(IGListTransitionDataBlock)dataBlock - applyDataBlock:(IGListTransitionDataApplyBlock)applyDataBlock + sectionDataBlock:(IGListTransitionDataBlock)sectionDataBlock + applySectionDataBlock:(IGListTransitionDataApplyBlock)applySectionDataBlock itemUpdateBlocks:(NSArray *)itemUpdateBlocks completionBlocks:(NSArray *)completionBlocks { if (self = [super init]) { @@ -62,8 +62,8 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { _delegate = delegate; _config = config; _animated = animated; - _data = dataBlock ? dataBlock() : nil; - _applyDataBlock = [applyDataBlock copy]; + _sectionData = sectionDataBlock ? sectionDataBlock() : nil; + _applySectionDataBlock = [applySectionDataBlock copy]; _itemUpdateBlocks = [itemUpdateBlocks copy]; _completionBlocks = [completionBlocks copy]; @@ -84,7 +84,7 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { } #ifdef DEBUG - for (id obj in self.data.toObjects) { + for (id obj in self.sectionData.toObjects) { IGAssert([obj conformsToProtocol:@protocol(IGListDiffable)], @"In order to use IGListAdapterUpdater, object %@ must conform to IGListDiffable", obj); IGAssert([obj diffIdentifier] != nil, @@ -106,7 +106,7 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { } - (void)_diff { - IGListTransitionData *data = self.data; + IGListTransitionData *data = self.sectionData; [self.delegate listAdapterUpdater:self.updater willDiffFromObjects:data.fromObjects toObjects:data.toObjects]; const BOOL onBackground = IGListExperimentEnabled(self.config.experiments, IGListExperimentBackgroundDiffing); @@ -141,11 +141,11 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { [self _bail]; } else if (diffResult.changeCount > 100 && self.config.allowsReloadingOnTooManyUpdates) { [self _reload]; - } else if (self.data && [self.collectionView numberOfSections] != self.data.fromObjects.count) { + } else if (self.sectionData && [self.collectionView numberOfSections] != self.sectionData.fromObjects.count) { // If data is nil, there are no section updates. IGFailAssert(@"The UICollectionView's section count (%i) didn't match the IGListAdapter's count (%i), so we can't performBatchUpdates. Falling back to reloadData.", [self.collectionView numberOfSections], - self.data.fromObjects.count); + self.sectionData.fromObjects.count); [self _reload]; } else { [self _applyDiff:diffResult]; @@ -154,8 +154,8 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { [self.delegate listAdapterUpdater:self.updater collectionView:self.collectionView willCrashWithException:exception - fromObjects:self.data.fromObjects - toObjects:self.data.toObjects + fromObjects:self.sectionData.fromObjects + toObjects:self.sectionData.toObjects diffResult:diffResult updates:(id)_actualCollectionViewUpdates]; @throw exception; @@ -165,8 +165,8 @@ typedef NS_ENUM (NSInteger, IGListBatchUpdateTransactionMode) { - (void)_applyDiff:(IGListIndexSetResult *)diffResult { [self.delegate listAdapterUpdater:self.updater willPerformBatchUpdatesWithCollectionView:self.collectionView - fromObjects:self.data.fromObjects - toObjects:self.data.toObjects + fromObjects:self.sectionData.fromObjects + toObjects:self.sectionData.toObjects listIndexSetResult:diffResult animated:self.animated]; @@ -222,8 +222,8 @@ willPerformBatchUpdatesWithCollectionView:self.collectionView // run the update block so that the adapter can set its items. this makes sure that just before the update is // committed that the data source is updated to the /latest/ "toObjects". this makes the data source in sync // with the items that the updater is transitioning to - if (self.applyDataBlock != nil && self.data != nil) { - self.applyDataBlock((IGListTransitionData *)self.data); + if (self.applySectionDataBlock != nil && self.sectionData != nil) { + self.applySectionDataBlock((IGListTransitionData *)self.sectionData); } // execute each item update block which should make calls like insert, delete, and reload for index paths @@ -261,7 +261,7 @@ willPerformBatchUpdatesWithCollectionView:self.collectionView self.inUpdateItemCollector.itemDeletes, self.inUpdateItemCollector.itemReloads, self.inUpdateItemCollector.itemMoves, - self.data.fromObjects ?: @[], + self.sectionData.fromObjects ?: @[], self.config.sectionMovesAsDeletesInserts, self.config.preferItemReloadsForSectionReloads); } diff --git a/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h b/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h index 771c4bef..4eb2b55b 100644 --- a/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h +++ b/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h @@ -26,14 +26,14 @@ IGLK_SUBCLASSING_RESTRICTED @param animated A flag indicating if the transition should be animated. @param collectionViewBlock A block returning the collecion view to perform updates on. - @param dataBlock A block which returns the transition data - @param applyDataBlock A block that applies the data passed from the `dataBlock` block + @param sectionDataBlock A block which returns the transition data + @param applySectionDataBlock A block that applies the data passed from the `sectionDataBlock` block @param completion A completion block to execute when the update is finished. */ - (void)addSectionBatchUpdateAnimated:(BOOL)animated collectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock - dataBlock:(IGListTransitionDataBlock)dataBlock - applyDataBlock:(IGListTransitionDataApplyBlock)applyDataBlock + sectionDataBlock:(IGListTransitionDataBlock)sectionDataBlock + applySectionDataBlock:(IGListTransitionDataApplyBlock)applySectionDataBlock completion:(nullable IGListUpdatingCompletion)completion; /** diff --git a/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.m b/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.m index d7df65f6..39053099 100644 --- a/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.m +++ b/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.m @@ -25,8 +25,8 @@ typedef NS_ENUM (NSInteger, IGListUpdateTransactionBuilderMode) { @interface IGListUpdateTransactionBuilder () // Batch updates -@property (nonatomic, copy, readwrite, nullable) IGListTransitionDataBlock dataBlock; -@property (nonatomic, copy, readwrite, nullable) IGListTransitionDataApplyBlock applyDataBlock; +@property (nonatomic, copy, readwrite, nullable) IGListTransitionDataBlock sectionDataBlock; +@property (nonatomic, copy, readwrite, nullable) IGListTransitionDataApplyBlock applySectionDataBlock; @property (nonatomic, strong, readonly) NSMutableArray *itemUpdateBlocks; @property (nonatomic, assign, readwrite) BOOL animated; // Reload @@ -54,8 +54,8 @@ typedef NS_ENUM (NSInteger, IGListUpdateTransactionBuilderMode) { - (void)addSectionBatchUpdateAnimated:(BOOL)animated collectionViewBlock:(IGListCollectionViewBlock)collectionViewBlock - dataBlock:(IGListTransitionDataBlock)dataBlock - applyDataBlock:(IGListTransitionDataApplyBlock)applyDataBlock + sectionDataBlock:(IGListTransitionDataBlock)sectionDataBlock + applySectionDataBlock:(IGListTransitionDataApplyBlock)applySectionDataBlock completion:(IGListUpdatingCompletion)completion { self.mode = MAX(self.mode, IGListUpdateTransactionBuilderModeBatchUpdate); @@ -64,11 +64,11 @@ typedef NS_ENUM (NSInteger, IGListUpdateTransactionBuilderMode) { self.animated = self.animated && animated; self.collectionViewBlock = collectionViewBlock; - // will call the dataBlock after the dispatch - self.dataBlock = dataBlock; + // will call the sectionDataBlock after the dispatch + self.sectionDataBlock = sectionDataBlock; // always use the last update block, even though this should always do the exact same thing - self.applyDataBlock = applyDataBlock; + self.applySectionDataBlock = applySectionDataBlock; IGListUpdatingCompletion localCompletion = completion; if (localCompletion) { @@ -124,8 +124,8 @@ typedef NS_ENUM (NSInteger, IGListUpdateTransactionBuilderMode) { // Section update self.animated = self.animated && builder.animated; - self.dataBlock = self.dataBlock ?: builder.dataBlock; - self.applyDataBlock = self.applyDataBlock ?: builder.applyDataBlock; + self.sectionDataBlock = self.sectionDataBlock ?: builder.sectionDataBlock; + self.applySectionDataBlock = self.applySectionDataBlock ?: builder.applySectionDataBlock; // Item updates [self.itemUpdateBlocks addObjectsFromArray:builder.itemUpdateBlocks]; @@ -153,8 +153,8 @@ typedef NS_ENUM (NSInteger, IGListUpdateTransactionBuilderMode) { delegate:delegate config:config animated:self.animated - dataBlock:self.dataBlock - applyDataBlock:self.applyDataBlock + sectionDataBlock:self.sectionDataBlock + applySectionDataBlock:self.applySectionDataBlock itemUpdateBlocks:self.itemUpdateBlocks completionBlocks:self.completionBlocks]; } @@ -186,7 +186,7 @@ typedef NS_ENUM (NSInteger, IGListUpdateTransactionBuilderMode) { return self.mode == IGListUpdateTransactionBuilderModeReload || self.mode == IGListUpdateTransactionBuilderModeDataSourceChange || self.itemUpdateBlocks.count > 0 - || self.dataBlock != nil; + || self.sectionDataBlock != nil; } @end diff --git a/Tests/IGListAdapterUpdaterTests.m b/Tests/IGListAdapterUpdaterTests.m index 1cdb65c5..1bfe3da1 100644 --- a/Tests/IGListAdapterUpdaterTests.m +++ b/Tests/IGListAdapterUpdaterTests.m @@ -28,7 +28,7 @@ @property (nonatomic, strong) UICollectionView *collectionView; @property (nonatomic, strong) IGListTestUICollectionViewDataSource *dataSource; @property (nonatomic, strong) IGListAdapterUpdater *updater; -@property (nonatomic, strong) IGListTransitionDataApplyBlock applyDataBlock; +@property (nonatomic, strong) IGListTransitionDataApplyBlock applySectionDataBlock; @end @@ -57,7 +57,7 @@ self.dataSource = [[IGListTestUICollectionViewDataSource alloc] initWithCollectionView:self.collectionView]; self.updater = [IGListAdapterUpdater new]; __weak __typeof__(self) weakSelf = self; - self.applyDataBlock = ^(IGListTransitionData *data) { + self.applySectionDataBlock = ^(IGListTransitionData *data) { weakSelf.dataSource.sections = data.toObjects; }; } @@ -71,29 +71,29 @@ } - (void)test_whenUpdatingtoObjects_thatUpdaterHasChanges { - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:@[] toObjects:@[@0]] - applyDataBlock:self.applyDataBlock - completion:nil]; + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:@[] toObjects:@[@0]] + applySectionDataBlock:self.applySectionDataBlock + completion:nil]; XCTAssertTrue([self.updater hasChanges]); } - (void)test_whenUpdatingfromObjects_thatUpdaterHasChanges { - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:@[@0] toObjects:@[]] - applyDataBlock:self.applyDataBlock - completion:nil]; + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:@[@0] toObjects:@[]] + applySectionDataBlock:self.applySectionDataBlock + completion:nil]; XCTAssertTrue([self.updater hasChanges]); } - (void)test_whenUpdatingtoObjects_withfromObjects_thatUpdaterHasChanges { - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:@[@0] toObjects:@[@1]] - applyDataBlock:self.applyDataBlock - completion:nil]; + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:@[@0] toObjects:@[@1]] + applySectionDataBlock:self.applySectionDataBlock + completion:nil]; XCTAssertTrue([self.updater hasChanges]); } @@ -136,11 +136,11 @@ XCTAssertEqual([self.collectionView numberOfSections], 1); XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 2); [expectation fulfill]; }]; @@ -162,11 +162,11 @@ XCTAssertEqual([self.collectionView numberOfSections], 2); XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 1); [expectation fulfill]; }]; @@ -189,11 +189,11 @@ XCTAssertEqual([self.collectionView numberOfItemsInSection:0], 1); XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 2); XCTAssertEqual([self.collectionView numberOfItemsInSection:0], 2); XCTAssertEqual([self.collectionView numberOfItemsInSection:1], 2); @@ -221,11 +221,11 @@ XCTAssertEqual([self.collectionView numberOfItemsInSection:0], 3); XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 3); XCTAssertEqual([self.collectionView numberOfItemsInSection:0], 2); XCTAssertEqual([self.collectionView numberOfItemsInSection:1], 1); @@ -237,9 +237,9 @@ - (void)test_whenReloadingSections_thatCollectionViewUpdates { self.dataSource.sections = @[ - [IGSectionObject sectionWithObjects:@[@0, @1]], - [IGSectionObject sectionWithObjects:@[@0, @1]] - ]; + [IGSectionObject sectionWithObjects:@[@0, @1]], + [IGSectionObject sectionWithObjects:@[@0, @1]] + ]; [self.updater reloadDataWithCollectionViewBlock:[self collectionViewBlock] reloadUpdateBlock:^{} completion:nil]; [self.updater update]; XCTAssertEqual([self.collectionView numberOfSections], 2); @@ -247,9 +247,9 @@ XCTAssertEqual([self.collectionView numberOfItemsInSection:1], 2); self.dataSource.sections = @[ - [IGSectionObject sectionWithObjects:@[@0, @1, @2]], - [IGSectionObject sectionWithObjects:@[@0, @1]] - ]; + [IGSectionObject sectionWithObjects:@[@0, @1, @2]], + [IGSectionObject sectionWithObjects:@[@0, @1]] + ]; [self.updater reloadCollectionView:self.collectionView sections:[NSIndexSet indexSetWithIndex:0]]; XCTAssertEqual([self.collectionView numberOfSections], 2); @@ -276,11 +276,11 @@ [self.collectionView setNeedsLayout]; XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 1); [expectation fulfill]; }]; @@ -309,11 +309,11 @@ [IGSectionObject sectionWithObjects:@[]], [IGSectionObject sectionWithObjects:@[]] ]; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:to toObjects:anotherTo] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:to toObjects:anotherTo] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { completionCounter++; XCTAssertEqual([self.collectionView numberOfSections], 3); XCTAssertEqual(completionCounter, 2); @@ -322,10 +322,10 @@ }; XCTestExpectation *expectation2 = genExpectation; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:^(IGListTransitionData *data) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:^(IGListTransitionData *data) { // executing this block within the updater is just before performBatchUpdates: are applied // should be able to queue another update here, similar to an update being queued between it beginning and executing // the performBatchUpdates: block @@ -333,7 +333,7 @@ self.dataSource.sections = data.toObjects; } - completion:^(BOOL finished) { + completion:^(BOOL finished) { completionCounter++; XCTAssertEqual([self.collectionView numberOfSections], 2); XCTAssertEqual(completionCounter, 1); @@ -360,14 +360,14 @@ __block BOOL itemUpdateBlockExecuted = NO; __block BOOL sectionUpdateBlockExecuted = NO; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:@[] toObjects:@[[IGSectionObject sectionWithObjects:@[@1]]]] - applyDataBlock:^(IGListTransitionData * data) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:@[] toObjects:@[[IGSectionObject sectionWithObjects:@[@1]]]] + applySectionDataBlock:^(IGListTransitionData * data) { self.dataSource.sections = data.toObjects; sectionUpdateBlockExecuted = YES; } - completion:nil]; + completion:nil]; XCTestExpectation *expectation = genExpectation; [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] animated:YES itemUpdates:^{ @@ -410,11 +410,11 @@ self.updater.sectionMovesAsDeletesInserts = YES; XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 3); XCTAssertEqual([self.collectionView numberOfItemsInSection:0], 1); XCTAssertEqual([self.collectionView numberOfItemsInSection:1], 2); @@ -500,9 +500,9 @@ // 2 sections, 1 item in 1st, 4 items in 2nd dataSource.sections = @[ - [IGSectionObject sectionWithObjects:@[@1]], - [IGSectionObject sectionWithObjects:@[@1, @2, @3, @4]] - ]; + [IGSectionObject sectionWithObjects:@[@1]], + [IGSectionObject sectionWithObjects:@[@1, @2, @3, @4]] + ]; // assert the initial state of the collection view WITHOUT any layoutSubviews or anything XCTAssertEqual([collectionView numberOfSections], 2); @@ -510,8 +510,8 @@ XCTAssertEqual([collectionView numberOfItemsInSection:1], 4); dataSource.sections = @[ - [IGSectionObject sectionWithObjects:@[@1]], - ]; + [IGSectionObject sectionWithObjects:@[@1]], + ]; IGListAdapterUpdater *updater = [IGListAdapterUpdater new]; [updater reloadDataWithCollectionViewBlock:^UICollectionView *{ return collectionView; } reloadUpdateBlock:^{} completion:nil]; @@ -521,9 +521,9 @@ XCTAssertEqual([collectionView numberOfItemsInSection:0], 1); dataSource.sections = @[ - [IGSectionObject sectionWithObjects:@[@1]], - [IGSectionObject sectionWithObjects:@[@1, @2, @3, @4]] - ]; + [IGSectionObject sectionWithObjects:@[@1]], + [IGSectionObject sectionWithObjects:@[@1, @2, @3, @4]] + ]; [updater reloadDataWithCollectionViewBlock:^UICollectionView *{ return collectionView; } reloadUpdateBlock:^{} completion:nil]; [updater update]; @@ -546,11 +546,11 @@ [[mockDelegate expect] listAdapterUpdater:self.updater didPerformBatchUpdates:OCMOCK_ANY collectionView:self.collectionView]; XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -571,11 +571,11 @@ NSArray *to = @[ [IGSectionObject sectionWithObjects:@[]] ]; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -597,11 +597,11 @@ [IGSectionObject sectionWithObjects:@[]] ]; self.collectionView.dataSource = nil; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -622,12 +622,12 @@ animated:YES itemUpdates:^{ object.objects = @[@2, @1, @4, @5]; [self.updater insertItemsIntoCollectionView:self.collectionView indexPaths:@[ - [NSIndexPath indexPathForItem:2 inSection:0], - [NSIndexPath indexPathForItem:3 inSection:0], - ]]; + [NSIndexPath indexPathForItem:2 inSection:0], + [NSIndexPath indexPathForItem:3 inSection:0], + ]]; [self.updater deleteItemsFromCollectionView:self.collectionView indexPaths:@[ - [NSIndexPath indexPathForItem:0 inSection:0], - ]]; + [NSIndexPath indexPathForItem:0 inSection:0], + ]]; [self.updater moveItemInCollectionView:self.collectionView fromIndexPath:[NSIndexPath indexPathForItem:2 inSection:0] toIndexPath:[NSIndexPath indexPathForItem:0 inSection:0]]; @@ -678,13 +678,13 @@ }]; }; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:self.dataSource.sections] - applyDataBlock:^(IGListTransitionData * _Nonnull data) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:self.dataSource.sections] + applySectionDataBlock:^(IGListTransitionData * _Nonnull data) { updateItemBlock(); } - completion:nil]; + completion:nil]; [self waitForExpectationsWithTimeout:30 handler:nil]; } @@ -697,13 +697,13 @@ __block BOOL objectTransitionBlockExecuted = NO; __block BOOL completionBlockExecuted = NO; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:self.dataSource.sections] - applyDataBlock:^(IGListTransitionData *data) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:self.dataSource.sections toObjects:self.dataSource.sections] + applySectionDataBlock:^(IGListTransitionData *data) { objectTransitionBlockExecuted = YES; } - completion:^(BOOL finished) { + completion:^(BOOL finished) { completionBlockExecuted = YES; }]; @@ -711,12 +711,12 @@ [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] animated:YES itemUpdates:^{ object.objects = @[@2, @1, @4, @5]; [self.updater insertItemsIntoCollectionView:self.collectionView indexPaths:@[ - [NSIndexPath indexPathForItem:2 inSection:0], - [NSIndexPath indexPathForItem:3 inSection:0], - ]]; + [NSIndexPath indexPathForItem:2 inSection:0], + [NSIndexPath indexPathForItem:3 inSection:0], + ]]; [self.updater deleteItemsFromCollectionView:self.collectionView indexPaths:@[ - [NSIndexPath indexPathForItem:0 inSection:0], - ]]; + [NSIndexPath indexPathForItem:0 inSection:0], + ]]; [self.updater moveItemInCollectionView:self.collectionView fromIndexPath:[NSIndexPath indexPathForItem:2 inSection:0] toIndexPath:[NSIndexPath indexPathForItem:0 inSection:0]]; @@ -751,13 +751,13 @@ object.objects = @[@1, @2]; [self.updater deleteItemsFromCollectionView:self.collectionView indexPaths:@[ - [NSIndexPath indexPathForItem:0 inSection:0], - ]]; + [NSIndexPath indexPathForItem:0 inSection:0], + ]]; object.objects = @[@1, @2, @4, @5]; [self.updater insertItemsIntoCollectionView:self.collectionView indexPaths:@[ - [NSIndexPath indexPathForItem:2 inSection:0], - [NSIndexPath indexPathForItem:3 inSection:0], - ]]; + [NSIndexPath indexPathForItem:2 inSection:0], + [NSIndexPath indexPathForItem:3 inSection:0], + ]]; object.objects = @[@2, @1, @4, @5]; [self.updater moveItemInCollectionView:self.collectionView fromIndexPath:[NSIndexPath indexPathForItem:2 inSection:0] @@ -808,11 +808,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -834,10 +834,10 @@ // Manually set the data source to be nil. self->_collectionView.dataSource = nil; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:^(IGListTransitionData *data) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:^(IGListTransitionData *data) { } completion:^(BOOL finished) { [expectation fulfill]; @@ -895,20 +895,20 @@ [self.updater update]; XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:objects1 toObjects:objects2] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:objects1 toObjects:objects2] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 2); XCTAssertEqual([self.collectionView numberOfItemsInSection:0], 2); XCTAssertEqual([self.collectionView numberOfItemsInSection:1], 2); - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:objects2 toObjects:objects3] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished2) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:objects2 toObjects:objects3] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished2) { XCTAssertEqual([self.collectionView numberOfSections], 3); XCTAssertEqual([self.collectionView numberOfItemsInSection:0], 2); XCTAssertEqual([self.collectionView numberOfItemsInSection:1], 2); @@ -947,11 +947,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -973,11 +973,11 @@ XCTAssertEqual([self.collectionView numberOfSections], 1); XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:YES - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:YES + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertEqual([self.collectionView numberOfSections], 2); [expectation fulfill]; }]; @@ -1027,11 +1027,11 @@ [[mockDelegate expect] listAdapterUpdater:self.updater didFinishWithoutUpdatesWithCollectionView:self.collectionView]; XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { XCTAssertTrue(finished); XCTAssertEqual([self.collectionView numberOfSections], 1); [expectation fulfill]; @@ -1067,11 +1067,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -1103,11 +1103,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -1145,11 +1145,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -1187,11 +1187,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -1231,11 +1231,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation; @@ -1270,11 +1270,11 @@ XCTestExpectation *expectation = genExpectation; - [self.updater performExperimentalUpdateAnimated:NO - collectionViewBlock:[self collectionViewBlock] - dataBlock:[self dataBlockFromObjects:from toObjects:to] - applyDataBlock:self.applyDataBlock - completion:^(BOOL finished) { + [self.updater performUpdateWithCollectionViewBlock:[self collectionViewBlock] + animated:NO + sectionDataBlock:[self dataBlockFromObjects:from toObjects:to] + applySectionDataBlock:self.applySectionDataBlock + completion:^(BOOL finished) { [expectation fulfill]; }]; waitExpectation;