Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import static org.junit.jupiter.api.Assertions.*;
- import org.junit.jupiter.api.BeforeEach;
- import org.junit.jupiter.api.Test;
- class StudentManagementSystemTest {
- private StudentManagementSystem sms;
- @BeforeEach
- void setUp() {
- sms = new StudentManagementSystem();
- sms.addStudent(1, "John Doe", 20);
- sms.addStudent(2, "Jane Smith", 21);
- }
- // Positive Test Cases
- @Test
- void testAddStudentSuccessfully() {
- sms.addStudent(3, "Alice Johnson", 22);
- assertNotNull(sms.studentMap.get(3), "Alice should be added successfully");
- }
- @Test
- void testAddGradeToStudentSuccessfully() {
- sms.addGradeToStudent(1, 85);
- sms.addGradeToStudent(1, 90);
- assertEquals(87.5, sms.studentMap.get(1).calculateAverageGrade(), 0.001, "John's average should be 87.5");
- }
- @Test
- void testUpdateAttendanceSuccessfully() {
- sms.updateStudentAttendance(1, 25);
- assertEquals(25, sms.studentMap.get(1).attendance, "John's attendance should be 25");
- }
- @Test
- void testCalculateAverageGradeCorrectly() {
- sms.addGradeToStudent(2, 70);
- sms.addGradeToStudent(2, 80);
- assertEquals(75.0, sms.studentMap.get(2).calculateAverageGrade(), 0.001, "Jane's average should be 75.0");
- }
- @Test
- void testPerformanceAssessment() {
- sms.addGradeToStudent(1, 95);
- sms.addGradeToStudent(1, 92);
- assertEquals("Excellent", sms.studentMap.get(1).getPerformance(), "John's performance should be Excellent");
- }
- // Negative Test Cases
- @Test
- void testAddStudentWithDuplicateId() {
- sms.addStudent(1, "Duplicate John", 23);
- assertEquals("John Doe", sms.studentMap.get(1).name, "Original student should not be overwritten");
- }
- @Test
- void testAddGradeToNonExistentStudent() {
- Exception exception = assertThrows(NullPointerException.class, () -> {
- sms.addGradeToStudent(5, 80);
- });
- assertNotNull(exception, "Adding grade to non-existent student should throw exception");
- }
- @Test
- void testUpdateAttendanceForNonExistentStudent() {
- Exception exception = assertThrows(NullPointerException.class, () -> {
- sms.updateStudentAttendance(99, 30);
- });
- assertNotNull(exception, "Updating attendance for non-existent student should throw exception");
- }
- @Test
- void testCalculateAverageWithoutGrades() {
- double avg = sms.studentMap.get(2).calculateAverageGrade();
- assertEquals(0.0, avg, "Average should be 0.0 if no grades are added");
- }
- @Test
- void testPerformanceWithoutGrades() {
- String performance = sms.studentMap.get(2).getPerformance();
- assertEquals("Needs Improvement", performance, "Performance should be 'Needs Improvement' if no grades exist");
- }
- @Test
- void testAddNegativeGrade() {
- sms.addGradeToStudent(1, -50); // Logically wrong but allowed in current system
- double avg = sms.studentMap.get(1).calculateAverageGrade();
- assertTrue(avg < 0, "Average should reflect negative grade if system doesn't prevent it");
- }
- @Test
- void testZeroAttendance() {
- sms.updateStudentAttendance(1, 0);
- assertEquals(0, sms.studentMap.get(1).attendance, "Attendance should be 0 if updated as 0");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement