diff options
| author | Szymon Szukalski <szymon@skas.io> | 2024-07-26 15:07:54 +1000 |
|---|---|---|
| committer | Szymon Szukalski <szymon@skas.io> | 2024-07-26 15:07:54 +1000 |
| commit | 7d4d645eb24a30888825f6cdf50cb3eec6ef59f7 (patch) | |
| tree | 74ea58ed48b57f44e27e3e52fea7ee1c5f0e8b7c /src/main/java/com/stileeducation/markr/service/TestService.java | |
| parent | 39e7e3344bf0827fe9563dc1f08d18084316fd6f (diff) | |
Add test cases for multiple submissions
Add test cases which exercise the logic for updating the marks available
and marks obtained.
Update the service method so that they are transactional and reset the
transient 'updated' and 'created' flags after reloading entites to
ensure accurate update/create reporting.
Diffstat (limited to 'src/main/java/com/stileeducation/markr/service/TestService.java')
| -rw-r--r-- | src/main/java/com/stileeducation/markr/service/TestService.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/com/stileeducation/markr/service/TestService.java b/src/main/java/com/stileeducation/markr/service/TestService.java index 0e109ac..f42da1a 100644 --- a/src/main/java/com/stileeducation/markr/service/TestService.java +++ b/src/main/java/com/stileeducation/markr/service/TestService.java @@ -2,6 +2,7 @@ package com.stileeducation.markr.service; import com.stileeducation.markr.entity.Test; import com.stileeducation.markr.repository.TestRepository; +import jakarta.transaction.Transactional; import org.springframework.stereotype.Service; import java.util.Optional; @@ -16,22 +17,27 @@ public class TestService { this.testRepository = testRepository; } + @Transactional public Optional<Test> findTest(String testId) { return testRepository.findByTestId(testId); } + @Transactional public Test findOrCreateTest(String testId, Integer marksAvailable) { Optional<Test> optionalTest = testRepository.findByTestId(testId); + if (optionalTest.isPresent()) { Test test = optionalTest.get(); - if (test.getMarksAvailable() < marksAvailable) { + if (marksAvailable > test.getMarksAvailable()) { test.setMarksAvailable(marksAvailable); + test.setCreated(false); test.setUpdated(true); - testRepository.save(test); + return testRepository.save(test); } else { + test.setCreated(false); test.setUpdated(false); + return test; } - return test; } else { Test test = new Test(); test.setTestId(testId); |
