diff --git a/src/test/java/com/example/questionbank/service/quiz/ExamScoringServiceTest.java b/src/test/java/com/example/questionbank/service/quiz/ExamScoringServiceTest.java new file mode 100644 index 0000000..e9b0303 --- /dev/null +++ b/src/test/java/com/example/questionbank/service/quiz/ExamScoringServiceTest.java @@ -0,0 +1,37 @@ +package com.example.questionbank.service.quiz; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.example.questionbank.domain.enumeration.OptionKey; +import org.junit.jupiter.api.Test; + +class ExamScoringServiceTest { + + private final ExamScoringService service = new ExamScoringService(); + + @Test + void correctAnswerGetsOnePoint() { + var result = service.score(OptionKey.A, OptionKey.A); + + assertTrue(result.correct()); + assertEquals(1, result.awardedPoints()); + } + + @Test + void wrongAnswerGetsZeroPoints() { + var result = service.score(OptionKey.A, OptionKey.D); + + assertFalse(result.correct()); + assertEquals(0, result.awardedPoints()); + } + + @Test + void unansweredQuestionGetsZeroPoints() { + var result = service.score(OptionKey.A, null); + + assertFalse(result.correct()); + assertEquals(0, result.awardedPoints()); + } +}