Add tests

This commit is contained in:
Ryo Aoyama
2019-12-10 15:26:30 +09:00
parent b581a3e266
commit 8db42c2188
4 changed files with 37 additions and 13 deletions
@@ -35,7 +35,7 @@ open class CocoaCollectionViewDiffableDataSource<SectionIdentifierType: Hashable
/// diffing animation.
/// - completion: An optional completion block which is called when the complete
/// performing updates.
public func apply(_ snapshot: DiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>, animatingDifferences: Bool = true) {
public func apply(_ snapshot: DiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>, animatingDifferences: Bool = true, completion: (() -> Void)? = nil) {
core.apply(
snapshot,
view: collectionView,
@@ -22,21 +22,29 @@ final class CocoaCollectionViewDiffableDataSourceTests: XCTestCase {
var snapshot = DiffableDataSourceSnapshot<Int, Int>()
dataSource.apply(snapshot)
let e1 = expectation(description: "testApply() e1")
dataSource.apply(snapshot, completion: e1.fulfill)
wait(for: [e1], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 0)
snapshot.appendSections([0])
snapshot.appendItems([0])
dataSource.apply(snapshot)
let e2 = expectation(description: "testApply() e2")
dataSource.apply(snapshot, completion: e2.fulfill)
wait(for: [e2], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 1)
dataSource.apply(snapshot)
let e3 = expectation(description: "testApply() e3")
dataSource.apply(snapshot, completion: e3.fulfill)
wait(for: [e3], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 1)
snapshot.appendItems([1])
dataSource.apply(snapshot)
let e4 = expectation(description: "testApply() e4")
dataSource.apply(snapshot, completion: e4.fulfill)
wait(for: [e4], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 2)
}
@@ -22,21 +22,29 @@ final class CollectionViewDiffableDataSourceTests: XCTestCase {
var snapshot = DiffableDataSourceSnapshot<Int, Int>()
dataSource.apply(snapshot)
let e1 = expectation(description: "testApply() e1")
dataSource.apply(snapshot, completion: e1.fulfill)
wait(for: [e1], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 0)
snapshot.appendSections([0])
snapshot.appendItems([0])
dataSource.apply(snapshot)
let e2 = expectation(description: "testApply() e2")
dataSource.apply(snapshot, completion: e2.fulfill)
wait(for: [e2], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 1)
dataSource.apply(snapshot)
let e3 = expectation(description: "testApply() e3")
dataSource.apply(snapshot, completion: e3.fulfill)
wait(for: [e3], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 1)
snapshot.appendItems([1])
dataSource.apply(snapshot)
let e4 = expectation(description: "testApply() e4")
dataSource.apply(snapshot, completion: e4.fulfill)
wait(for: [e4], timeout: 1)
XCTAssertEqual(collectionView.isPerformBatchUpdatesCalledCount, 2)
}
+12 -4
View File
@@ -22,21 +22,29 @@ final class TableViewDiffableDataSourceTests: XCTestCase {
var snapshot = DiffableDataSourceSnapshot<Int, Int>()
dataSource.apply(snapshot)
let e1 = expectation(description: "testApply() e1")
dataSource.apply(snapshot, completion: e1.fulfill)
wait(for: [e1], timeout: 1)
XCTAssertEqual(tableView.isPerformBatchUpdatesCalledCount, 0)
snapshot.appendSections([0])
snapshot.appendItems([0])
dataSource.apply(snapshot)
let e2 = expectation(description: "testApply() e2")
dataSource.apply(snapshot, completion: e2.fulfill)
wait(for: [e2], timeout: 1)
XCTAssertEqual(tableView.isPerformBatchUpdatesCalledCount, 1)
dataSource.apply(snapshot)
let e3 = expectation(description: "testApply() e3")
dataSource.apply(snapshot, completion: e3.fulfill)
wait(for: [e3], timeout: 1)
XCTAssertEqual(tableView.isPerformBatchUpdatesCalledCount, 1)
snapshot.appendItems([1])
dataSource.apply(snapshot)
let e4 = expectation(description: "testApply() e4")
dataSource.apply(snapshot, completion: e4.fulfill)
wait(for: [e4], timeout: 1)
XCTAssertEqual(tableView.isPerformBatchUpdatesCalledCount, 2)
}