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 {
|
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);
|
this->declare_parameter("grade_collection_amount", 5);
|
||||||
grade_collection_amount_ = this->get_parameter("grade_collection_amount").as_int();
|
grade_collection_amount_ = this->get_parameter("grade_collection_amount").as_int();
|
||||||
|
|
||||||
|
// 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());
|
db_manager_ = std::make_unique<DatabaseManager>(this->get_logger());
|
||||||
|
}
|
||||||
// Create publisher for exam results
|
// Create publisher for exam results
|
||||||
student_publisher_ = this->create_publisher<g2_2025_interfaces::msg::Student>(
|
student_publisher_ = this->create_publisher<g2_2025_interfaces::msg::Student>(
|
||||||
"student_course_management", 10
|
"student_course_management", 10
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace assignments::one::final_grade_determinator {
|
|||||||
|
|
||||||
class FinalGradeDeterminator : public rclcpp::Node {
|
class FinalGradeDeterminator : public rclcpp::Node {
|
||||||
public:
|
public:
|
||||||
FinalGradeDeterminator();
|
FinalGradeDeterminator(std::unique_ptr<DatabaseManager> db_manager = nullptr);
|
||||||
private:
|
private:
|
||||||
rclcpp::Subscription<g2_2025_interfaces::msg::Exam>::SharedPtr exam_subscriber_;
|
rclcpp::Subscription<g2_2025_interfaces::msg::Exam>::SharedPtr exam_subscriber_;
|
||||||
rclcpp::Publisher<g2_2025_interfaces::msg::Student>::SharedPtr student_publisher_;
|
rclcpp::Publisher<g2_2025_interfaces::msg::Student>::SharedPtr student_publisher_;
|
||||||
|
|||||||
Reference in New Issue
Block a user