Browse Source

Add native advert data round-trip tests

pull/2459/head
Michael Lynch 2 months ago
parent
commit
a5b8c6598d
  1. 1
      platformio.ini
  2. 6
      test/mocks/Arduino.h
  3. 52
      test/test_utils/test_advert_data.cpp

1
platformio.ini

@ -164,5 +164,6 @@ test_build_src = yes
build_src_filter =
-<*>
+<../src/Utils.cpp>
+<../src/helpers/AdvertDataHelpers.cpp>
lib_deps =
google/googletest @ 1.17.0

6
test/mocks/Arduino.h

@ -0,0 +1,6 @@
#pragma once
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <stdio.h>

52
test/test_utils/test_advert_data.cpp

@ -0,0 +1,52 @@
#include <gtest/gtest.h>
#include "helpers/AdvertDataHelpers.h"
namespace {
TEST(AdvertData, RoundTripsNameOnly) {
uint8_t app_data[MAX_ADVERT_DATA_SIZE] = {};
AdvertDataBuilder builder(ADV_TYPE_CHAT, "alice");
uint8_t len = builder.encodeTo(app_data);
AdvertDataParser parser(app_data, len);
ASSERT_TRUE(parser.isValid());
EXPECT_EQ(ADV_TYPE_CHAT, parser.getType());
EXPECT_TRUE(parser.hasName());
EXPECT_STREQ("alice", parser.getName());
EXPECT_FALSE(parser.hasLatLon());
}
TEST(AdvertData, RoundTripsNameAndCoordinates) {
uint8_t app_data[MAX_ADVERT_DATA_SIZE] = {};
AdvertDataBuilder builder(ADV_TYPE_REPEATER, "node", 37.7749, -122.4194);
uint8_t len = builder.encodeTo(app_data);
AdvertDataParser parser(app_data, len);
ASSERT_TRUE(parser.isValid());
EXPECT_EQ(ADV_TYPE_REPEATER, parser.getType());
EXPECT_TRUE(parser.hasName());
EXPECT_STREQ("node", parser.getName());
EXPECT_TRUE(parser.hasLatLon());
EXPECT_EQ(37774900, parser.getIntLat());
EXPECT_EQ(-122419400, parser.getIntLon());
EXPECT_DOUBLE_EQ(37.7749, parser.getLat());
EXPECT_DOUBLE_EQ(-122.4194, parser.getLon());
}
TEST(AdvertData, RoundTripsCoordinateExtremes) {
uint8_t app_data[MAX_ADVERT_DATA_SIZE] = {};
AdvertDataBuilder builder(ADV_TYPE_SENSOR, "edge", -90.0, 180.0);
uint8_t len = builder.encodeTo(app_data);
AdvertDataParser parser(app_data, len);
ASSERT_TRUE(parser.isValid());
EXPECT_TRUE(parser.hasLatLon());
EXPECT_EQ(-90000000, parser.getIntLat());
EXPECT_EQ(180000000, parser.getIntLon());
}
} // namespace
Loading…
Cancel
Save