osrm-backend/test/t/bytes/writer_test_cases.cpp
Michael Krasnyk 68019a1fb2 Squashed 'third_party/protozero/' content from commit d5d8debf1
git-subtree-dir: third_party/protozero
git-subtree-split: d5d8debf1b17c6bb652395957b76cde7787e5377
2018-04-19 22:03:49 +03:00

55 lines
1009 B
C++

#include <test.hpp>
#include "t/bytes/bytes_testcase.pb.h"
TEST_CASE("write bytes field and check with libprotobuf") {
std::string buffer;
protozero::pbf_writer pw{buffer};
TestBytes::Test msg;
SECTION("empty") {
pw.add_string(1, "");
msg.ParseFromString(buffer);
REQUIRE(msg.s().empty());
}
SECTION("one") {
pw.add_string(1, "x");
msg.ParseFromString(buffer);
REQUIRE(msg.s() == "x");
}
SECTION("string") {
pw.add_string(1, "foobar");
msg.ParseFromString(buffer);
REQUIRE(msg.s() == "foobar");
}
SECTION("binary") {
std::string data;
data.append(1, char(1));
data.append(1, char(2));
data.append(1, char(3));
pw.add_string(1, data);
msg.ParseFromString(buffer);
REQUIRE(msg.s().size() == 3);
REQUIRE(msg.s()[1] == char(2));
REQUIRE(msg.s()[2] == char(3));
REQUIRE(msg.s()[2] == char(3));
}
}