Files
flipper/xplat/FlipperTestLib/FlipperConnectionManagerMock.h
Lorenzo Blasa 7cec520729 New 'isConnected' API
Summary:
Expose a new API to be used to check if there's an open connection with Flipper Desktop.

Changelog: new FlipperClient isConnected API

Reviewed By: antonk52

Differential Revision: D46841095

fbshipit-source-id: 82a60f52496fb218cb50c6a28d7ffe7225ae23aa
2023-06-20 00:46:55 -07:00

91 lines
2.2 KiB
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.
*/
#pragma once
#include <Flipper/FireAndForgetBasedFlipperResponder.h>
#include <Flipper/FlipperConnectionManager.h>
namespace facebook {
namespace flipper {
namespace test {
class FlipperConnectionManagerMock : public FlipperConnectionManager {
public:
FlipperConnectionManagerMock() : callbacks(nullptr) {}
void start() override {
connected = true;
if (callbacks) {
callbacks->onConnected();
}
}
void stop() override {
connected = false;
if (callbacks) {
callbacks->onDisconnected();
}
}
bool isConnected() const override {
return connected;
}
void sendMessage(const folly::dynamic& message) override {
messages.push_back(message);
}
void sendMessageRaw(const std::string& message) override {
messages.push_back(folly::parseJson(message));
}
void setCertificateProvider(
const std::shared_ptr<FlipperCertificateProvider> provider) override{};
std::shared_ptr<FlipperCertificateProvider> getCertificateProvider()
override {
return nullptr;
};
void onMessageReceived(
const folly::dynamic& message,
std::unique_ptr<FlipperResponder> responder) override {
if (responder) {
const FireAndForgetBasedFlipperResponder* const r =
dynamic_cast<FireAndForgetBasedFlipperResponder*>(responder.get());
if (r) {
if (r->hasId()) {
++respondersWithIdReceived;
} else {
++respondersWithoutIdReceived;
}
} else {
++respondersWithIdReceived;
}
}
callbacks->onMessageReceived(message, std::move(responder));
messagesReceived.push_back(message);
}
void setCallbacks(Callbacks* aCallbacks) override {
callbacks = aCallbacks;
}
public:
bool connected = false;
Callbacks* callbacks;
std::vector<folly::dynamic> messages;
std::vector<folly::dynamic> messagesReceived;
int respondersWithIdReceived = 0;
int respondersWithoutIdReceived = 0;
};
} // namespace test
} // namespace flipper
} // namespace facebook