Fix NPE using mock for unknown database objects.

pull/1/head
Matthew Chen 7 years ago
parent 708ef6f7dd
commit 723691400f

@ -97,10 +97,12 @@ NS_ASSUME_NONNULL_BEGIN
NSMutableArray<NSString *> *interactionIds = [NSMutableArray new]; NSMutableArray<NSString *> *interactionIds = [NSMutableArray new];
YapDatabaseViewTransaction *interactionsByThread = [transaction ext:TSMessageDatabaseViewExtensionName]; YapDatabaseViewTransaction *interactionsByThread = [transaction ext:TSMessageDatabaseViewExtensionName];
OWSAssert(interactionsByThread); OWSAssert(interactionsByThread);
[interactionsByThread [interactionsByThread enumerateKeysInGroup:self.uniqueId
enumerateKeysInGroup:self.uniqueId usingBlock:^(NSString *collection, NSString *key, NSUInteger index, BOOL *stop) {
usingBlock:^( if (key.length < 1) {
NSString *_Nonnull collection, NSString *_Nonnull key, NSUInteger index, BOOL *_Nonnull stop) { OWSProdLogAndFail(@"%@ invalid key in thread interactions.", self.logTag);
return;
}
[interactionIds addObject:key]; [interactionIds addObject:key];
}]; }];
@ -157,13 +159,8 @@ NS_ASSUME_NONNULL_BEGIN
usingBlock:(void (^)(TSInteraction *interaction, usingBlock:(void (^)(TSInteraction *interaction,
YapDatabaseReadTransaction *transaction))block YapDatabaseReadTransaction *transaction))block
{ {
void (^interactionBlock)(NSString *, NSString *, id, id, NSUInteger, BOOL *) = ^void(NSString *_Nonnull collection, void (^interactionBlock)(NSString *, NSString *, id, id, NSUInteger, BOOL *) = ^void(
NSString *_Nonnull key, NSString *collection, NSString *key, id _Nonnull object, id _Nonnull metadata, NSUInteger index, BOOL *stop) {
id _Nonnull object,
id _Nonnull metadata,
NSUInteger index,
BOOL *_Nonnull stop) {
TSInteraction *interaction = object; TSInteraction *interaction = object;
block(interaction, transaction); block(interaction, transaction);
}; };
@ -194,7 +191,7 @@ NS_ASSUME_NONNULL_BEGIN
- (NSArray<TSInteraction *> *)allInteractions - (NSArray<TSInteraction *> *)allInteractions
{ {
NSMutableArray<TSInteraction *> *interactions = [NSMutableArray new]; NSMutableArray<TSInteraction *> *interactions = [NSMutableArray new];
[self enumerateInteractionsUsingBlock:^(TSInteraction *_Nonnull interaction) { [self enumerateInteractionsUsingBlock:^(TSInteraction *interaction) {
[interactions addObject:interaction]; [interactions addObject:interaction];
}]; }];
@ -219,7 +216,7 @@ NS_ASSUME_NONNULL_BEGIN
- (NSUInteger)numberOfInteractions - (NSUInteger)numberOfInteractions
{ {
__block NSUInteger count; __block NSUInteger count;
[[self dbReadConnection] readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) { [[self dbReadConnection] readWithBlock:^(YapDatabaseReadTransaction *transaction) {
YapDatabaseViewTransaction *interactionsByThread = [transaction ext:TSMessageDatabaseViewExtensionName]; YapDatabaseViewTransaction *interactionsByThread = [transaction ext:TSMessageDatabaseViewExtensionName];
count = [interactionsByThread numberOfItemsInGroup:self.uniqueId]; count = [interactionsByThread numberOfItemsInGroup:self.uniqueId];
}]; }];

Loading…
Cancel
Save