#include #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include #include #include "../common/adc_utils.h" #include "../net/adc_netmessage.h" using namespace adc; static constexpr char DD[] = "="; TEST_CASE("[ADC NET MESSAGE]") { AdcKeyParamNetMessage
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 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 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"; }