76 lines
1.8 KiB
C++
76 lines
1.8 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"
|
|
|
|
using namespace adc;
|
|
|
|
static constexpr char DD[] = "=";
|
|
|
|
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";
|
|
}
|