From a41026d93d0eebc2eee52a63e07c6e74f051b991 Mon Sep 17 00:00:00 2001 From: Tim Oliver Date: Tue, 21 Mar 2023 19:12:01 -0700 Subject: [PATCH] Provide full test coverage for IGListBatchUpdateData.mm Summary: There were some codepaths in `IGListBatchUpdateData.mm` that weren't completely covered by our unit test suite. Namely the equality checks where the object addresses are compared, and when incompatible objects are compared. This diff adds 2 extra tests to cover those cases, bringing `IGListBatchUpdateData.mm`'s test coverage up to 100%. Differential Revision: D44001262 fbshipit-source-id: 516851ca6ebdcbf3a1a4e7e6e0bd2efcef69920a --- Tests/IGListBatchUpdateDataTests.m | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Tests/IGListBatchUpdateDataTests.m b/Tests/IGListBatchUpdateDataTests.m index 0e8c4c7a..8e065eda 100644 --- a/Tests/IGListBatchUpdateDataTests.m +++ b/Tests/IGListBatchUpdateDataTests.m @@ -151,4 +151,27 @@ static IGListMoveIndex *newMove(NSInteger from, NSInteger to) { XCTAssertEqualObjects(result.deleteIndexPaths, @[newPath(2, 0)]); } +- (void)test_whenUpdatesAreClean_thatObjectIsEqualToItself { + IGListBatchUpdateData *result = [[IGListBatchUpdateData alloc] initWithInsertSections:indexSet(@[@0, @1]) + deleteSections:indexSet(@[@5]) + moveSections:[NSSet setWithArray:@[newMove(3, 4)]] + insertIndexPaths:@[newPath(0, 0)] + deleteIndexPaths:@[newPath(1, 0)] + updateIndexPaths:@[] + moveIndexPaths:@[newMovePath(6, 0, 6, 1)]]; + XCTAssertTrue([result isEqual:result]); +} + +- (void)test_whenEmptyUpdates_thatResultDoesNotEqualOtherClasses { + IGListBatchUpdateData *emptyResult = [[IGListBatchUpdateData alloc] initWithInsertSections:indexSet(@[]) + deleteSections:indexSet(@[]) + moveSections:[NSSet new] + insertIndexPaths:@[] + deleteIndexPaths:@[] + updateIndexPaths:@[] + moveIndexPaths:@[]]; + + XCTAssertFalse([emptyResult isEqual:[NSObject new]]); +} + @end