IGListKit/Tests/Objects/IGTestDiffingObject.m
Jeff Bailey a7d720d007 IGListBindingSectionController no longer asserts when reloading the entire section. (#1213)
Summary:
Issue fixed: #1174

- [X] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [X] I added an entry to the `CHANGELOG.md` for any breaking changes, enhancements, or bug fixes.
- [X] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Pull Request resolved: https://github.com/Instagram/IGListKit/pull/1213

Differential Revision: D9003398

Pulled By: rnystrom

fbshipit-source-id: 2c68f42e21abaea9191f26309668d866544f80b4
2018-07-25 14:40:22 -07:00

45 lines
1.2 KiB
Objective-C

/**
* Copyright (c) 2016-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import "IGTestDiffingObject.h"
@implementation IGTestDiffingObject
- (instancetype)initWithKey:(id)key objects:(NSArray *)objects {
if (self = [super init]) {
_key = key;
_objects = objects;
}
return self;
}
- (NSString *)description {
return [NSString stringWithFormat:@"<%@: %p; key: %@; objects: %@>",
NSStringFromClass(self.class), self, self.key, self.objects];
}
#pragma mark - IGListDiffable
- (id<NSObject>)diffIdentifier {
return self.key;
}
- (BOOL)isEqualToDiffableObject:(id)object {
if (object == self) {
return YES;
}
if ([object isKindOfClass:[IGTestDiffingObject class]]) {
/* A simple equality test that only looks at the number of objects for the key.
It does not currently test the equality of each of the objects. */
IGTestDiffingObject *testDiffingObject = (IGTestDiffingObject *)object;
return self.objects.count == testDiffingObject.objects.count;
}
return NO;
}
@end