50 lines
1.1 KiB
C++
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;
|
|
}
|