ADC/tests/adc_netmsg_test.cpp
2024-06-07 16:59:27 +03:00

151 lines
3.4 KiB
C++

#include <list>
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include <doctest/doctest.h>
#include <iostream>
// #include "../common/adc_utils.h"
// #include "../net/adc_netmessage.h"
#include "../net/adc_endpoint.h"
#include "../net/adc_netmsg.h"
using namespace adc;
static constexpr char DD[] = "=";
static constexpr char TD[] = "-";
TEST_CASE("[ADC NET MESSAGE]")
{
AdcKeyTokenNetMessage<DD> msg;
std::string_view bytes{"SET=POS 1 2 3 4 5"};
std::cout << "INPUT BYTES: [" << bytes << "]\n";
msg.setFromBytes(bytes.begin(), bytes.end());
auto keyv = msg.keyView();
auto keyb = msg.keyBytes();
std::cout << "KEY VIEW: [" << keyv << "]\n";
std::cout << "KEY BYTE: [" << keyb << "]\n";
auto tks = msg.tokens(1, 3);
for (auto& el : tks) {
std::cout << "TOKEN: [" << el << "]\n";
}
auto t2 = msg.bytesView();
std::cout << "BYTES VIEW: ";
for (auto& el : t2) {
std::cout << "[" << el << "]";
}
std::cout << "\n";
std::cout << "\n\n---------\n\n";
msg.setTokens("FILTER", "A1", "B3");
std::cout << "BYTES: " << msg.bytes() << "\n";
std::cout << "TOK BYTES: [" << msg.tokensBytes(1, 1) << "]\n";
std::cout << "\n\n---------\n\n";
AdcTokenNetMessage<> tmsg;
std::list<char> bb{'1', ' ', '2', ' ', '3', ' ', '4', ' ', '5'};
tmsg.setFromBytes(bb.begin(), bb.end());
auto t1 = tmsg.bytesView();
std::cout << "TOKENS VIEW: ";
for (auto& el : t1) {
std::cout << "[" << el << "]";
}
std::cout << "\n";
std::cout << "\n\n\n";
AdcEndpoint ept(AdcEndpoint::PROTO_ID_LOCAL, "SOCK");
std::cout << "EPT: [" << ept.endpoint() << "]\n";
std::cout << "EPT SZ: " << ept.endpoint().size() << "\n";
char ee[] = "tls://dewlkj.dwed.dwed:8012/dwelk";
ept.setEndpoint(ee);
std::cout << "EPT: [" << ept.endpoint() << "]\n";
}
/*
TEST_CASE("[ADC NET MESSAGE]")
{
AdcKeyParamNetMessage<DD> msg;
std::string_view bytes{"SET=POS 1 2 3 4 5"};
std::cout << "INPUT BYTES: [" << bytes << "]\n";
msg.setFromBytes(bytes.begin(), bytes.end());
std::string key, pars, bb;
msg.key(key);
std::cout << "KEY: [" << key << "]\n";
msg.paramsBytes(pars);
std::cout << "PARS BYTES: [" << pars << "]\n";
pars.clear();
msg.paramsBytes(pars, 2, 3);
std::cout << "PARS BYTES: [" << pars << "]\n";
std::list<std::string> ls;
msg.params(ls, 0, 3);
for (auto& el : ls) {
std::cout << "PAR: [" << el << "]\n";
}
msg.bytes(bb);
std::cout << "MESSAGE: [" << bb << "]\n";
REQUIRE_EQ(bb, bytes);
// msg.setKeyParam("GET", "IMAGE", std::string_view("CROP"), 4, 7, std::make_pair(10, 20));
msg.setKeyParam("GET", "IMAGE", std::string_view("CROP"), 4, 7);
bb.clear();
msg.bytes(bb);
std::cout << "MSG: [" << bb << "]\n";
key.clear();
msg.key(key);
std::cout << "KEY: [" << key << "]\n";
ls.clear();
msg.params(ls, 1, 3);
for (auto& el : ls) {
std::cout << "PAR: [" << el << "]\n";
}
ls = {"AAA", "BBB", "CCC"};
std::string sr{"RES: "};
std::vector<std::string_view> vsv;
auto N = utils::AdcReturnRangeElementsView(ls, std::string_view("<>"), vsv);
std::cout << "\n\nN = " << N << "\n";
for (auto& el : vsv) {
std::cout << el << "\n";
}
N = utils::AdcJoinRange(ls, std::string_view("*"), sr);
std::cout << "\n\nN = " << N << "\n";
std::cout << sr << "\n";
}
*/