fix(FinalGradeDeterminator): Make db_manager optional for testing

This commit is contained in:
2025-10-04 10:16:59 +02:00
parent a325e19a41
commit d89f47833e
2 changed files with 8 additions and 4 deletions

View File

@@ -2,12 +2,16 @@
namespace assignments::one::final_grade_determinator {
FinalGradeDeterminator::FinalGradeDeterminator() : Node("final_grade_determinator") {
FinalGradeDeterminator::FinalGradeDeterminator(std::unique_ptr<DatabaseManager> 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<DatabaseManager>(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<DatabaseManager>(this->get_logger());
}
// Create publisher for exam results
student_publisher_ = this->create_publisher<g2_2025_interfaces::msg::Student>(
"student_course_management", 10

View File

@@ -18,7 +18,7 @@ namespace assignments::one::final_grade_determinator {
class FinalGradeDeterminator : public rclcpp::Node {
public:
FinalGradeDeterminator();
FinalGradeDeterminator(std::unique_ptr<DatabaseManager> db_manager = nullptr);
private:
rclcpp::Subscription<g2_2025_interfaces::msg::Exam>::SharedPtr exam_subscriber_;
rclcpp::Publisher<g2_2025_interfaces::msg::Student>::SharedPtr student_publisher_;