diff --git a/src/g2_2025_imu_reader_pkg/src/database/DatabaseManager.hpp b/src/g2_2025_imu_reader_pkg/src/database/DatabaseManager.hpp index 1534d41..0a89bf5 100644 --- a/src/g2_2025_imu_reader_pkg/src/database/DatabaseManager.hpp +++ b/src/g2_2025_imu_reader_pkg/src/database/DatabaseManager.hpp @@ -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 ); diff --git a/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.cpp b/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.cpp index e586fa2..0e93b4e 100644 --- a/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.cpp +++ b/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.cpp @@ -2,10 +2,15 @@ namespace assignments::two::imu_database_writer { -IMUDatabaseWriter::IMUDatabaseWriter() +IMUDatabaseWriter::IMUDatabaseWriter(std::unique_ptr db_manager) : Node("imu_database_writer") { - db_manager_ = std::make_unique(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(this->get_logger()); + } // Create subscriber for IMU data imu_subscriber_ = this->create_subscription( diff --git a/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.hpp b/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.hpp index 909e7ae..a3507f2 100644 --- a/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.hpp +++ b/src/g2_2025_imu_reader_pkg/src/imu_database_writer/nodes/IMUDatabaseWriter.hpp @@ -25,7 +25,7 @@ namespace assignments::two::imu_database_writer { class IMUDatabaseWriter : public rclcpp::Node { public: - IMUDatabaseWriter(); + IMUDatabaseWriter(std::unique_ptr db_manager = nullptr); void imu_data_callback(const sensor_msgs::msg::Imu::SharedPtr msg);