Files
flipper/iOS/FlipperKitTestUtils/FlipperConnectionMock.m
Lorenzo Blasa 1406e291ee Send with raw parameters
Summary:
On Android we already had an API to send raw arguments i.e. raw json as params.

This just adds feature parity on iOS.

Reviewed By: LukeDefeo

Differential Revision: D41433777

fbshipit-source-id: abd47f987b9e2b451100e81acf6fea61cd876807
2022-11-28 09:45:53 -08:00

64 lines
1.7 KiB
Objective-C

/*
* Copyright (c) Meta Platforms, Inc. and 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 withRawParams:(NSString*)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