diff --git a/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.cpp b/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.cpp index bcf753d..7bebb39 100644 --- a/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.cpp +++ b/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.cpp @@ -2,12 +2,16 @@ namespace assignments::one::final_grade_determinator { -FinalGradeDeterminator::FinalGradeDeterminator() : Node("final_grade_determinator") { +FinalGradeDeterminator::FinalGradeDeterminator(std::unique_ptr db_manager) : Node("final_grade_determinator") { this->declare_parameter("grade_collection_amount", 5); grade_collection_amount_ = this->get_parameter("grade_collection_amount").as_int(); - db_manager_ = std::make_unique(this->get_logger()); - + // Make db_manager optional for testing purposes + if (db_manager) { + db_manager_ = std::move(db_manager); + } else { + db_manager_ = std::make_unique(this->get_logger()); + } // Create publisher for exam results student_publisher_ = this->create_publisher( "student_course_management", 10 diff --git a/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.hpp b/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.hpp index 8703bc7..b9db482 100644 --- a/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.hpp +++ b/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/nodes/FinalGradeDeterminator.hpp @@ -18,7 +18,7 @@ namespace assignments::one::final_grade_determinator { class FinalGradeDeterminator : public rclcpp::Node { public: - FinalGradeDeterminator(); + FinalGradeDeterminator(std::unique_ptr db_manager = nullptr); private: rclcpp::Subscription::SharedPtr exam_subscriber_; rclcpp::Publisher::SharedPtr student_publisher_;