Files
flipper/iOS/FlipperKitTestUtils/FlipperConnectionMock.m
Edward Pastuszenski 64df212cd3 Support iOS FlipperConnection send with array parameters
Summary: Achieving API parity with C++ and Android.

Reviewed By: lblasa

Differential Revision: D31921830

fbshipit-source-id: 873901107fc3c53166fa7bbaaff65ebdb0e53c2a
2021-10-28 14:58:36 -07:00

60 lines
1.6 KiB
Objective-C

/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import "FlipperConnectionMock.h"
@implementation FlipperConnectionMock
- (instancetype)init {
if (self = [super init]) {
_connected = YES;
_receivers = @{};
_sent = @{};
_sentWithArray = @{};
}
return self;
}
- (void)sendInternal:(NSString*)method
withParams:(id)params
loggedTo:(NSDictionary* __strong*)sentLog {
if (_connected) {
NSMutableDictionary* newSentLog = [NSMutableDictionary new];
[newSentLog addEntriesFromDictionary:*sentLog];
if (newSentLog[method]) {
newSentLog[method] = [(*sentLog)[method] arrayByAddingObject:params];
} else {
newSentLog[method] = @[ params ];
}
*sentLog = newSentLog;
}
}
- (void)send:(NSString*)method withParams:(NSDictionary*)params {
[self sendInternal:method withParams:params loggedTo:&_sent];
}
- (void)send:(NSString*)method withArrayParams:(NSArray*)params {
[self sendInternal:method withParams:params loggedTo:&_sentWithArray];
}
- (void)receive:(NSString*)method withBlock:(SonarReceiver)receiver {
if (_connected) {
NSMutableDictionary* newReceivers = [NSMutableDictionary new];
[newReceivers addEntriesFromDictionary:_receivers];
newReceivers[method] = receiver;
_receivers = newReceivers;
}
}
- (void)errorWithMessage:(NSString*)message stackTrace:(NSString*)stacktrace {
// Empty Implementation
// TODO: Test this method too.
}
@end