[PR] Implement tests for GradeCalculator and FinalGradeDeterminator, add documentation for aformentioned nodes #4

Merged
vincent merged 8 commits from 1-grade-generator/cijfer-determinator-calculator into 1-grade-generator/master 2025-10-07 10:07:12 +02:00
2 changed files with 8 additions and 4 deletions
Showing only changes of commit d89f47833e - Show all commits

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_;