generated from wessel/boilerplate
fix(Database): Allow tests to be ran
- Made `db_manager` on `IMUDatabaseWriter` a parameter to allow mock class - made `store_imu_data` virtual to support mock implementation
This commit is contained in:
@@ -31,7 +31,7 @@ public:
|
||||
void create_tables();
|
||||
|
||||
// IMU Data operations
|
||||
bool store_imu_data(
|
||||
virtual bool store_imu_data(
|
||||
double linear_accel_x, double linear_accel_y, double linear_accel_z,
|
||||
double angular_vel_x, double angular_vel_y, double angular_vel_z
|
||||
);
|
||||
|
||||
@@ -2,10 +2,15 @@
|
||||
|
||||
namespace assignments::two::imu_database_writer {
|
||||
|
||||
IMUDatabaseWriter::IMUDatabaseWriter()
|
||||
IMUDatabaseWriter::IMUDatabaseWriter(std::unique_ptr<DatabaseManager> db_manager)
|
||||
: Node("imu_database_writer")
|
||||
{
|
||||
db_manager_ = std::make_unique<DatabaseManager>(this->get_logger());
|
||||
// allow injection of mock database manager for tests
|
||||
if (db_manager) {
|
||||
db_manager_ = std::move(db_manager);
|
||||
} else {
|
||||
db_manager_ = std::make_unique<DatabaseManager>(this->get_logger());
|
||||
}
|
||||
|
||||
// Create subscriber for IMU data
|
||||
imu_subscriber_ = this->create_subscription<sensor_msgs::msg::Imu>(
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace assignments::two::imu_database_writer {
|
||||
|
||||
class IMUDatabaseWriter : public rclcpp::Node {
|
||||
public:
|
||||
IMUDatabaseWriter();
|
||||
IMUDatabaseWriter(std::unique_ptr<DatabaseManager> db_manager = nullptr);
|
||||
|
||||
void imu_data_callback(const sensor_msgs::msg::Imu::SharedPtr msg);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user