2019-12-19 17:32:49 +00:00
|
|
|
/*
|
2023-04-06 09:44:16 +00:00
|
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
2017-03-15 14:44:52 +00:00
|
|
|
*
|
2018-05-01 21:33:50 +00:00
|
|
|
* This source code is licensed under the MIT license found in the
|
|
|
|
|
* LICENSE file in the root directory of this source tree.
|
2017-03-15 14:44:52 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#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;
|
|
|
|
|
}
|
|
|
|
|
|
2018-07-25 21:31:05 +00:00
|
|
|
- (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;
|
|
|
|
|
}
|
2019-12-19 17:32:49 +00:00
|
|
|
|
2018-07-25 21:31:05 +00:00
|
|
|
return NO;
|
2017-03-15 14:44:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@end
|