diff --git a/Tests/IGListDiffResultTests.m b/Tests/IGListDiffResultTests.m index b66f5b0..6d7eb98 100644 --- a/Tests/IGListDiffResultTests.m +++ b/Tests/IGListDiffResultTests.m @@ -68,4 +68,52 @@ XCTAssertEqual(set.count, 2); } +- (void)test_whenComparingMovePointers_withIndexPaths_thatEqual { + IGListMoveIndexPath *move = [[IGListMoveIndexPath alloc] initWithFrom:[NSIndexPath new] to:[NSIndexPath new]]; + XCTAssertTrue([move isEqual:move]); +} + +- (void)test_whenComparingMovePointers_withIndexes_thatEqual { + IGListMoveIndex *move = [[IGListMoveIndex alloc] initWithFrom:1 to:1]; + XCTAssertTrue([move isEqual:move]); +} + +- (void)test_whenComparingMoves_withIndexPaths_withNonMove_thatNotEqual { + IGListMoveIndexPath *move = [[IGListMoveIndexPath alloc] initWithFrom:[NSIndexPath new] to:[NSIndexPath new]]; + XCTAssertFalse([move isEqual:[NSObject new]]); +} + +- (void)test_whenComparingMoves_withIndexes_withNonMove_thatNotEqual { + IGListMoveIndex *move = [[IGListMoveIndex alloc] initWithFrom:1 to:1]; + XCTAssertFalse([move isEqual:[NSObject new]]); +} + +- (void)test_whenSortingMoves_withIndexPaths_thatSorted { + NSArray *moves = @[ + [[IGListMoveIndexPath alloc] initWithFrom:[NSIndexPath indexPathForItem:2 inSection:2] + to:[NSIndexPath indexPathForItem:3 inSection:3]], + [[IGListMoveIndexPath alloc] initWithFrom:[NSIndexPath indexPathForItem:6 inSection:3] + to:[NSIndexPath indexPathForItem:7 inSection:4]], + [[IGListMoveIndexPath alloc] initWithFrom:[NSIndexPath indexPathForItem:0 inSection:1] + to:[NSIndexPath indexPathForItem:1 inSection:5]], + [[IGListMoveIndexPath alloc] initWithFrom:[NSIndexPath indexPathForItem:2 inSection:2] + to:[NSIndexPath indexPathForItem:3 inSection:3]], + ]; + NSArray *expected = @[moves[2], moves[0], moves[3], moves[1]]; + NSArray *sorted = [moves sortedArrayUsingSelector:@selector(compare:)]; + XCTAssertEqualObjects(sorted, expected); +} + +- (void)test_whenSortingMoves_withIndexes_thatSorted { + NSArray *moves = @[ + [[IGListMoveIndex alloc] initWithFrom:2 to:2], + [[IGListMoveIndex alloc] initWithFrom:3 to:2], + [[IGListMoveIndex alloc] initWithFrom:1 to:2], + [[IGListMoveIndex alloc] initWithFrom:2 to:2], + ]; + NSArray *expected = @[moves[2], moves[0], moves[3], moves[1]]; + NSArray *sorted = [moves sortedArrayUsingSelector:@selector(compare:)]; + XCTAssertEqualObjects(sorted, expected); +} + @end