generated from wessel/boilerplate
fix(FinalGradeDeterminator): Make db_manager optional for testing
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user