Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tracking/tracking_tests/protocol_test.cpp')
-rw-r--r--tracking/tracking_tests/protocol_test.cpp62
1 files changed, 56 insertions, 6 deletions
diff --git a/tracking/tracking_tests/protocol_test.cpp b/tracking/tracking_tests/protocol_test.cpp
index f3b72d6160..3bdbf1798d 100644
--- a/tracking/tracking_tests/protocol_test.cpp
+++ b/tracking/tracking_tests/protocol_test.cpp
@@ -6,22 +6,35 @@ using namespace tracking;
UNIT_TEST(Protocol_CreateAuthPacket)
{
- auto packet = Protocol::CreateAuthPacket("AAA");
+ auto packet = Protocol::CreateAuthPacket("ABC");
TEST_EQUAL(packet.size(), 7, ());
TEST_EQUAL(Protocol::PacketType(packet[0]), Protocol::PacketType::CurrentAuth, ());
TEST_EQUAL(packet[1], 0x00, ());
TEST_EQUAL(packet[2], 0x00, ());
TEST_EQUAL(packet[3], 0x03, ());
TEST_EQUAL(packet[4], 'A', ());
- TEST_EQUAL(packet[5], 'A', ());
- TEST_EQUAL(packet[6], 'A', ());
+ TEST_EQUAL(packet[5], 'B', ());
+ TEST_EQUAL(packet[6], 'C', ());
+}
+
+UNIT_TEST(Protocol_DecodeHeader)
+{
+ string id_str("ABC");
+ auto packet = Protocol::CreateAuthPacket(id_str);
+ TEST_EQUAL(packet.size(), 7, ());
+ TEST_EQUAL(Protocol::PacketType(packet[0]), Protocol::PacketType::CurrentAuth, ());
+
+ auto header = Protocol::DecodeHeader(packet);
+ CHECK_EQUAL(header.first, Protocol::PacketType::CurrentAuth, ());
+ CHECK_EQUAL(header.second, id_str.size(), ());
}
UNIT_TEST(Protocol_CreateDataPacket)
{
- Protocol::DataElements buffer(5);
- buffer.push_back(Protocol::DataElements::value_type(1, ms::LatLon(10, 10)));
- buffer.push_back(Protocol::DataElements::value_type(2, ms::LatLon(15, 15)));
+ using Container = Protocol::DataElementsCirc;
+ Container buffer(5);
+ buffer.push_back(Container::value_type(1, ms::LatLon(10, 10)));
+ buffer.push_back(Container::value_type(2, ms::LatLon(15, 15)));
auto packet = Protocol::CreateDataPacket(buffer);
TEST_EQUAL(packet.size(), 26, ());
TEST_EQUAL(Protocol::PacketType(packet[0]), Protocol::PacketType::CurrentData, ());
@@ -32,3 +45,40 @@ UNIT_TEST(Protocol_CreateDataPacket)
TEST_EQUAL(packet[5], 227, ());
TEST_EQUAL(packet[6], 241, ());
}
+
+UNIT_TEST(Protocol_DecodeAuthPacket)
+{
+ auto packet = Protocol::CreateAuthPacket("ABC");
+ TEST_EQUAL(packet.size(), 7, ());
+ TEST_EQUAL(Protocol::PacketType(packet[0]), Protocol::PacketType::CurrentAuth, ());
+
+ auto result = Protocol::DecodeAuthPacket(Protocol::PacketType::CurrentAuth, packet);
+ TEST_EQUAL(result, "ABC", ());
+}
+
+UNIT_TEST(Protocol_DecodeDataPacket)
+{
+ double const kEps = 1e-5;
+
+ using Container = Protocol::DataElementsVec;
+
+ Container points;
+ points.push_back(Container::value_type(1, ms::LatLon(10, 10)));
+ points.push_back(Container::value_type(2, ms::LatLon(15, 15)));
+ auto packet = Protocol::CreateDataPacket(points);
+ TEST_EQUAL(packet.size(), 26, ());
+ TEST_EQUAL(Protocol::PacketType(packet[0]), Protocol::PacketType::CurrentData, ());
+
+ Container result = Protocol::DecodeDataPacket(Protocol::PacketType::CurrentData, packet);
+
+ TEST_EQUAL(points.size(), result.size(), ());
+ for (size_t i = 0; i < points.size(); ++i)
+ {
+ TEST_EQUAL(points[i].m_timestamp, result[i].m_timestamp,
+ (points[i].m_timestamp, result[i].m_timestamp));
+ TEST(my::AlmostEqualAbsOrRel(points[i].m_latLon.lat, result[i].m_latLon.lat, kEps),
+ (points[i].m_latLon.lat, result[i].m_latLon.lat));
+ TEST(my::AlmostEqualAbsOrRel(points[i].m_latLon.lon, result[i].m_latLon.lon, kEps),
+ (points[i].m_latLon.lon, result[i].m_latLon.lon));
+ }
+}