Files
arduino-libs/arduino-cli/libraries/painlessMesh-master/test/catch/catch_tcp.cpp
2024-07-20 22:09:06 +08:00

50 lines
1.1 KiB
C++

#define CATCH_CONFIG_MAIN
#include "catch2/catch.hpp"
#include "Arduino.h"
#include "catch_utils.hpp"
WiFiClass WiFi;
ESPClass ESP;
#include "painlessmesh/logger.hpp"
using namespace painlessmesh;
logger::LogClass Log;
SCENARIO("Fake Async classes behave similar to real ones") {
int i = 0;
std::string j = "";
auto server = AsyncServer();
AsyncClient *conn;
server.onClient([&conn, &i, &j](void *, AsyncClient *client) {
conn = client;
conn->onData([&j](void *, AsyncClient *client, void *data,
size_t len) { j = std::string((char *)data, len); },
NULL);
++i;
});
auto client = AsyncClient(&server);
std::string j2 = "";
client.onData([&j2](void *arg, AsyncClient *client, void *data,
size_t len) { j2 = std::string((char *)data, len); },
NULL);
client.connect(IPAddress(), 0);
THEN("server.onConnect is called") { REQUIRE(i == 1); }
THEN("I can send data") {
client.write("Blaat", 5);
REQUIRE(j == "Blaat");
conn->write("Blaat terug", 11);
REQUIRE(j2 == "Blaat terug");
}
delete conn;
}