diff --git a/doc/tests/IntegrationTest.md b/doc/tests/IntegrationTest.md index b00544c..09a9bb3 100644 --- a/doc/tests/IntegrationTest.md +++ b/doc/tests/IntegrationTest.md @@ -23,27 +23,28 @@ For validation and verification of database data the databse viewer Dbeaver can 1. **Setup Phase** - Clear the database via `docker container prune` or by deleting the tables in dbeaver. - - Start the databse in its standalone terminal via the command `sudo docker compose up`. - - Verify database connection and clean test tables - - Initialize all system nodes (ExamResultGenerator, FinalGradeDeterminator, GradeCalculator) afeter building tha package and starting it. + - Start the databse in a standalone terminal via the command `sudo docker compose up`. + - Verify database connection. + - Initialize all system nodes (ExamResultGenerator, FinalGradeDeterminator, GradeCalculator) after building tha package and starting it via the `grade_calculator.launch.xml`. 2. **Exam Generation Phase** - - ExamResultGenerator publishes 5 Exam messages per student-course pair to table `exam_results` topic. + - ExamResultGenerator publishes Exam messages per student-course pair to table `exam_results` topic. - Verify exam results have valid grades (10-100 range). - Confirm proper timestamp and student/course name matching. 3. **Grade Collection Phase** - - FinalGradeDeterminator collects exam results for each student-course combination - - Monitor collection count reaches threshold (5 exams per student-course) for each student. + - FinalGradeDeterminator collects exam results for each student-course combination. + - Monitor collection count reaches threshold (5 exams per student-course by default) for each student. 4. **Grade Calculation Phase** - - FinalGradeDeterminator calls GradeCalculator service when threshold reached - - Service calculates average grade - - Verify final grade is within valid bounds (10-100) in table `final_course_results` + - FinalGradeDeterminator calls GradeCalculator service when threshold reached. + - Service calculates average grade. 5. **Persistence and Notification Phase** - Final grades stored in database with proper timestamps. - - Verify that in the database tables `final_course_results`. + - verify that final_grade_determinator has sent a de-enroll request via student_course_managment to exam_result_generator. + - exam_result_generator should now prints `removed from queue`. + - Verify final grade is within valid bounds (10-100) in table `final_course_results`. **Expected Results:** @@ -78,14 +79,14 @@ Student: Tilmann, Course: Differentieren **Setup:** -no setup required, this starts immedietly after `final_grade_diterminator` is done after getting the first grades for the students. +no setup required, this starts immediately after `final_grade_diterminator` is done after getting the first grades for the students. **Steps:** 1. **Varify Retake Schedualer is started** - Verify in the terminal the schedualer starts the retake process. -2. **Retake Request Phase**Methods +2. **Retake Request Phase** - RetakeScheduler checks the database for failing students - Schedules retake exams with `retake_grade_determinator` @@ -101,7 +102,7 @@ no setup required, this starts immedietly after `final_grade_diterminator` is do **Failing student Expected Retake Results:** ```text -Student: Wessel, Course: ROS2 +Student: student, Course: course - 5 exam results generated (random grades 10-100) - Avrage final grade calculated - Grade stored in database @@ -124,11 +125,11 @@ Student: Wessel, Course: ROS2 ## Test Execution Commands ```bash -# 1. Start the test environment -cd /home/user/ros2-assignments -source install/setup.bash -# 2. Build the packages -colcon build +# 1. enter the ros2 assignment folder +cd /YOUR/PATH/HERE/ros2-assignment + +# 2. Build the packages and source the enviroment +colcon build && source install/setup.bash # 3. clear and Start database (if not running) in stand alone terminal sudo docker container prune && sudo docker compose up @@ -137,8 +138,8 @@ sudo docker container prune && sudo docker compose up ros2 launch g2_2025_grade_calculator_pkg grade_calculator.launch.xml # 6. Monitor database state -By opening dbeaver and connecting to the database -wachtwoord: postgres +By opening dbeaver and connecting to the database "grades". +Password: postgres ``` ## Verification @@ -148,11 +149,3 @@ wachtwoord: postgres - **Student Records**: Verify all students are enrolled correctly - **Exam Results**: Confirm all exam data is good - **Final Grades**: Validate calculated grades and timestamps - -### Log Analysis - -- **Node Logs**: Review individual node log outputs for errors -- **System Logs**: Check ROS2 system-level logging -- **Database Logs**: Monitor PostgreSQL logs for performance issues - -This comprehensive integration test validates the entire TI Minor Grade Generator system end-to-end, ensuring all components work together correctly to process student grades from enrollment through final grade calculation and persistence.