From 50f1c4bb92950bf7cc5e0672430f37263876a947 Mon Sep 17 00:00:00 2001 From: Noro911 Date: Sun, 7 Apr 2024 20:21:13 +0700 Subject: [PATCH] add UT --- .../AuthControllerDiffblueTest.java | 851 ++++++ .../CourseControllerDiffblueTest.java | 546 ++++ .../ExerciseControllerDiffblueTest.java | 992 +++++++ .../GroupControllerDiffblueTest.java | 472 +++ .../JudgeControllerDiffblueTest.java | 42 + .../MaterialControllerDiffblueTest.java | 393 +++ .../TopicControllerDiffblueTest.java | 407 +++ .../UserControllerDiffblueTest.java | 304 ++ .../StudentInGroupEntityDiffblueTest.java | 83 + .../StudentNotInGroupEntityDiffblueTest.java | 66 + ...uditingMongoEventListenerDiffblueTest.java | 41 + .../CloudStorageHelperDiffblueTest.java | 90 + .../codeE/helper/JWTUtilsDiffblueTest.java | 137 + .../codeE/judge/JudgeListDiffblueTest.java | 44 + .../JudgeHandlerConfigDiffblueTest.java | 104 + .../PriorityMarkerDiffblueTest.java | 16 + .../SpringBootHandlerConfigDiffblueTest.java | 109 + .../course/CourseFromExcelDiffblueTest.java | 76 + .../course/CourseTeacherDTODiffblueTest.java | 56 + .../StudentInCourseExcelDiffblueTest.java | 45 + .../user/UserFromExcelDiffblueTest.java | 86 + .../common/ErrorValidationDiffblueTest.java | 55 + .../model/common/PaginationDiffblueTest.java | 75 + .../course/CourseTeacherDiffblueTest.java | 27 + .../exercise/CodeExerciseDiffblueTest.java | 145 + .../model/exercise/DataTypeDiffblueTest.java | 32 + .../model/exercise/ExerciseDiffblueTest.java | 135 + .../exercise/SubmissionDiffblueTest.java | 28 + .../exercise/common/LanguageDiffblueTest.java | 117 + .../common/LanguageLimitDiffblueTest.java | 88 + .../common/QuizAnswersDiffblueTest.java | 25 + .../common/QuizQuestionDiffblueTest.java | 40 + .../common/RuntimeVersionDiffblueTest.java | 26 + .../SubmissionTestCaseDiffblueTest.java | 149 + .../problem/ExerciseDataDiffblueTest.java | 148 + .../problem/ExerciseTestCaseDiffblueTest.java | 168 ++ .../common/problem/TestCaseDiffblueTest.java | 85 + .../group/UpdateGroupRequestDiffblueTest.java | 45 + .../ViewPermissionMaterialDiffblueTest.java | 264 ++ .../ViewPermissionTopicDiffblueTest.java | 226 ++ .../request/ApiResponseDiffblueTest.java | 95 + .../auth/CheckOTPRequestDiffblueTest.java | 45 + .../auth/SendOTPRequestDiffblueTest.java | 45 + ...AddStudentToCourseRequestDiffblueTest.java | 66 + .../CourseEnrollmentRequestDiffblueTest.java | 66 + .../CourseEnrollmentResponseDiffblueTest.java | 96 + .../CourseTeacherResponseDiffblueTest.java | 159 + .../CreateCourseRequestDiffblueTest.java | 77 + ...ortStudentToCourseRequestDiffblueTest.java | 67 + ...eStudentFromCourseRequestDiffblueTest.java | 57 + .../UpdateCourseRequestDiffblueTest.java | 97 + ...teStudentsToCourseRequestDiffblueTest.java | 68 + ...PermissionExerciseRequestDiffblueTest.java | 78 + .../GetDetailExerciseRequestDiffblueTest.java | 66 + .../code/CodeRunRequestDiffblueTest.java | 75 + .../CodeSubmissionsResponseDiffblueTest.java | 230 ++ ...CreateCodeExerciseRequestDiffblueTest.java | 182 ++ .../RunCodeExerciseResponseDiffblueTest.java | 80 + ...SubmitCodeExerciseRequestDiffblueTest.java | 77 + ...UpdateCodeExerciseRequestDiffblueTest.java | 233 ++ ...reateEssayExerciseRequestDiffblueTest.java | 140 + ...ateEssaySubmissionRequestDiffblueTest.java | 67 + .../EssaySubmissionsResponseDiffblueTest.java | 191 ++ ...pdateEssayExerciseRequestDiffblueTest.java | 151 + ...CreateFileExerciseRequestDiffblueTest.java | 140 + ...eateFileSubmissionRequestDiffblueTest.java | 67 + ...UpdateFileExerciseRequestDiffblueTest.java | 151 + .../FileSubmissionsResponseDiffblueTest.java | 190 ++ ...CreateQuizExerciseRequestDiffblueTest.java | 148 + ...eateQuizSubmissionRequestDiffblueTest.java | 89 + .../QuizSubmissionsResponseDiffblueTest.java | 190 ++ ...UpdateQuizExerciseRequestDiffblueTest.java | 158 + .../group/CreateGroupRequestDiffblueTest.java | 55 + ...CreateGroupStudentRequestDiffblueTest.java | 42 + ...leteStudentInGroupRequestDiffblueTest.java | 67 + .../group/GroupTopicResponseDiffblueTest.java | 55 + .../group/UpdateGroupRequestDiffblueTest.java | 45 + .../CreateMaterialRequestDiffblueTest.java | 108 + ...PermissionMaterialRequestDiffblueTest.java | 78 + .../UpdateMaterialRequestDiffblueTest.java | 68 + ...atePermissionTopicRequestDiffblueTest.java | 78 + .../topic/CreateTopicRequestDiffblueTest.java | 66 + .../TopicByUserResponseDiffblueTest.java | 141 + .../topic/UpdateTopicRequestDiffblueTest.java | 78 + .../ChangePasswordRequestDiffblueTest.java | 66 + .../user/CreateUserRequestDiffblueTest.java | 77 + .../user/ExportExcelRequestDiffblueTest.java | 55 + .../user/GetUsersRequestDiffblueTest.java | 25 + .../user/LoginRequestDiffblueTest.java | 32 + ...dentSubmissionInformationDiffblueTest.java | 88 + .../user/UpdateUserRequestDiffblueTest.java | 113 + .../forgetPasswordRequestDiffblueTest.java | 55 + .../security/JWTAuthFilterDiffblueTest.java | 83 + .../security/SecurityConfigDiffblueTest.java | 115 + .../codeE/security/WebConfigDiffblueTest.java | 61 + .../AuthenImplDiffblueTest.java | 406 +++ .../course/CourseImplDiffblueTest.java | 1697 +++++++++++ .../CourseStudentImplDiffblueTest.java | 478 ++++ .../CodeExerciseImplDiffblueTest.java | 1108 +++++++ .../exercise/DataTypeImplDiffblueTest.java | 49 + .../EssayExerciseImplDiffblueTest.java | 685 +++++ .../exercise/ExerciseImplDiffblueTest.java | 2501 ++++++++++++++++ .../FileExerciseImplDiffblueTest.java | 612 ++++ .../QuizExerciseImplDiffblueTest.java | 1162 ++++++++ .../QuizSubmissionImplDiffblueTest.java | 1539 ++++++++++ .../RuntimeVersionImplDiffblueTest.java | 81 + .../SubmissionTestCaseImplDiffblueTest.java | 381 +++ .../CodeExerciseTestcaseImplDiffblueTest.java | 100 + .../CodeSubmissionImplDiffblueTest.java | 2283 +++++++++++++++ .../EssaySubmissionImplDiffblueTest.java | 1298 +++++++++ .../FileSubmissionImplDiffblueTest.java | 892 ++++++ .../service/group/GroupImplDiffblueTest.java | 754 +++++ .../service/judge/ClientImplDiffblueTest.java | 94 + .../judge/LanguageLimitImplDiffblueTest.java | 52 + .../material/MaterialImplDiffblueTest.java | 2549 +++++++++++++++++ .../service/topic/TopicImplDiffblueTest.java | 2033 +++++++++++++ .../service/user/UserImplDiffblueTest.java | 677 +++++ 117 files changed, 33561 insertions(+) create mode 100644 src/test/java/com/example/codeE/controller/AuthControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/controller/CourseControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/controller/ExerciseControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/controller/GroupControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/controller/JudgeControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/controller/MaterialControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/controller/TopicControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/controller/UserControllerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/entity/group/StudentInGroupEntityDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/entity/group/StudentNotInGroupEntityDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/helper/AuditingMongoEventListenerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/helper/CloudStorageHelperDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/helper/JWTUtilsDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/judge/JudgeListDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/judge/configurations/JudgeHandlerConfigDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/judge/configurations/PriorityMarkerDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/judge/configurations/SpringBootHandlerConfigDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/mapper/course/CourseFromExcelDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/mapper/course/CourseTeacherDTODiffblueTest.java create mode 100644 src/test/java/com/example/codeE/mapper/course/StudentInCourseExcelDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/mapper/user/UserFromExcelDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/common/ErrorValidationDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/common/PaginationDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/course/CourseTeacherDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/CodeExerciseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/DataTypeDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/ExerciseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/SubmissionDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/LanguageDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/LanguageLimitDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/QuizAnswersDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/QuizQuestionDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/RuntimeVersionDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/SubmissionTestCaseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseDataDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseTestCaseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/exercise/common/problem/TestCaseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/group/UpdateGroupRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/material/ViewPermissionMaterialDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/model/topic/ViewPermissionTopicDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/ApiResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/auth/CheckOTPRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/auth/SendOTPRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/AddStudentToCourseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/CourseEnrollmentRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/CourseEnrollmentResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/CourseTeacherResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/CreateCourseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/ImportStudentToCourseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/RemoveStudentFromCourseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/UpdateCourseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/course/UpdateStudentsToCourseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/CreatePermissionExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/GetDetailExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/code/CodeRunRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/code/CodeSubmissionsResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/code/CreateCodeExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/code/RunCodeExerciseResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/code/SubmitCodeExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/code/UpdateCodeExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/essay/CreateEssayExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/essay/CreateEssaySubmissionRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/essay/EssaySubmissionsResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/essay/UpdateEssayExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/file/CreateFileExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/file/CreateFileSubmissionRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/file/UpdateFileExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/file/response/FileSubmissionsResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizSubmissionRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/quiz/QuizSubmissionsResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/exercise/quiz/UpdateQuizExerciseRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/group/CreateGroupRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/group/CreateGroupStudentRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/group/DeleteStudentInGroupRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/group/GroupTopicResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/group/UpdateGroupRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/material/CreateMaterialRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/material/CreatePermissionMaterialRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/material/UpdateMaterialRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/topic/CreatePermissionTopicRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/topic/CreateTopicRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/topic/TopicByUserResponseDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/topic/UpdateTopicRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/ChangePasswordRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/CreateUserRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/ExportExcelRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/GetUsersRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/LoginRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/StudentSubmissionInformationDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/UpdateUserRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/request/user/forgetPasswordRequestDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/security/JWTAuthFilterDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/security/SecurityConfigDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/security/WebConfigDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/authentication/AuthenImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/course/CourseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/courseStudent/CourseStudentImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/CodeExerciseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/DataTypeImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/EssayExerciseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/ExerciseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/FileExerciseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/QuizExerciseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/QuizSubmissionImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/common/RuntimeVersionImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/common/SubmissionTestCaseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/problem/CodeExerciseTestcaseImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/submission/CodeSubmissionImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/submission/EssaySubmissionImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/exercise/submission/FileSubmissionImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/group/GroupImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/judge/ClientImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/judge/LanguageLimitImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/material/MaterialImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/topic/TopicImplDiffblueTest.java create mode 100644 src/test/java/com/example/codeE/service/user/UserImplDiffblueTest.java diff --git a/src/test/java/com/example/codeE/controller/AuthControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/AuthControllerDiffblueTest.java new file mode 100644 index 00000000..22252a5c --- /dev/null +++ b/src/test/java/com/example/codeE/controller/AuthControllerDiffblueTest.java @@ -0,0 +1,851 @@ +package com.example.codeE.controller; + +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.when; + +import com.example.codeE.helper.JWTUtils; +import com.example.codeE.model.user.User; +import com.example.codeE.request.auth.CheckOTPRequest; +import com.example.codeE.request.auth.SendOTPRequest; +import com.example.codeE.request.user.LoginRequest; +import com.example.codeE.request.user.UserAuthenRequest; +import com.example.codeE.request.user.forgetPasswordRequest; +import com.example.codeE.service.authentication.AuthenService; +import com.example.codeE.service.user.UserService; +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.time.LocalDate; +import java.util.ArrayList; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +@ContextConfiguration(classes = {AuthController.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class AuthControllerDiffblueTest { + @Autowired + private AuthController authController; + + @MockBean + private AuthenService authenService; + + @MockBean + private JWTUtils jWTUtils; + + @MockBean + private UserService userService; + + /** + * Method under test: + * {@link AuthController#checkOTP(CheckOTPRequest, HttpServletRequest)} + */ + @Test + void testCheckOTP() throws Exception { + // Arrange + CheckOTPRequest checkOTPRequest = new CheckOTPRequest(); + checkOTPRequest.setOtp("Otp"); + String content = (new ObjectMapper()).writeValueAsString(checkOTPRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/check-otp") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(408)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"You request has been time out\"}")); + } + + /** + * Method under test: + * {@link AuthController#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInAdmin() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(1); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signInAdmin(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/admin") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(500)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":1,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123\"" + + ",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInAdmin2() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(200); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signInAdmin(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/admin") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(authController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":200,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInAdmin3() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(403); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signInAdmin(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/admin") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isForbidden()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":403,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInAdmin4() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(404); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signInAdmin(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/admin") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isNotFound()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":404,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInAdmin5() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(401); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signInAdmin(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/admin") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(401)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":401,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#checkSessionAdmin(HttpServletRequest, HttpServletResponse)} + */ + @Test + void testCheckSessionAdmin() throws Exception { + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/auth/check-session/admin"); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(401)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":401,\"error\":\"UNAUTHORIZED\",\"message\":\"No user has been saved in cookie, please login" + + " again\"}")); + } + + /** + * Method under test: + * {@link AuthController#checkSessionAdmin(HttpServletRequest, HttpServletResponse)} + */ + @Test + void testCheckSessionAdmin2() throws Exception { + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/auth/check-session/admin"); + requestBuilder.contentType("https://example.org/example"); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(401)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":401,\"error\":\"UNAUTHORIZED\",\"message\":\"No user has been saved in cookie, please login" + + " again\"}")); + } + + /** + * Method under test: + * {@link AuthController#checkSessionUser(HttpServletRequest, HttpServletResponse)} + */ + @Test + void testCheckSessionUser() throws Exception { + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/auth/check-session/user"); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(401)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":401,\"error\":\"UNAUTHORIZED\",\"message\":\"No user has been saved in cookie, please login" + + " again\"}")); + } + + /** + * Method under test: + * {@link AuthController#checkSessionUser(HttpServletRequest, HttpServletResponse)} + */ + @Test + void testCheckSessionUser2() throws Exception { + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/auth/check-session/user"); + requestBuilder.contentType("https://example.org/example"); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(401)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":401,\"error\":\"UNAUTHORIZED\",\"message\":\"No user has been saved in cookie, please login" + + " again\"}")); + } + + /** + * Method under test: + * {@link AuthController#Logout(HttpServletRequest, HttpServletResponse)} + */ + @Test + void testLogout() throws Exception { + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/logout"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(authController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"statusCode\":200,\"message\":\"Logout Successfully\"}")); + } + + /** + * Method under test: + * {@link AuthController#Logout(HttpServletRequest, HttpServletResponse)} + */ + @Test + void testLogout2() throws Exception { + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/logout", "Uri Variables"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(authController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"statusCode\":200,\"message\":\"Logout Successfully\"}")); + } + + /** + * Method under test: + * {@link AuthController#sendOTP(SendOTPRequest, HttpServletResponse)} + */ + @Test + void testSendOTP() throws Exception { + // Arrange + doNothing().when(authenService).SendForgetPasswordOTP(Mockito.any(), Mockito.any()); + + SendOTPRequest sendOTPRequest = new SendOTPRequest(); + sendOTPRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(sendOTPRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/send-otp") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(authController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect( + MockMvcResultMatchers.content().string("{\"message\":\"Send OTP success, please check your mail box\"}")); + } + + /** + * Method under test: + * {@link AuthController#sendOTP(SendOTPRequest, HttpServletResponse)} + */ + @Test + void testSendOTP2() throws Exception { + // Arrange + doNothing().when(authenService).SendForgetPasswordOTP(Mockito.any(), Mockito.any()); + + SendOTPRequest sendOTPRequest = new SendOTPRequest(); + sendOTPRequest.setUserName(""); + String content = (new ObjectMapper()).writeValueAsString(sendOTPRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/send-otp") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"User Name can not blank\"}")); + } + + /** + * Method under test: + * {@link AuthController#signInUser(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInUser() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(1); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signIn(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/user") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(500)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":1,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123\"" + + ",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInUser(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInUser2() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(200); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signIn(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/user") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(authController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":200,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInUser(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInUser3() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(403); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signIn(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/user") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isForbidden()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":403,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInUser(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInUser4() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(404); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signIn(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/user") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isNotFound()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":404,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#signInUser(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInUser5() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + + UserAuthenRequest userAuthenRequest = new UserAuthenRequest(); + userAuthenRequest.setCourses(new ArrayList<>()); + userAuthenRequest.setError("An error occurred"); + userAuthenRequest.setExpirationTime("Expiration Time"); + userAuthenRequest.setMessage("Not all who wander are lost"); + userAuthenRequest.setRefreshToken("ABC123"); + userAuthenRequest.setStatusCode(401); + userAuthenRequest.setToken("ABC123"); + userAuthenRequest.setUser(user); + when(authenService.signIn(Mockito.any(), Mockito.any())) + .thenReturn(userAuthenRequest); + + LoginRequest loginRequest = new LoginRequest(); + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(loginRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auth/login/user") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(401)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"statusCode\":401,\"error\":\"An error occurred\",\"message\":\"Not all who wander are lost\",\"token\":\"ABC123" + + "\",\"refreshToken\":\"ABC123\",\"expirationTime\":\"Expiration Time\",\"user\":{\"userId\":\"42\",\"name\":\"Name\",\"email" + + "\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\",\"createdDate\":\"1970-01-01 00:00:00\"," + + "\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":\"Role\"}],\"enabled\":true,\"credentials" + + "NonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true},\"courses\":[]}")); + } + + /** + * Method under test: + * {@link AuthController#updateUserPassword(forgetPasswordRequest, HttpServletRequest, HttpServletResponse)} + */ + @Test + void testUpdateUserPassword() throws Exception { + // Arrange + when(authenService.updatePassword(Mockito.any(), Mockito.any())).thenReturn(true); + + forgetPasswordRequest forgetPasswordRequest = new forgetPasswordRequest(); + forgetPasswordRequest.setPassword("iloveyou"); + forgetPasswordRequest.setUserId("42"); + String content = (new ObjectMapper()).writeValueAsString(forgetPasswordRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/auth/change-password") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(authController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"Change password successful.\"}")); + } + + /** + * Method under test: + * {@link AuthController#updateUserPassword(forgetPasswordRequest, HttpServletRequest, HttpServletResponse)} + */ + @Test + void testUpdateUserPassword2() throws Exception { + // Arrange + when(authenService.updatePassword(Mockito.any(), Mockito.any())).thenReturn(false); + + forgetPasswordRequest forgetPasswordRequest = new forgetPasswordRequest(); + forgetPasswordRequest.setPassword("iloveyou"); + forgetPasswordRequest.setUserId("42"); + String content = (new ObjectMapper()).writeValueAsString(forgetPasswordRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/auth/change-password") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(authController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(500)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string("{\"message\":\"some thing wrong, when request change password!\"}")); + } +} diff --git a/src/test/java/com/example/codeE/controller/CourseControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/CourseControllerDiffblueTest.java new file mode 100644 index 00000000..8e5b51aa --- /dev/null +++ b/src/test/java/com/example/codeE/controller/CourseControllerDiffblueTest.java @@ -0,0 +1,546 @@ +package com.example.codeE.controller; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.when; + +import com.example.codeE.request.course.AddStudentToCourseRequest; +import com.example.codeE.request.course.CourseEnrollmentRequest; +import com.example.codeE.request.course.CourseEnrollmentResponse; +import com.example.codeE.request.course.CourseResponse; +import com.example.codeE.request.course.CourseTeacherResponse; +import com.example.codeE.request.course.CreateCourseRequest; +import com.example.codeE.request.course.ImportStudentToCourseRequest; +import com.example.codeE.request.course.RemoveStudentFromCourseRequest; +import com.example.codeE.request.course.UpdateCourseRequest; +import com.example.codeE.request.course.UpdateStudentsToCourseRequest; +import com.example.codeE.service.course.CourseService; +import com.example.codeE.service.courseStudent.CourseStudentService; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.util.ArrayList; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {CourseController.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class CourseControllerDiffblueTest { + @Autowired + private CourseController courseController; + + @MockBean + private CourseService courseService; + + @MockBean + private CourseStudentService courseStudentService; + + /** + * Method under test: {@link CourseController#getById(String)} + */ + @Test + void testGetById() throws Exception { + // Arrange + when(courseService.getById(Mockito.any())).thenReturn(new CourseResponse()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/courses/{courseId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"courseId\":null,\"courseName\":null,\"semester\":null,\"enrollKey\":null,\"description\":null,\"createdDate\"" + + ":null,\"updatedDate\":null,\"students\":null,\"teacher\":null}")); + } + + /** + * Method under test: {@link CourseController#getById(String)} + */ + @Test + void testGetById2() throws Exception { + // Arrange + when(courseService.getAll()).thenReturn(new ArrayList<>()); + when(courseService.getById(Mockito.any())).thenReturn(new CourseResponse()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/courses/{courseId}", "", + "Uri Variables"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link CourseController#getAll()} + */ + @Test + void testGetAll() throws Exception { + // Arrange + when(courseService.getAll()).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/courses"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link CourseController#createOne(CreateCourseRequest)} + */ + @Test + void testCreateOne2() throws Exception { + // Arrange + when(courseService.createOne(Mockito.any())).thenReturn(new CourseResponse()); + + CreateCourseRequest createCourseRequest = new CreateCourseRequest(); + createCourseRequest.setCourseName("Course Name"); + createCourseRequest.setDescription("The characteristics of someone or something"); + createCourseRequest.setSemester("42"); + createCourseRequest.setTeacherId("42"); + String content = (new ObjectMapper()).writeValueAsString(createCourseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/courses") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"courseId\":null,\"courseName\":null,\"semester\":null,\"enrollKey\":null,\"description\":null,\"createdDate\"" + + ":null,\"updatedDate\":null,\"students\":null,\"teacher\":null}")); + } + + /** + * Method under test: + * {@link CourseController#importCoursesByExcel(MultipartFile)} + */ + @Test + void testImportCoursesByExcel() throws IOException { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + CourseController courseController = new CourseController(); + + // Act + ResponseEntity actualImportCoursesByExcelResult = courseController + .importCoursesByExcel(new MockMultipartFile("Name", new ByteArrayInputStream(new byte[]{}))); + + // Assert + assertEquals(400, actualImportCoursesByExcelResult.getStatusCodeValue()); + assertTrue(actualImportCoursesByExcelResult.hasBody()); + assertTrue(actualImportCoursesByExcelResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link CourseController#updateById(UpdateCourseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateById() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // jakarta.servlet.ServletException: Request processing failed: jakarta.validation.ValidationException: HV000028: Unexpected exception during isValid call. + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:593) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // jakarta.validation.ValidationException: HV000028: Unexpected exception during isValid call. + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:186) + // at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:66) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:593) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // java.lang.NullPointerException: Cannot invoke "com.example.codeE.repository.CourseRepository.existsById(Object)" because "this.courseRepository" is null + // at com.example.codeE.validator.id.ExistingIdValidator.isValid(ExistingIdValidator.java:43) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:180) + // at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:66) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:593) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange + CourseController courseController = new CourseController(); + + // Act + courseController.updateById(new UpdateCourseRequest("42", "Course Name", "Semester", "Enroll Key", + "The characteristics of someone or something", "42")); + } + + /** + * Method under test: + * {@link CourseController#updateStudentsInCourse(UpdateStudentsToCourseRequest)} + */ + @Test + void testUpdateStudentsInCourse() throws Exception { + // Arrange + when(courseService.getById(Mockito.any())).thenReturn(new CourseResponse()); + when(courseStudentService.updateStudentsInCourse(Mockito.any())) + .thenReturn(new ArrayList<>()); + + UpdateStudentsToCourseRequest updateStudentsToCourseRequest = new UpdateStudentsToCourseRequest(); + updateStudentsToCourseRequest.setCourseId("42"); + updateStudentsToCourseRequest.setStudentIds(new ArrayList<>()); + String content = (new ObjectMapper()).writeValueAsString(updateStudentsToCourseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/courses/students") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"courseId\":null,\"courseName\":null,\"semester\":null,\"enrollKey\":null,\"description\":null,\"createdDate\"" + + ":null,\"updatedDate\":null,\"students\":null,\"teacher\":null}")); + } + + /** + * Method under test: + * {@link CourseController#deleteById(RemoveStudentFromCourseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testDeleteById() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // jakarta.servlet.ServletException: Request processing failed: jakarta.validation.ValidationException: HV000028: Unexpected exception during isValid call. + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:596) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // jakarta.validation.ValidationException: HV000028: Unexpected exception during isValid call. + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:186) + // at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:66) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:596) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // java.lang.NullPointerException: Cannot invoke "com.example.codeE.repository.CourseStudentRepository.existsByStudentIdAndCourseId(String, String)" because "this.courseStudentRepository" is null + // at com.example.codeE.validator.id.ExistingIdValidator.isValid(ExistingIdValidator.java:49) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:180) + // at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:66) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:596) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange + CourseController courseController = new CourseController(); + + // Act + courseController.deleteById(new RemoveStudentFromCourseRequest("42", "42")); + } + + /** + * Method under test: {@link CourseController#deleteById(String)} + */ + @Test + void testDeleteById2() throws Exception { + // Arrange + doNothing().when(courseService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/courses/{courseId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"Delete course successfully\"}")); + } + + /** + * Method under test: {@link CourseController#deleteById(String)} + */ + @Test + void testDeleteById3() throws Exception { + // Arrange + doNothing().when(courseService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/courses/{courseId}", "42"); + requestBuilder.contentType("https://example.org/example"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"Delete course successfully\"}")); + } + + /** + * Method under test: + * {@link CourseController#unEnrollUserInCourse(String, String)} + */ + @Test + void testUnEnrollUserInCourse() throws Exception { + // Arrange + doNothing().when(courseService).unEnrollUserInCourse(Mockito.any(), Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/courses/unEnrollment") + .param("courseId", "foo") + .param("userId", "foo"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"UnEnroll successful\"}")); + } + + /** + * Method under test: {@link CourseController#getCourseByUserId(String)} + */ + @Test + void testGetCourseByUserId() throws Exception { + // Arrange + when(courseService.getCourseByUserId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/courses/user/{userId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link CourseController#getCourseByUserId(String)} + */ + @Test + void testGetCourseByUserId2() throws Exception { + // Arrange + when(courseService.getById(Mockito.any())).thenReturn(new CourseResponse()); + when(courseService.getCourseByUserId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/courses/user/{userId}", "", + "Uri Variables"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"courseId\":null,\"courseName\":null,\"semester\":null,\"enrollKey\":null,\"description\":null,\"createdDate\"" + + ":null,\"updatedDate\":null,\"students\":null,\"teacher\":null}")); + } + + /** + * Method under test: + * {@link CourseController#addStudentToCourse(AddStudentToCourseRequest)} + */ + @Test + void testAddStudentToCourse() throws Exception { + // Arrange + when(courseStudentService.addStudentToCourse(Mockito.any())) + .thenReturn(new ArrayList<>()); + + AddStudentToCourseRequest addStudentToCourseRequest = new AddStudentToCourseRequest(); + addStudentToCourseRequest.setCourseId("42"); + addStudentToCourseRequest.setStudentIds(new ArrayList<>()); + String content = (new ObjectMapper()).writeValueAsString(addStudentToCourseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/courses/student") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: + * {@link CourseController#addStudentsToCourse(ImportStudentToCourseRequest)} + */ + @Test + void testAddStudentsToCourse() throws IOException { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + CourseController courseController = new CourseController(); + + ImportStudentToCourseRequest request = new ImportStudentToCourseRequest(); + request.setFile(new MockMultipartFile("Name", new ByteArrayInputStream(new byte[]{}))); + + // Act + ResponseEntity actualAddStudentsToCourseResult = courseController.addStudentsToCourse(request); + + // Assert + assertEquals(400, actualAddStudentsToCourseResult.getStatusCodeValue()); + assertTrue(actualAddStudentsToCourseResult.hasBody()); + assertTrue(actualAddStudentsToCourseResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link CourseController#createOne(CreateCourseRequest)} + */ + @Test + void testCreateOne() throws Exception { + // Arrange + CreateCourseRequest createCourseRequest = new CreateCourseRequest(); + createCourseRequest.setCourseName("Course Name"); + createCourseRequest.setDescription("The characteristics of someone or something"); + createCourseRequest.setSemester("Semester"); + createCourseRequest.setTeacherId("42"); + String content = (new ObjectMapper()).writeValueAsString(createCourseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/courses") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400)); + } + + /** + * Method under test: + * {@link CourseController#enrollUserToCourse(CourseEnrollmentRequest)} + */ + @Test + void testEnrollUserToCourse() throws Exception { + // Arrange + when(courseService.enrollStudentToCourse(Mockito.any())) + .thenReturn(new CourseEnrollmentResponse<>()); + + CourseEnrollmentRequest courseEnrollmentRequest = new CourseEnrollmentRequest(); + courseEnrollmentRequest.setCourseId("42"); + courseEnrollmentRequest.setEnrollmentKey("Enrollment Key"); + courseEnrollmentRequest.setStudentId("42"); + String content = (new ObjectMapper()).writeValueAsString(courseEnrollmentRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/courses/enrollment") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(500)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"status\":0}")); + } + + /** + * Method under test: + * {@link CourseController#enrollUserToCourse(CourseEnrollmentRequest)} + */ + @Test + void testEnrollUserToCourse2() throws Exception { + // Arrange + CourseTeacherResponse courseTeacherResponse = new CourseTeacherResponse(); + when(courseService.enrollStudentToCourse(Mockito.any())) + .thenReturn(new CourseEnrollmentResponse<>("Not all who wander are lost", "An error occurred", + courseTeacherResponse, new ArrayList<>(), 201)); + + CourseEnrollmentRequest courseEnrollmentRequest = new CourseEnrollmentRequest(); + courseEnrollmentRequest.setCourseId("42"); + courseEnrollmentRequest.setEnrollmentKey("Enrollment Key"); + courseEnrollmentRequest.setStudentId("42"); + String content = (new ObjectMapper()).writeValueAsString(courseEnrollmentRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/courses/enrollment") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(courseController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"message\":\"Not all who wander are lost\",\"error\":\"An error occurred\",\"value\":{\"courseId\":null,\"courseName" + + "\":null,\"semester\":null,\"description\":null,\"createdDate\":null,\"updatedDate\":null,\"teacher\":null},\"values" + + "\":[],\"status\":201}")); + } +} diff --git a/src/test/java/com/example/codeE/controller/ExerciseControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/ExerciseControllerDiffblueTest.java new file mode 100644 index 00000000..3df2b3f6 --- /dev/null +++ b/src/test/java/com/example/codeE/controller/ExerciseControllerDiffblueTest.java @@ -0,0 +1,992 @@ +package com.example.codeE.controller; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.when; + +import com.example.codeE.request.exercise.CreatePermissionExerciseRequest; +import com.example.codeE.request.exercise.ExerciseResponse; +import com.example.codeE.request.exercise.GetDetailExerciseRequest; +import com.example.codeE.request.exercise.code.CodeRunRequest; +import com.example.codeE.request.exercise.code.CreateCodeExerciseRequest; +import com.example.codeE.request.exercise.code.SubmitCodeExerciseRequest; +import com.example.codeE.request.exercise.code.UpdateCodeExerciseRequest; +import com.example.codeE.request.exercise.essay.CreateEssayExerciseRequest; +import com.example.codeE.request.exercise.essay.CreateEssaySubmissionRequest; +import com.example.codeE.request.exercise.essay.UpdateEssayExerciseRequest; +import com.example.codeE.request.exercise.file.CreateFileExerciseRequest; +import com.example.codeE.request.exercise.file.CreateFileSubmissionRequest; +import com.example.codeE.request.exercise.file.UpdateFileExerciseRequest; +import com.example.codeE.request.exercise.quiz.CreateQuizExerciseRequest; +import com.example.codeE.request.exercise.quiz.CreateQuizSubmissionRequest; +import com.example.codeE.request.exercise.quiz.UpdateQuizExerciseRequest; +import com.example.codeE.service.exercise.CodeExerciseService; +import com.example.codeE.service.exercise.EssayExerciseService; +import com.example.codeE.service.exercise.ExerciseService; +import com.example.codeE.service.exercise.FileExerciseService; +import com.example.codeE.service.exercise.QuizExerciseService; +import com.example.codeE.service.exercise.QuizSubmissionService; +import com.example.codeE.service.exercise.common.SubmissionTestCaseService; +import com.example.codeE.service.exercise.problem.CodeExerciseTestcaseService; +import com.example.codeE.service.exercise.submission.CodeSubmissionService; +import com.example.codeE.service.exercise.submission.EssaySubmissionService; +import com.example.codeE.service.exercise.submission.FileSubmissionService; +import com.example.codeE.service.judge.JudgeService; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {ExerciseController.class, MongoTemplate.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class ExerciseControllerDiffblueTest { + @MockBean + private CodeExerciseService codeExerciseService; + + @MockBean + private CodeExerciseTestcaseService codeExerciseTestcaseService; + + @MockBean + private CodeSubmissionService codeSubmissionService; + + @MockBean + private EssayExerciseService essayExerciseService; + + @MockBean + private EssaySubmissionService essaySubmissionService; + + @Autowired + private ExerciseController exerciseController; + + @MockBean + private ExerciseService exerciseService; + + @MockBean + private FileExerciseService fileExerciseService; + + @MockBean + private FileSubmissionService fileSubmissionService; + + @MockBean + private JudgeService judgeService; + + @MockBean + private MongoTemplate mongoTemplate; + + @MockBean + private QuizExerciseService quizExerciseService; + + @MockBean + private QuizSubmissionService quizSubmissionService; + + @MockBean + private SubmissionTestCaseService submissionTestCaseService; + + /** + * Method under test: + * {@link ExerciseController#submitFileExercise(CreateFileSubmissionRequest, MultipartFile)} + */ + @Test + void testSubmitFileExercise() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + ExerciseController exerciseController = new ExerciseController(); + + // Act + ResponseEntity actualSubmitFileExerciseResult = exerciseController + .submitFileExercise(new CreateFileSubmissionRequest("42", "42", "https://example.org/example"), null); + + // Assert + assertEquals(400, actualSubmitFileExerciseResult.getStatusCodeValue()); + assertTrue(actualSubmitFileExerciseResult.hasBody()); + assertTrue(actualSubmitFileExerciseResult.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#addPermissionExercise(CreatePermissionExerciseRequest)} + */ + @Test + void testAddPermissionExercise() throws Exception { + // Arrange + when(exerciseService.modifiedPermission(Mockito.any())) + .thenReturn(new ExerciseResponse()); + + CreatePermissionExerciseRequest createPermissionExerciseRequest = new CreatePermissionExerciseRequest(); + createPermissionExerciseRequest.setExerciseId("42"); + createPermissionExerciseRequest.setGroupIds(new ArrayList<>()); + createPermissionExerciseRequest.setShowAll(true); + String content = (new ObjectMapper()).writeValueAsString(createPermissionExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/view") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(exerciseController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"exerciseId\":null,\"topicId\":null,\"exerciseName\":null,\"createdDate\":null,\"updatedDate\":null,\"startTime" + + "\":null,\"endTime\":null,\"durationTime\":0,\"type\":null,\"reAttempt\":0,\"groups\":null,\"students\":null,\"showAll" + + "\":false}")); + } + + /** + * Method under test: + * {@link ExerciseController#getAllSubmissionByExerciseId(String, String)} + */ + @Test + void testGetAllSubmissionByExerciseId() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + ResponseEntity actualAllSubmissionByExerciseId = (new ExerciseController()).getAllSubmissionByExerciseId("42", + "Type"); + + // Assert + assertEquals(400, actualAllSubmissionByExerciseId.getStatusCodeValue()); + assertTrue(actualAllSubmissionByExerciseId.hasBody()); + assertTrue(actualAllSubmissionByExerciseId.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#getAllSubmissionByExerciseId(String, String)} + */ + @Test + void testGetAllSubmissionByExerciseId2() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + ResponseEntity actualAllSubmissionByExerciseId = (new ExerciseController()).getAllSubmissionByExerciseId("foo", + "quiz"); + + // Assert + assertEquals(400, actualAllSubmissionByExerciseId.getStatusCodeValue()); + assertTrue(actualAllSubmissionByExerciseId.hasBody()); + assertTrue(actualAllSubmissionByExerciseId.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#getAllSubmissionByExerciseId(String, String)} + */ + @Test + void testGetAllSubmissionByExerciseId3() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + ResponseEntity actualAllSubmissionByExerciseId = (new ExerciseController()).getAllSubmissionByExerciseId("foo", + "essay"); + + // Assert + assertEquals(400, actualAllSubmissionByExerciseId.getStatusCodeValue()); + assertTrue(actualAllSubmissionByExerciseId.hasBody()); + assertTrue(actualAllSubmissionByExerciseId.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#getAllSubmissionByExerciseId(String, String)} + */ + @Test + void testGetAllSubmissionByExerciseId4() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + ResponseEntity actualAllSubmissionByExerciseId = (new ExerciseController()).getAllSubmissionByExerciseId("foo", + "code"); + + // Assert + assertEquals(400, actualAllSubmissionByExerciseId.getStatusCodeValue()); + assertTrue(actualAllSubmissionByExerciseId.hasBody()); + assertTrue(actualAllSubmissionByExerciseId.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#getAllSubmissionByExerciseId(String, String)} + */ + @Test + void testGetAllSubmissionByExerciseId5() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + ResponseEntity actualAllSubmissionByExerciseId = (new ExerciseController()).getAllSubmissionByExerciseId("foo", + "file"); + + // Assert + assertEquals(400, actualAllSubmissionByExerciseId.getStatusCodeValue()); + assertTrue(actualAllSubmissionByExerciseId.hasBody()); + assertTrue(actualAllSubmissionByExerciseId.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#getStudentSubmission(String, String)} + */ + @Test + void testGetStudentSubmission() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + ResponseEntity actualStudentSubmission = (new ExerciseController()).getStudentSubmission("42", "Type"); + + // Assert + assertEquals(400, actualStudentSubmission.getStatusCodeValue()); + assertTrue(actualStudentSubmission.hasBody()); + assertTrue(actualStudentSubmission.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#getExerciseByUserId(String, String, String)} + */ + @Test + void testGetExerciseByUserId() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + ResponseEntity actualExerciseByUserId = (new ExerciseController()).getExerciseByUserId("42", "42", "Type"); + + // Assert + assertEquals(400, actualExerciseByUserId.getStatusCodeValue()); + assertTrue(actualExerciseByUserId.hasBody()); + assertTrue(actualExerciseByUserId.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseController#createCodeExercise(CreateCodeExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testCreateCodeExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@47c3ca16 testClass = com.example.codeE.controller.DiffblueFakeClass4198, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + CreateCodeExerciseRequest createCodeExerciseRequest = new CreateCodeExerciseRequest(); + createCodeExerciseRequest.setAllowedLanguageIds(new ArrayList<>()); + createCodeExerciseRequest.setDescription("The characteristics of someone or something"); + createCodeExerciseRequest.setDurationTime(1); + createCodeExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createCodeExerciseRequest.setExerciseName("Exercise Name"); + createCodeExerciseRequest.setKey("Key"); + createCodeExerciseRequest.setPoints(10.0d); + createCodeExerciseRequest.setReAttempt(1); + createCodeExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createCodeExerciseRequest.setTemplate("Template"); + createCodeExerciseRequest.setTestCases(new ArrayList<>()); + createCodeExerciseRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(createCodeExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/code") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#createEssayExercise(CreateEssayExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testCreateEssayExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@36669f5c testClass = com.example.codeE.controller.DiffblueFakeClass4350, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + CreateEssayExerciseRequest createEssayExerciseRequest = new CreateEssayExerciseRequest(); + createEssayExerciseRequest.setDurationTime(1); + createEssayExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createEssayExerciseRequest.setExerciseDescription("Exercise Description"); + createEssayExerciseRequest.setExerciseName("Exercise Name"); + createEssayExerciseRequest.setKey("Key"); + createEssayExerciseRequest.setQuestion("Question"); + createEssayExerciseRequest.setReAttempt(1); + createEssayExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createEssayExerciseRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(createEssayExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/essay") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#createFileExercise(CreateFileExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testCreateFileExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@6f5b26f8 testClass = com.example.codeE.controller.DiffblueFakeClass4466, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + CreateFileExerciseRequest createFileExerciseRequest = new CreateFileExerciseRequest(); + createFileExerciseRequest.setDurationTime(1); + createFileExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createFileExerciseRequest.setExerciseDescription("Exercise Description"); + createFileExerciseRequest.setExerciseName("Exercise Name"); + createFileExerciseRequest.setKey("Key"); + createFileExerciseRequest.setQuestion("Question"); + createFileExerciseRequest.setReAttempt(1); + createFileExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createFileExerciseRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(createFileExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/file") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#createQuizExercise(CreateQuizExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testCreateQuizExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@2d2dd9fe testClass = com.example.codeE.controller.DiffblueFakeClass4582, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + CreateQuizExerciseRequest createQuizExerciseRequest = new CreateQuizExerciseRequest(); + createQuizExerciseRequest.setDurationTime(1); + createQuizExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createQuizExerciseRequest.setExerciseDescription("Exercise Description"); + createQuizExerciseRequest.setExerciseName("Exercise Name"); + createQuizExerciseRequest.setKey("Key"); + createQuizExerciseRequest.setQuestions(new ArrayList<>()); + createQuizExerciseRequest.setReAttempt(1); + createQuizExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + createQuizExerciseRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(createQuizExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/quiz") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#deleteExerciseById(String, String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testDeleteExerciseById() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@77655207 testClass = com.example.codeE.controller.DiffblueFakeClass4688, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/exercises/{exerciseId}", "42") + .param("type", "foo"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#getAllExerciseByCourseId(String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetAllExerciseByCourseId() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@71ff6c47 testClass = com.example.codeE.controller.DiffblueFakeClass4717, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/exercises").param("courseId", "foo"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#getAllStudentSubmission(String, String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetAllStudentSubmission() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@2d3512ad testClass = com.example.codeE.controller.DiffblueFakeClass4746, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders + .get("/exercises/all-submission/user/{userId}", "42") + .param("courseId", "foo"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#getAllSubmissionByExerciseId(String, String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetAllSubmissionByExerciseId6() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@54ff9c9e testClass = com.example.codeE.controller.DiffblueFakeClass4775, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders + .get("/exercises/{exerciseId}/all-submission", "42") + .param("type", "foo"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: {@link ExerciseController#getExerciseById(String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetExerciseById() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@4e43ff86 testClass = com.example.codeE.controller.DiffblueFakeClass4804, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/exercises/{exerciseId}", "42"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#getExerciseByUserId(String, String, String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetExerciseByUserId2() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@5a78b53f testClass = com.example.codeE.controller.DiffblueFakeClass4827, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/exercises/submit/user/{userId}", "42") + .param("exerciseId", "foo") + .param("type", "foo"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#getExerciseDetail(GetDetailExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetExerciseDetail() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@119d8d42 testClass = com.example.codeE.controller.DiffblueFakeClass4863, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + GetDetailExerciseRequest getDetailExerciseRequest = new GetDetailExerciseRequest(); + getDetailExerciseRequest.setExerciseId("42"); + getDetailExerciseRequest.setKey("Key"); + getDetailExerciseRequest.setStudentId("42"); + String content = (new ObjectMapper()).writeValueAsString(getDetailExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/detail") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#getPreviewExercise(String, String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetPreviewExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@52cfb715 testClass = com.example.codeE.controller.DiffblueFakeClass4925, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/exercises/preview/{exerciseId}", "42") + .param("studentId", "foo"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#getStudentSubmission(String, String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGetStudentSubmission2() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@3ac7c77c testClass = com.example.codeE.controller.DiffblueFakeClass4954, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/exercises/submit/{submissionId}", "42") + .param("type", "foo"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#gradeEssaySubmission(String, float)} + */ + @Test + @Disabled("TODO: Complete this test") + void testGradeEssaySubmission() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@66c0036c testClass = com.example.codeE.controller.DiffblueFakeClass4983, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder paramResult = MockMvcRequestBuilders.put("/exercises/essay/grade") + .param("essaySubmissionId", "foo"); + MockHttpServletRequestBuilder requestBuilder = paramResult.param("score", String.valueOf(10.0f)); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: {@link ExerciseController#runCodeExercise(CodeRunRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testRunCodeExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@29fe33a1 testClass = com.example.codeE.controller.DiffblueFakeClass5022, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + CodeRunRequest codeRunRequest = new CodeRunRequest(); + codeRunRequest.setExerciseId("42"); + codeRunRequest.setLanguageId("en"); + codeRunRequest.setSource("Source"); + codeRunRequest.setStudentId("42"); + String content = (new ObjectMapper()).writeValueAsString(codeRunRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/code/run") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: {@link ExerciseController#runCodeExercise(String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testRunCodeExercise2() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@132c5736 testClass = com.example.codeE.controller.DiffblueFakeClass5168, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/exercises/code/run/{submissionId}", + "42"); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#submitCodeExercise(SubmitCodeExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSubmitCodeExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@7928761f testClass = com.example.codeE.controller.DiffblueFakeClass5191, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + SubmitCodeExerciseRequest submitCodeExerciseRequest = new SubmitCodeExerciseRequest(); + submitCodeExerciseRequest.setExerciseId("42"); + submitCodeExerciseRequest.setLanguageId("en"); + submitCodeExerciseRequest.setSource("Source"); + submitCodeExerciseRequest.setStudentId("42"); + String content = (new ObjectMapper()).writeValueAsString(submitCodeExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/code/submit") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#submitEssayExercise(CreateEssaySubmissionRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSubmitEssayExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@4923e428 testClass = com.example.codeE.controller.DiffblueFakeClass5337, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + CreateEssaySubmissionRequest createEssaySubmissionRequest = new CreateEssaySubmissionRequest(); + createEssaySubmissionRequest.setExerciseId("42"); + createEssaySubmissionRequest.setStudentId("42"); + createEssaySubmissionRequest.setSubmission("Submission"); + String content = (new ObjectMapper()).writeValueAsString(createEssaySubmissionRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/essay/submit") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#submitQuizExercise(CreateQuizSubmissionRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSubmitQuizExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@3ec534e7 testClass = com.example.codeE.controller.DiffblueFakeClass5399, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + CreateQuizSubmissionRequest createQuizSubmissionRequest = new CreateQuizSubmissionRequest(); + createQuizSubmissionRequest.setExerciseId("42"); + createQuizSubmissionRequest.setStudentId("42"); + createQuizSubmissionRequest.setSubmission(new ArrayList<>()); + createQuizSubmissionRequest.setTeacherComment("Teacher Comment"); + String content = (new ObjectMapper()).writeValueAsString(createQuizSubmissionRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/exercises/quiz/submit") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#updateCodeExercise(UpdateCodeExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateCodeExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@5df4db4b testClass = com.example.codeE.controller.DiffblueFakeClass5465, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + UpdateCodeExerciseRequest updateCodeExerciseRequest = new UpdateCodeExerciseRequest(); + updateCodeExerciseRequest.setAllowedLanguageIds(new ArrayList<>()); + updateCodeExerciseRequest.setDescription("The characteristics of someone or something"); + updateCodeExerciseRequest.setDurationTime(1); + updateCodeExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateCodeExerciseRequest.setExerciseDescription("Exercise Description"); + updateCodeExerciseRequest.setExerciseId("42"); + updateCodeExerciseRequest.setExerciseName("Exercise Name"); + updateCodeExerciseRequest.setKey("Key"); + updateCodeExerciseRequest.setMemoryLimit(1); + updateCodeExerciseRequest.setPoints(10.0d); + updateCodeExerciseRequest.setReAttempt(1); + updateCodeExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateCodeExerciseRequest.setTemplate("Template"); + updateCodeExerciseRequest.setTestCases(new ArrayList<>()); + updateCodeExerciseRequest.setTimeLimit(10.0d); + updateCodeExerciseRequest.setTopicId("42"); + updateCodeExerciseRequest.setType("Type"); + String content = (new ObjectMapper()).writeValueAsString(updateCodeExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/exercises/code") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#updateEssayExercise(UpdateEssayExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateEssayExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@2172ad30 testClass = com.example.codeE.controller.DiffblueFakeClass5665, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + UpdateEssayExerciseRequest updateEssayExerciseRequest = new UpdateEssayExerciseRequest(); + updateEssayExerciseRequest.setDurationTime(1); + updateEssayExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateEssayExerciseRequest.setExerciseDescription("Exercise Description"); + updateEssayExerciseRequest.setExerciseId("42"); + updateEssayExerciseRequest.setExerciseName("Exercise Name"); + updateEssayExerciseRequest.setKey("Key"); + updateEssayExerciseRequest.setQuestion("Question"); + updateEssayExerciseRequest.setReAttempt(1); + updateEssayExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateEssayExerciseRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(updateEssayExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/exercises/essay") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#updateFileExercise(UpdateFileExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateFileExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@4d9d651f testClass = com.example.codeE.controller.DiffblueFakeClass5795, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + UpdateFileExerciseRequest updateFileExerciseRequest = new UpdateFileExerciseRequest(); + updateFileExerciseRequest.setDurationTime(1); + updateFileExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateFileExerciseRequest.setExerciseDescription("Exercise Description"); + updateFileExerciseRequest.setExerciseId("42"); + updateFileExerciseRequest.setExerciseName("Exercise Name"); + updateFileExerciseRequest.setKey("Key"); + updateFileExerciseRequest.setQuestion("Question"); + updateFileExerciseRequest.setReAttempt(1); + updateFileExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateFileExerciseRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(updateFileExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/exercises/file") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } + + /** + * Method under test: + * {@link ExerciseController#updateQuizExercise(UpdateQuizExerciseRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateQuizExercise() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@7cfdbe90 testClass = com.example.codeE.controller.DiffblueFakeClass5925, locations = [], classes = [com.example.codeE.controller.ExerciseController, org.springframework.data.mongodb.core.MongoTemplate], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@24e3a9e7, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@49a4b0b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@b138cd24, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@73bada12], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + UpdateQuizExerciseRequest updateQuizExerciseRequest = new UpdateQuizExerciseRequest(); + updateQuizExerciseRequest.setDurationTime(1); + updateQuizExerciseRequest + .setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateQuizExerciseRequest.setExerciseDescription("Exercise Description"); + updateQuizExerciseRequest.setExerciseId("42"); + updateQuizExerciseRequest.setExerciseName("Exercise Name"); + updateQuizExerciseRequest.setKey("Key"); + updateQuizExerciseRequest.setQuestions(new ArrayList<>()); + updateQuizExerciseRequest.setReAttempt(1); + updateQuizExerciseRequest + .setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + updateQuizExerciseRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(updateQuizExerciseRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/exercises/quiz") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(exerciseController).build().perform(requestBuilder); + } +} diff --git a/src/test/java/com/example/codeE/controller/GroupControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/GroupControllerDiffblueTest.java new file mode 100644 index 00000000..63d7920d --- /dev/null +++ b/src/test/java/com/example/codeE/controller/GroupControllerDiffblueTest.java @@ -0,0 +1,472 @@ +package com.example.codeE.controller; + +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.group.Group; +import com.example.codeE.model.group.GroupStudent; +import com.example.codeE.model.group.UpdateGroupRequest; +import com.example.codeE.model.user.User; +import com.example.codeE.request.group.CreateGroupRequest; +import com.example.codeE.request.group.CreateGroupStudentRequest; +import com.example.codeE.service.group.GroupService; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +@ContextConfiguration(classes = {GroupController.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class GroupControllerDiffblueTest { + @Autowired + private GroupController groupController; + + @MockBean + private GroupService groupService; + + /** + * Method under test: {@link GroupController#getGroupsByCourseId(String)} + */ + @Test + void testGetGroupsByCourseId() throws Exception { + // Arrange + when(groupService.getGroupsByCourseId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/groups/course/{courseId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link GroupController#getGroupsByCourseId(String)} + */ + @Test + void testGetGroupsByCourseId2() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + when(groupService.getById(Mockito.any())).thenReturn(group); + when(groupService.getGroupsByCourseId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/groups/course/{courseId}", "", + "Uri Variables"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"groupId\":\"42\",\"courseId\":\"42\",\"groupName\":\"Group Name\",\"createDate\":\"1970-01-01 00:00:00\",\"updateDate" + + "\":\"1970-01-01 00:00:00\"}")); + } + + /** + * Method under test: + * {@link GroupController#addStudentsToGroup(CreateGroupStudentRequest)} + */ + @Test + void testAddStudentsToGroup() throws Exception { + // Arrange + when(groupService.addStudentsToGroup(Mockito.>any(), Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + + CreateGroupStudentRequest createGroupStudentRequest = new CreateGroupStudentRequest(); + createGroupStudentRequest.setDescription("The characteristics of someone or something"); + createGroupStudentRequest.setGroupId("42"); + createGroupStudentRequest.setStudentIds(new ArrayList<>()); + String content = (new ObjectMapper()).writeValueAsString(createGroupStudentRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/groups/student") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400)) + .andExpect(MockMvcResultMatchers.content().contentType("text/plain;charset=ISO-8859-1")) + .andExpect(MockMvcResultMatchers.content().string("Can not add student to group! ")); + } + + /** + * Method under test: + * {@link GroupController#addStudentsToGroup(CreateGroupStudentRequest)} + */ + @Test + void testAddStudentsToGroup2() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Can not add student to group! "); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Can not add student to group! "); + course.setGroups(new ArrayList<>()); + course.setSemester("Can not add student to group! "); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Can not add student to group! "); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Can not add student to group! "); + student.setPassword("iloveyou"); + student.setRole("Can not add student to group! "); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + GroupStudent groupStudent = new GroupStudent(); + groupStudent.setDescription("The characteristics of someone or something"); + groupStudent.setGroup(group); + groupStudent.setGroupId("42"); + groupStudent.setJoinDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + groupStudent.setStudent(student); + groupStudent.setStudentId("42"); + + ArrayList groupStudentList = new ArrayList<>(); + groupStudentList.add(groupStudent); + when(groupService.addStudentsToGroup(Mockito.>any(), Mockito.any(), Mockito.any())) + .thenReturn(groupStudentList); + + CreateGroupStudentRequest createGroupStudentRequest = new CreateGroupStudentRequest(); + createGroupStudentRequest.setDescription("The characteristics of someone or something"); + createGroupStudentRequest.setGroupId("42"); + createGroupStudentRequest.setStudentIds(new ArrayList<>()); + String content = (new ObjectMapper()).writeValueAsString(createGroupStudentRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/groups/student") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "[{\"groupId\":\"42\",\"studentId\":\"42\",\"description\":\"The characteristics of someone or something\",\"joinDate" + + "\":\"1970-01-01 00:00:00\"}]")); + } + + /** + * Method under test: {@link GroupController#getStudentNotInGroup(String)} + */ + @Test + void testGetStudentNotInGroup() throws Exception { + // Arrange + when(groupService.getStudentNotInGroup(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/groups/{groupId}/student/not-in-group", + "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: + * {@link GroupController#updateGroup(String, UpdateGroupRequest)} + */ + @Test + void testUpdateGroup() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + when(groupService.updateGroup(Mockito.any(), Mockito.any())).thenReturn(group); + + UpdateGroupRequest updateGroupRequest = new UpdateGroupRequest(); + updateGroupRequest.setGroupName("Group Name"); + String content = (new ObjectMapper()).writeValueAsString(updateGroupRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/groups/{groupId}", "42") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"groupId\":\"42\",\"courseId\":\"42\",\"groupName\":\"Group Name\",\"createDate\":\"1970-01-01 00:00:00\",\"updateDate" + + "\":\"1970-01-01 00:00:00\"}")); + } + + /** + * Method under test: {@link GroupController#createGroup(CreateGroupRequest)} + */ + @Test + void testCreateGroup() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + when(groupService.createOne(Mockito.any())).thenReturn(group); + + CreateGroupRequest createGroupRequest = new CreateGroupRequest(); + createGroupRequest.setCourseId("42"); + createGroupRequest.setGroupName("Group Name"); + String content = (new ObjectMapper()).writeValueAsString(createGroupRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/groups") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"groupId\":\"42\",\"courseId\":\"42\",\"groupName\":\"Group Name\",\"createDate\":\"1970-01-01 00:00:00\",\"updateDate" + + "\":\"1970-01-01 00:00:00\"}")); + } + + /** + * Method under test: {@link GroupController#deleteGroup(String)} + */ + @Test + void testDeleteGroup() throws Exception { + // Arrange + doNothing().when(groupService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/groups/{groupId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"Delete group successfully\"}")); + } + + /** + * Method under test: {@link GroupController#deleteGroup(String)} + */ + @Test + void testDeleteGroup2() throws Exception { + // Arrange + doNothing().when(groupService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/groups/{groupId}", "42"); + requestBuilder.contentType("https://example.org/example"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"Delete group successfully\"}")); + } + + /** + * Method under test: {@link GroupController#deleteStudentInGroup(String, List)} + */ + @Test + @Disabled("TODO: Complete this test") + void testDeleteStudentInGroup() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Diffblue AI was unable to find a test + + // Arrange + // TODO: Populate arranged inputs + MockHttpServletRequestBuilder contentTypeResult = MockMvcRequestBuilders.delete("/groups/{groupId}/student", "42") + .contentType(MediaType.APPLICATION_JSON); + ArrayList stringList = new ArrayList<>(); + + ObjectMapper objectMapper = new ObjectMapper(); + MockHttpServletRequestBuilder requestBuilder = contentTypeResult + .content(objectMapper.writeValueAsString(stringList)); + MockMvc buildResult = MockMvcBuilders.standaloneSetup(groupController).build(); + + // Act + ResultActions actualPerformResult = buildResult.perform(requestBuilder); + + // Assert + // TODO: Add assertions on result + } + + /** + * Method under test: {@link GroupController#getGroupById(String)} + */ + @Test + void testGetGroupById() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + when(groupService.getById(Mockito.any())).thenReturn(group); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/groups/{groupId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"groupId\":\"42\",\"courseId\":\"42\",\"groupName\":\"Group Name\",\"createDate\":\"1970-01-01 00:00:00\",\"updateDate" + + "\":\"1970-01-01 00:00:00\"}")); + } + + /** + * Method under test: {@link GroupController#getStudentInGroup(String)} + */ + @Test + void testGetStudentInGroup() throws Exception { + // Arrange + when(groupService.getUsersInGroup(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/groups/{groupId}/student/in-group", + "42"); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(groupController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } +} diff --git a/src/test/java/com/example/codeE/controller/JudgeControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/JudgeControllerDiffblueTest.java new file mode 100644 index 00000000..2fc9c999 --- /dev/null +++ b/src/test/java/com/example/codeE/controller/JudgeControllerDiffblueTest.java @@ -0,0 +1,42 @@ +package com.example.codeE.controller; + +import java.io.IOException; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +class JudgeControllerDiffblueTest { + /** + * Method under test: {@link JudgeController#exampleRq()} + */ + @Test + @Disabled("TODO: Complete this test") + void testExampleRq() throws IOException { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // jakarta.servlet.ServletException: Request processing failed: org.bson.BsonInvalidOperationException: writeEndDocument can only be called when State is NAME, not when State is VALUE + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // org.bson.BsonInvalidOperationException: writeEndDocument can only be called when State is NAME, not when State is VALUE + // at org.bson.AbstractBsonWriter.throwInvalidState(AbstractBsonWriter.java:747) + // at org.bson.AbstractBsonWriter.checkPreconditions(AbstractBsonWriter.java:702) + // at org.bson.AbstractBsonWriter.writeEndDocument(AbstractBsonWriter.java:295) + // at com.mongodb.client.model.Updates$SimpleUpdate.toBsonDocument(Updates.java:513) + // at com.mongodb.internal.operation.Operations.toBsonDocument(Operations.java:754) + // at com.mongodb.internal.operation.Operations.findOneAndUpdate(Operations.java:355) + // at com.mongodb.internal.operation.SyncOperations.findOneAndUpdate(SyncOperations.java:168) + // at com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndUpdate(MongoCollectionImpl.java:761) + // at com.mongodb.client.internal.MongoCollectionImpl.findOneAndUpdate(MongoCollectionImpl.java:741) + // at com.mongodb.client.internal.MongoCollectionImpl.findOneAndUpdate(MongoCollectionImpl.java:735) + // at com.example.codeE.helper.AutoIncrement.getNextSequence(AutoIncrement.java:18) + // at com.example.codeE.controller.JudgeController.exampleRq(JudgeController.java:40) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + (new JudgeController()).exampleRq(); + } +} diff --git a/src/test/java/com/example/codeE/controller/MaterialControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/MaterialControllerDiffblueTest.java new file mode 100644 index 00000000..0e9d088d --- /dev/null +++ b/src/test/java/com/example/codeE/controller/MaterialControllerDiffblueTest.java @@ -0,0 +1,393 @@ +package com.example.codeE.controller; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.material.Material; +import com.example.codeE.model.topic.Topic; +import com.example.codeE.request.material.CreateMaterialRequest; +import com.example.codeE.request.material.CreatePermissionMaterialRequest; +import com.example.codeE.request.material.UpdateMaterialRequest; +import com.example.codeE.service.material.MaterialService; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {MaterialController.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class MaterialControllerDiffblueTest { + @Autowired + private MaterialController materialController; + + @MockBean + private MaterialService materialService; + + /** + * Method under test: {@link MaterialController#getById(String)} + */ + @Test + void testGetById() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + when(materialService.getById(Mockito.any())).thenReturn(material); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/materials/{materialId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(materialController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"materialId\":\"42\",\"materialName\":\"Material Name\",\"materialType\":\"Material Type\",\"topicId\":\"42\"," + + "\"storageUrl\":\"https://example.org/example\",\"description\":\"The characteristics of someone or" + + " something\",\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\",\"showAll\":true}")); + } + + /** + * Method under test: + * {@link MaterialController#createOne(CreateMaterialRequest, MultipartFile)} + */ + @Test + void testCreateOne() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + MaterialController materialController = new MaterialController(); + + CreateMaterialRequest request = new CreateMaterialRequest(); + request.setMaterialType("file"); + request.setUrl(null); + + // Act + ResponseEntity actualCreateOneResult = materialController.createOne(request, null); + + // Assert + assertEquals(400, actualCreateOneResult.getStatusCodeValue()); + assertTrue(actualCreateOneResult.hasBody()); + assertTrue(actualCreateOneResult.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link MaterialController#createOne(CreateMaterialRequest, MultipartFile)} + */ + @Test + void testCreateOne2() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + MaterialController materialController = new MaterialController(); + + CreateMaterialRequest request = new CreateMaterialRequest(); + request.setMaterialType("string"); + request.setUrl(null); + + // Act + ResponseEntity actualCreateOneResult = materialController.createOne(request, null); + + // Assert + assertEquals(400, actualCreateOneResult.getStatusCodeValue()); + assertTrue(actualCreateOneResult.hasBody()); + assertTrue(actualCreateOneResult.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link MaterialController#updateByMaterialAndTopicId(UpdateMaterialRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateByMaterialAndTopicId() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // jakarta.servlet.ServletException: Request processing failed: jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.NotBlank' validating type 'java.lang.Boolean'. Check configuration for 'isCheckAll' + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.NotBlank' validating type 'java.lang.Boolean'. Check configuration for 'isCheckAll' + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getExceptionForNullValidator(ConstraintTree.java:116) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:162) + // at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:58) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange + MaterialController materialController = new MaterialController(); + + // Act + materialController.updateByMaterialAndTopicId( + new UpdateMaterialRequest("42", "The characteristics of someone or something", true)); + } + + /** + * Method under test: {@link MaterialController#deleteById(String)} + */ + @Test + void testDeleteById() throws Exception { + // Arrange + doNothing().when(materialService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/materials/{materialId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(materialController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"Delete material successfully\"}")); + } + + /** + * Method under test: {@link MaterialController#deleteById(String)} + */ + @Test + void testDeleteById2() throws Exception { + // Arrange + doNothing().when(materialService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/materials/{materialId}", "42"); + requestBuilder.contentType("https://example.org/example"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(materialController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"Delete material successfully\"}")); + } + + /** + * Method under test: + * {@link MaterialController#addViewPermission(CreatePermissionMaterialRequest)} + */ + @Test + void testAddViewPermission() throws Exception { + // Arrange + when(materialService.addViewPermission(Mockito.any(), Mockito.>any(), anyBoolean())) + .thenReturn(true); + + CreatePermissionMaterialRequest createPermissionMaterialRequest = new CreatePermissionMaterialRequest(); + createPermissionMaterialRequest.setGroupIds(new ArrayList<>()); + createPermissionMaterialRequest.setMaterialId("42"); + createPermissionMaterialRequest.setShowAll(true); + String content = (new ObjectMapper()).writeValueAsString(createPermissionMaterialRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/materials/view") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(materialController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect( + MockMvcResultMatchers.content().string("{\"message\":\"Grant permission for material successful\"}")); + } + + /** + * Method under test: + * {@link MaterialController#addViewPermission(CreatePermissionMaterialRequest)} + */ + @Test + void testAddViewPermission2() throws Exception { + // Arrange + when(materialService.addViewPermission(Mockito.any(), Mockito.>any(), anyBoolean())) + .thenReturn(false); + + CreatePermissionMaterialRequest createPermissionMaterialRequest = new CreatePermissionMaterialRequest(); + createPermissionMaterialRequest.setGroupIds(new ArrayList<>()); + createPermissionMaterialRequest.setMaterialId("42"); + createPermissionMaterialRequest.setShowAll(true); + String content = (new ObjectMapper()).writeValueAsString(createPermissionMaterialRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/materials/view") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(materialController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(500)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect( + MockMvcResultMatchers.content().string("{\"massage\":\"Can not grant permission for this material\"}")); + } + + /** + * Method under test: {@link MaterialController#getMaterialsByTopicId(String)} + */ + @Test + void testGetMaterialsByTopicId() throws Exception { + // Arrange + when(materialService.getAllByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/materials/topic/{topicId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(materialController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link MaterialController#getMaterialsByTopicId(String)} + */ + @Test + void testGetMaterialsByTopicId2() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + when(materialService.getById(Mockito.any())).thenReturn(material); + when(materialService.getAllByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/materials/topic/{topicId}", "", + "Uri Variables"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(materialController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"materialId\":\"42\",\"materialName\":\"Material Name\",\"materialType\":\"Material Type\",\"topicId\":\"42\"," + + "\"storageUrl\":\"https://example.org/example\",\"description\":\"The characteristics of someone or" + + " something\",\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\",\"showAll\":true}")); + } + + /** + * Method under test: + * {@link MaterialController#removeViewPermission(String, List)} + */ + @Test + @Disabled("TODO: Complete this test") + void testRemoveViewPermission() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Diffblue AI was unable to find a test + + // Arrange + // TODO: Populate arranged inputs + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/materials/view") + .param("materialId", "foo"); + MockMvc buildResult = MockMvcBuilders.standaloneSetup(materialController).build(); + + // Act + ResultActions actualPerformResult = buildResult.perform(requestBuilder); + + // Assert + // TODO: Add assertions on result + } +} diff --git a/src/test/java/com/example/codeE/controller/TopicControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/TopicControllerDiffblueTest.java new file mode 100644 index 00000000..b589df2d --- /dev/null +++ b/src/test/java/com/example/codeE/controller/TopicControllerDiffblueTest.java @@ -0,0 +1,407 @@ +package com.example.codeE.controller; + +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.topic.Topic; +import com.example.codeE.request.topic.CreatePermissionTopicRequest; +import com.example.codeE.request.topic.CreateTopicRequest; +import com.example.codeE.request.topic.UpdateTopicRequest; +import com.example.codeE.service.topic.TopicService; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +@ContextConfiguration(classes = {TopicController.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class TopicControllerDiffblueTest { + @Autowired + private TopicController topicController; + + @MockBean + private TopicService topicService; + + /** + * Method under test: {@link TopicController#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId() throws Exception { + // Arrange + when(topicService.getAllTopicsByCourseId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/topics").param("courseId", "foo"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link TopicController#updateTopic(UpdateTopicRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateTopic() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // jakarta.servlet.ServletException: Request processing failed: jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.NotBlank' validating type 'java.lang.Boolean'. Check configuration for 'isShowAll' + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:593) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.NotBlank' validating type 'java.lang.Boolean'. Check configuration for 'isShowAll' + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getExceptionForNullValidator(ConstraintTree.java:116) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:162) + // at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:58) + // at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130) + // at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400) + // at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:593) + // at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange + TopicController topicController = new TopicController(); + + // Act + topicController + .updateTopic(new UpdateTopicRequest("42", "Topic Name", "The characteristics of someone or something", true)); + } + + /** + * Method under test: + * {@link TopicController#addViewPermission(CreatePermissionTopicRequest)} + */ + @Test + void testAddViewPermission() throws Exception { + // Arrange + when(topicService.addViewPermission(Mockito.any(), Mockito.>any(), anyBoolean())) + .thenReturn(true); + + CreatePermissionTopicRequest createPermissionTopicRequest = new CreatePermissionTopicRequest(); + createPermissionTopicRequest.setGroupIds(new ArrayList<>()); + createPermissionTopicRequest.setShowAll(true); + createPermissionTopicRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(createPermissionTopicRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/topics/view") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("{\"message\":\"add permission success\"}")); + } + + /** + * Method under test: + * {@link TopicController#addViewPermission(CreatePermissionTopicRequest)} + */ + @Test + void testAddViewPermission2() throws Exception { + // Arrange + when(topicService.addViewPermission(Mockito.any(), Mockito.>any(), anyBoolean())) + .thenReturn(false); + + CreatePermissionTopicRequest createPermissionTopicRequest = new CreatePermissionTopicRequest(); + createPermissionTopicRequest.setGroupIds(new ArrayList<>()); + createPermissionTopicRequest.setShowAll(true); + createPermissionTopicRequest.setTopicId("42"); + String content = (new ObjectMapper()).writeValueAsString(createPermissionTopicRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/topics/view") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(500)) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect( + MockMvcResultMatchers.content().string("{\"message\":\"Something wrong when add view permission\"}")); + } + + /** + * Method under test: {@link TopicController#getTopicByUserId(String, String)} + */ + @Test + void testGetTopicByUserId() throws Exception { + // Arrange + when(topicService.getTopicByUserId(Mockito.any(), Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/topics/user/{userId}", "42") + .param("courseId", "foo"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link TopicController#getTopicByUserId(String, String)} + */ + @Test + void testGetTopicByUserId2() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + when(topicService.getById(Mockito.any())).thenReturn(topic); + when(topicService.getTopicByUserId(Mockito.any(), Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders + .get("/topics/user/{userId}", "", "Uri Variables") + .param("courseId", "foo"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"topicId\":\"42\",\"courseId\":\"42\",\"topicName\":\"Topic Name\",\"description\":\"The characteristics of" + + " someone or something\",\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\"," + + "\"showAll\":true}")); + } + + /** + * Method under test: {@link TopicController#createTopic(CreateTopicRequest)} + */ + @Test + void testCreateTopic() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + when(topicService.createOne(Mockito.any())).thenReturn(topic); + + CreateTopicRequest createTopicRequest = new CreateTopicRequest(); + createTopicRequest.setCourseId("42"); + createTopicRequest.setDescription("The characteristics of someone or something"); + createTopicRequest.setTopicName("Topic Name"); + String content = (new ObjectMapper()).writeValueAsString(createTopicRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/topics") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"topicId\":\"42\",\"courseId\":\"42\",\"topicName\":\"Topic Name\",\"description\":\"The characteristics of" + + " someone or something\",\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\"," + + "\"showAll\":true}")); + } + + /** + * Method under test: {@link TopicController#deleteTopic(String)} + */ + @Test + void testDeleteTopic() throws Exception { + // Arrange + doNothing().when(topicService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/topics/{topicId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("text/plain;charset=ISO-8859-1")) + .andExpect(MockMvcResultMatchers.content().string("Topic deleted successfully")); + } + + /** + * Method under test: {@link TopicController#deleteTopic(String)} + */ + @Test + void testDeleteTopic2() throws Exception { + // Arrange + doNothing().when(topicService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/topics/{topicId}", "42"); + requestBuilder.contentType("https://example.org/example"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("text/plain;charset=ISO-8859-1")) + .andExpect(MockMvcResultMatchers.content().string("Topic deleted successfully")); + } + + /** + * Method under test: {@link TopicController#getPublicGroups(String)} + */ + @Test + void testGetPublicGroups() throws Exception { + // Arrange + when(topicService.getAllGroupsByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/topics/view").param("topicId", "foo"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link TopicController#getTopic(String)} + */ + @Test + void testGetTopic() throws Exception { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + when(topicService.getById(Mockito.any())).thenReturn(topic); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/topics/{topicId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(topicController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"topicId\":\"42\",\"courseId\":\"42\",\"topicName\":\"Topic Name\",\"description\":\"The characteristics of" + + " someone or something\",\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\"," + + "\"showAll\":true}")); + } + + /** + * Method under test: {@link TopicController#removeViewPermission(String, List)} + */ + @Test + @Disabled("TODO: Complete this test") + void testRemoveViewPermission() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Diffblue AI was unable to find a test + + // Arrange + // TODO: Populate arranged inputs + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/topics/view") + .param("topicId", "foo"); + MockMvc buildResult = MockMvcBuilders.standaloneSetup(topicController).build(); + + // Act + ResultActions actualPerformResult = buildResult.perform(requestBuilder); + + // Assert + // TODO: Add assertions on result + } +} diff --git a/src/test/java/com/example/codeE/controller/UserControllerDiffblueTest.java b/src/test/java/com/example/codeE/controller/UserControllerDiffblueTest.java new file mode 100644 index 00000000..1f912ca8 --- /dev/null +++ b/src/test/java/com/example/codeE/controller/UserControllerDiffblueTest.java @@ -0,0 +1,304 @@ +package com.example.codeE.controller; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.user.User; +import com.example.codeE.request.user.ChangePasswordRequest; +import com.example.codeE.request.user.CreateUserRequest; +import com.example.codeE.request.user.UpdateUserRequest; +import com.example.codeE.service.user.UserService; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.time.LocalDate; +import java.util.ArrayList; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {UserController.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class UserControllerDiffblueTest { + @Autowired + private UserController userController; + + @MockBean + private UserService userService; + + /** + * Method under test: {@link UserController#getUsersByRoleOrAll(String)} + */ + @Test + void testGetUsersByRoleOrAll() throws Exception { + // Arrange + when(userService.getUsersByRoleOrAll(Mockito.any())).thenReturn(new ArrayList<>()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/users"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(userController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content().string("[]")); + } + + /** + * Method under test: {@link UserController#getById(String)} + */ + @Test + void testGetById() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userService.getById(Mockito.any())).thenReturn(user); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/users/{userId}", "42"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(userController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"userId\":\"42\",\"name\":\"Name\",\"email\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\"," + + "\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":" + + "\"Role\"}],\"enabled\":true,\"credentialsNonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true" + + "}")); + } + + /** + * Method under test: {@link UserController#importUsersByExcel(MultipartFile)} + */ + @Test + void testImportUsersByExcel() throws IOException { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + UserController userController = new UserController(); + + // Act + ResponseEntity actualImportUsersByExcelResult = userController + .importUsersByExcel(new MockMultipartFile("Name", new ByteArrayInputStream(new byte[]{}))); + + // Assert + assertEquals(400, actualImportUsersByExcelResult.getStatusCodeValue()); + assertTrue(actualImportUsersByExcelResult.hasBody()); + assertTrue(actualImportUsersByExcelResult.getHeaders().isEmpty()); + } + + /** + * Method under test: + * {@link UserController#changePassword(ChangePasswordRequest)} + */ + @Test + void testChangePassword() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userService.ChangePassword(Mockito.any(), Mockito.any(), Mockito.any())) + .thenReturn(user); + + ChangePasswordRequest changePasswordRequest = new ChangePasswordRequest(); + changePasswordRequest.setNewPassword("iloveyou"); + changePasswordRequest.setOldPassword("iloveyou"); + changePasswordRequest.setUserId("42"); + String content = (new ObjectMapper()).writeValueAsString(changePasswordRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/users/change-password") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act and Assert + MockMvcBuilders.standaloneSetup(userController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"userId\":\"42\",\"name\":\"Name\",\"email\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\"," + + "\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":" + + "\"Role\"}],\"enabled\":true,\"credentialsNonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true" + + "}")); + } + + /** + * Method under test: {@link UserController#deleteById(String)} + */ + @Test + void testDeleteById() throws Exception { + // Arrange + doNothing().when(userService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/users/{userId}", "42"); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(userController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isNotFound()) + .andExpect(MockMvcResultMatchers.content().contentType("text/plain;charset=ISO-8859-1")) + .andExpect(MockMvcResultMatchers.content().string("No user found with ID:42")); + } + + /** + * Method under test: {@link UserController#deleteById(String)} + */ + @Test + void testDeleteById2() throws Exception { + // Arrange + doNothing().when(userService).deleteById(Mockito.any()); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/users/{userId}", "42"); + requestBuilder.contentType("https://example.org/example"); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(userController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().isNotFound()) + .andExpect(MockMvcResultMatchers.content().contentType("text/plain;charset=ISO-8859-1")) + .andExpect(MockMvcResultMatchers.content().string("No user found with ID:42")); + } + + /** + * Method under test: {@link UserController#getUserByUserName(String, String)} + */ + @Test + void testGetUserByUserName() throws Exception { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userService.getUserByUserName(Mockito.any(), Mockito.any())).thenReturn(user); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders + .get("/users/get-by-user-name/{username}", "janedoe") + .param("role", "foo"); + + // Act and Assert + MockMvcBuilders.standaloneSetup(userController) + .build() + .perform(requestBuilder) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().contentType("application/json")) + .andExpect(MockMvcResultMatchers.content() + .string( + "{\"userId\":\"42\",\"name\":\"Name\",\"email\":\"jane.doe@example.org\",\"username\":\"janedoe\",\"role\":\"Role\"," + + "\"createdDate\":\"1970-01-01 00:00:00\",\"updatedDate\":\"1970-01-01 00:00:00\",\"authorities\":[{\"authority\":" + + "\"Role\"}],\"enabled\":true,\"credentialsNonExpired\":true,\"accountNonExpired\":true,\"accountNonLocked\":true" + + "}")); + } + + /** + * Method under test: {@link UserController#createUser(CreateUserRequest)} + */ + @Test + void testCreateUser() throws Exception { + // Arrange + CreateUserRequest createUserRequest = new CreateUserRequest(); + createUserRequest.setEmail("jane.doe@example.org"); + createUserRequest.setName("Name"); + createUserRequest.setRole("Role"); + createUserRequest.setUsername("janedoe"); + String content = (new ObjectMapper()).writeValueAsString(createUserRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/users") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(userController).build().perform(requestBuilder); + + // Assert + actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400)); + } + + /** + * Method under test: {@link UserController#updateById(UpdateUserRequest)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdateById() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference chain: com.example.codeE.request.user.UpdateUserRequest["createdDate"]) + // at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) + // at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1308) + // at com.fasterxml.jackson.databind.ser.impl.UnsupportedTypeSerializer.serialize(UnsupportedTypeSerializer.java:35) + // at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:732) + // at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:772) + // at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) + // at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:479) + // at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:318) + // at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4719) + // at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3964) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange + UpdateUserRequest updateUserRequest = new UpdateUserRequest(); + updateUserRequest.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + updateUserRequest.setUpdatedEmail("2020-03-01"); + updateUserRequest.setUpdatedName("2020-03-01"); + updateUserRequest.setUpdatedPassword("2020-03-01"); + updateUserRequest.setUpdatedRole("2020-03-01"); + updateUserRequest.setUpdatedUsername("janedoe"); + updateUserRequest.setUserId("42"); + String content = (new ObjectMapper()).writeValueAsString(updateUserRequest); + MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.patch("/users") + .contentType(MediaType.APPLICATION_JSON) + .content(content); + + // Act + MockMvcBuilders.standaloneSetup(userController).build().perform(requestBuilder); + } +} diff --git a/src/test/java/com/example/codeE/entity/group/StudentInGroupEntityDiffblueTest.java b/src/test/java/com/example/codeE/entity/group/StudentInGroupEntityDiffblueTest.java new file mode 100644 index 00000000..a7e5f949 --- /dev/null +++ b/src/test/java/com/example/codeE/entity/group/StudentInGroupEntityDiffblueTest.java @@ -0,0 +1,83 @@ +package com.example.codeE.entity.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +import org.junit.jupiter.api.Test; + +class StudentInGroupEntityDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link StudentInGroupEntity#StudentInGroupEntity()} + *
  • {@link StudentInGroupEntity#setJoinDate(LocalDateTime)} + *
  • {@link StudentInGroupEntity#setName(String)} + *
  • {@link StudentInGroupEntity#setUserId(String)} + *
  • {@link StudentInGroupEntity#setUserName(String)} + *
  • {@link StudentInGroupEntity#getJoinDate()} + *
  • {@link StudentInGroupEntity#getName()} + *
  • {@link StudentInGroupEntity#getUserId()} + *
  • {@link StudentInGroupEntity#getUserName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + StudentInGroupEntity actualStudentInGroupEntity = new StudentInGroupEntity(); + LocalDateTime joinDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualStudentInGroupEntity.setJoinDate(joinDate); + actualStudentInGroupEntity.setName("Name"); + actualStudentInGroupEntity.setUserId("42"); + actualStudentInGroupEntity.setUserName("janedoe"); + LocalDateTime actualJoinDate = actualStudentInGroupEntity.getJoinDate(); + String actualName = actualStudentInGroupEntity.getName(); + String actualUserId = actualStudentInGroupEntity.getUserId(); + + // Assert that nothing has changed + assertEquals("42", actualUserId); + assertEquals("Name", actualName); + assertEquals("janedoe", actualStudentInGroupEntity.getUserName()); + assertSame(joinDate, actualJoinDate); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link StudentInGroupEntity#StudentInGroupEntity(String, String, String, LocalDateTime)} + *
  • {@link StudentInGroupEntity#setJoinDate(LocalDateTime)} + *
  • {@link StudentInGroupEntity#setName(String)} + *
  • {@link StudentInGroupEntity#setUserId(String)} + *
  • {@link StudentInGroupEntity#setUserName(String)} + *
  • {@link StudentInGroupEntity#getJoinDate()} + *
  • {@link StudentInGroupEntity#getName()} + *
  • {@link StudentInGroupEntity#getUserId()} + *
  • {@link StudentInGroupEntity#getUserName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + StudentInGroupEntity actualStudentInGroupEntity = new StudentInGroupEntity("42", "Name", "janedoe", + LocalDate.of(1970, 1, 1).atStartOfDay()); + LocalDateTime joinDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualStudentInGroupEntity.setJoinDate(joinDate); + actualStudentInGroupEntity.setName("Name"); + actualStudentInGroupEntity.setUserId("42"); + actualStudentInGroupEntity.setUserName("janedoe"); + LocalDateTime actualJoinDate = actualStudentInGroupEntity.getJoinDate(); + String actualName = actualStudentInGroupEntity.getName(); + String actualUserId = actualStudentInGroupEntity.getUserId(); + + // Assert that nothing has changed + assertEquals("42", actualUserId); + assertEquals("Name", actualName); + assertEquals("janedoe", actualStudentInGroupEntity.getUserName()); + assertSame(joinDate, actualJoinDate); + } +} diff --git a/src/test/java/com/example/codeE/entity/group/StudentNotInGroupEntityDiffblueTest.java b/src/test/java/com/example/codeE/entity/group/StudentNotInGroupEntityDiffblueTest.java new file mode 100644 index 00000000..c40cfd42 --- /dev/null +++ b/src/test/java/com/example/codeE/entity/group/StudentNotInGroupEntityDiffblueTest.java @@ -0,0 +1,66 @@ +package com.example.codeE.entity.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class StudentNotInGroupEntityDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link StudentNotInGroupEntity#StudentNotInGroupEntity()} + *
  • {@link StudentNotInGroupEntity#setName(String)} + *
  • {@link StudentNotInGroupEntity#setUserId(String)} + *
  • {@link StudentNotInGroupEntity#setUserName(String)} + *
  • {@link StudentNotInGroupEntity#getName()} + *
  • {@link StudentNotInGroupEntity#getUserId()} + *
  • {@link StudentNotInGroupEntity#getUserName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + StudentNotInGroupEntity actualStudentNotInGroupEntity = new StudentNotInGroupEntity(); + actualStudentNotInGroupEntity.setName("Name"); + actualStudentNotInGroupEntity.setUserId("42"); + actualStudentNotInGroupEntity.setUserName("janedoe"); + String actualName = actualStudentNotInGroupEntity.getName(); + String actualUserId = actualStudentNotInGroupEntity.getUserId(); + + // Assert that nothing has changed + assertEquals("42", actualUserId); + assertEquals("Name", actualName); + assertEquals("janedoe", actualStudentNotInGroupEntity.getUserName()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link StudentNotInGroupEntity#StudentNotInGroupEntity(String, String, String)} + *
  • {@link StudentNotInGroupEntity#setName(String)} + *
  • {@link StudentNotInGroupEntity#setUserId(String)} + *
  • {@link StudentNotInGroupEntity#setUserName(String)} + *
  • {@link StudentNotInGroupEntity#getName()} + *
  • {@link StudentNotInGroupEntity#getUserId()} + *
  • {@link StudentNotInGroupEntity#getUserName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + StudentNotInGroupEntity actualStudentNotInGroupEntity = new StudentNotInGroupEntity("42", "Name", "janedoe"); + actualStudentNotInGroupEntity.setName("Name"); + actualStudentNotInGroupEntity.setUserId("42"); + actualStudentNotInGroupEntity.setUserName("janedoe"); + String actualName = actualStudentNotInGroupEntity.getName(); + String actualUserId = actualStudentNotInGroupEntity.getUserId(); + + // Assert that nothing has changed + assertEquals("42", actualUserId); + assertEquals("Name", actualName); + assertEquals("janedoe", actualStudentNotInGroupEntity.getUserName()); + } +} diff --git a/src/test/java/com/example/codeE/helper/AuditingMongoEventListenerDiffblueTest.java b/src/test/java/com/example/codeE/helper/AuditingMongoEventListenerDiffblueTest.java new file mode 100644 index 00000000..dbaaa07a --- /dev/null +++ b/src/test/java/com/example/codeE/helper/AuditingMongoEventListenerDiffblueTest.java @@ -0,0 +1,41 @@ +package com.example.codeE.helper; + +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import com.example.codeE.model.exercise.CodeExercise; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.mapping.event.BeforeConvertEvent; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {AuditingMongoEventListener.class}) +@ExtendWith(SpringExtension.class) +class AuditingMongoEventListenerDiffblueTest { + @Autowired + private AuditingMongoEventListener auditingMongoEventListener; + + /** + * Method under test: + * {@link AuditingMongoEventListener#onBeforeConvert(BeforeConvertEvent)} + */ + @Test + void testOnBeforeConvert() { + // Arrange + CodeExercise codeExercise = mock(CodeExercise.class); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + + // Act + auditingMongoEventListener.onBeforeConvert(new BeforeConvertEvent<>(codeExercise, "Collection Name")); + + // Assert that nothing has changed + verify(codeExercise).setCreatedDate(eq("1970-01-01 00:00:00.000000")); + verify(codeExercise).setUpdatedDate(eq("1970-01-01 00:00:00.111111")); + } +} diff --git a/src/test/java/com/example/codeE/helper/CloudStorageHelperDiffblueTest.java b/src/test/java/com/example/codeE/helper/CloudStorageHelperDiffblueTest.java new file mode 100644 index 00000000..9fa4b1db --- /dev/null +++ b/src/test/java/com/example/codeE/helper/CloudStorageHelperDiffblueTest.java @@ -0,0 +1,90 @@ +package com.example.codeE.helper; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.core.env.Environment; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {CloudStorageHelper.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class CloudStorageHelperDiffblueTest { + @Autowired + private CloudStorageHelper cloudStorageHelper; + + @MockBean + private Environment environment; + + /** + * Method under test: {@link CloudStorageHelper#init()} + */ + @Test + @Disabled("TODO: Complete this test") + void testInit() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Diffblue AI was unable to find a test + + // Arrange and Act + // TODO: Populate arranged inputs + this.cloudStorageHelper.init(); + + // Assert + // TODO: Add assertions on result + } + + /** + * Method under test: + * {@link CloudStorageHelper#uploadFile(MultipartFile, String)} + */ + @Test + void testUploadFile() throws Exception { + // Arrange, Act and Assert + assertThrows(Exception.class, () -> cloudStorageHelper + .uploadFile(new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))), "Store")); + assertThrows(Exception.class, () -> cloudStorageHelper.uploadFile( + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))), true, "Store")); + } + + /** + * Method under test: {@link CloudStorageHelper#deleteFile(String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testDeleteFile() throws IOException, RuntimeException { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // java.lang.NullPointerException + // at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:903) + // at com.google.cloud.storage.BlobId.of(BlobId.java:120) + // at com.google.cloud.storage.StorageImpl.get(StorageImpl.java:329) + // at com.example.codeE.helper.CloudStorageHelper.deleteFile(CloudStorageHelper.java:67) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + cloudStorageHelper.deleteFile("https://example.org/example"); + } + + /** + * Method under test: {@link CloudStorageHelper#getFileNameFromPath(String)} + */ + @Test + void testGetFileNameFromPath() { + // Arrange, Act and Assert + assertNull(cloudStorageHelper.getFileNameFromPath("/directory/foo.txt")); + } +} diff --git a/src/test/java/com/example/codeE/helper/JWTUtilsDiffblueTest.java b/src/test/java/com/example/codeE/helper/JWTUtilsDiffblueTest.java new file mode 100644 index 00000000..26cdb152 --- /dev/null +++ b/src/test/java/com/example/codeE/helper/JWTUtilsDiffblueTest.java @@ -0,0 +1,137 @@ +package com.example.codeE.helper; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.user.User; + +import java.util.HashMap; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {JWTUtils.class}) +@ExtendWith(SpringExtension.class) +class JWTUtilsDiffblueTest { + @Autowired + private JWTUtils jWTUtils; + + /** + * Method under test: {@link JWTUtils#generateToken(UserDetails)} + */ + @Test + void testGenerateToken() { + // Arrange + User userDetails = mock(User.class); + when(userDetails.getUsername()).thenReturn("janedoe"); + + // Act + jWTUtils.generateToken(userDetails); + + // Assert + verify(userDetails).getUsername(); + } + + /** + * Method under test: + * {@link JWTUtils#generateRefreshToken(HashMap, UserDetails)} + */ + @Test + void testGenerateRefreshToken() { + // Arrange + HashMap claims = new HashMap<>(); + User userDetails = mock(User.class); + when(userDetails.getUsername()).thenReturn("janedoe"); + + // Act + jWTUtils.generateRefreshToken(claims, userDetails); + + // Assert + verify(userDetails).getUsername(); + } + + /** + * Method under test: {@link JWTUtils#extractUserName(String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testExtractUserName() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // io.jsonwebtoken.MalformedJwtException: Invalid compact JWT string: Compact JWSs must contain exactly 2 period characters, and compact JWEs must contain exactly 4. Found: 0 + // at io.jsonwebtoken.impl.JwtTokenizer.tokenize(JwtTokenizer.java:102) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:370) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:362) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:94) + // at io.jsonwebtoken.impl.io.AbstractParser.parse(AbstractParser.java:36) + // at io.jsonwebtoken.impl.io.AbstractParser.parse(AbstractParser.java:29) + // at io.jsonwebtoken.impl.DefaultJwtParser.parseSignedClaims(DefaultJwtParser.java:821) + // at com.example.codeE.helper.JWTUtils.extractClaims(JWTUtils.java:46) + // at com.example.codeE.helper.JWTUtils.extractUserName(JWTUtils.java:42) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + jWTUtils.extractUserName("ABC123"); + } + + /** + * Method under test: {@link JWTUtils#isTokenValid(String, UserDetails)} + */ + @Test + @Disabled("TODO: Complete this test") + void testIsTokenValid() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // io.jsonwebtoken.MalformedJwtException: Invalid compact JWT string: Compact JWSs must contain exactly 2 period characters, and compact JWEs must contain exactly 4. Found: 0 + // at io.jsonwebtoken.impl.JwtTokenizer.tokenize(JwtTokenizer.java:102) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:370) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:362) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:94) + // at io.jsonwebtoken.impl.io.AbstractParser.parse(AbstractParser.java:36) + // at io.jsonwebtoken.impl.io.AbstractParser.parse(AbstractParser.java:29) + // at io.jsonwebtoken.impl.DefaultJwtParser.parseSignedClaims(DefaultJwtParser.java:821) + // at com.example.codeE.helper.JWTUtils.extractClaims(JWTUtils.java:46) + // at com.example.codeE.helper.JWTUtils.extractUserName(JWTUtils.java:42) + // at com.example.codeE.helper.JWTUtils.isTokenValid(JWTUtils.java:49) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + jWTUtils.isTokenValid("ABC123", new User()); + } + + /** + * Method under test: {@link JWTUtils#isTokenExpired(String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testIsTokenExpired() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // io.jsonwebtoken.MalformedJwtException: Invalid compact JWT string: Compact JWSs must contain exactly 2 period characters, and compact JWEs must contain exactly 4. Found: 0 + // at io.jsonwebtoken.impl.JwtTokenizer.tokenize(JwtTokenizer.java:102) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:370) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:362) + // at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:94) + // at io.jsonwebtoken.impl.io.AbstractParser.parse(AbstractParser.java:36) + // at io.jsonwebtoken.impl.io.AbstractParser.parse(AbstractParser.java:29) + // at io.jsonwebtoken.impl.DefaultJwtParser.parseSignedClaims(DefaultJwtParser.java:821) + // at com.example.codeE.helper.JWTUtils.extractClaims(JWTUtils.java:46) + // at com.example.codeE.helper.JWTUtils.isTokenExpired(JWTUtils.java:54) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + jWTUtils.isTokenExpired("ABC123"); + } +} diff --git a/src/test/java/com/example/codeE/judge/JudgeListDiffblueTest.java b/src/test/java/com/example/codeE/judge/JudgeListDiffblueTest.java new file mode 100644 index 00000000..e4ac0f18 --- /dev/null +++ b/src/test/java/com/example/codeE/judge/JudgeListDiffblueTest.java @@ -0,0 +1,44 @@ +package com.example.codeE.judge; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.example.codeE.judge.handlers.JudgeHandler; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {JudgeList.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class JudgeListDiffblueTest { + @MockBean + private JudgeHandler judgeHandler; + + @Autowired + private JudgeList judgeList; + + /** + * Method under test: {@link JudgeList#abort(String)} + */ + @Test + void testAbort() { + // Arrange, Act and Assert + assertFalse(judgeList.abort("Submission")); + } + + /** + * Method under test: {@link JudgeList#checkPriority(int)} + */ + @Test + void testCheckPriority() { + // Arrange, Act and Assert + assertTrue(judgeList.checkPriority(1)); + assertFalse(judgeList.checkPriority(4)); + assertFalse(judgeList.checkPriority(-1)); + } +} diff --git a/src/test/java/com/example/codeE/judge/configurations/JudgeHandlerConfigDiffblueTest.java b/src/test/java/com/example/codeE/judge/configurations/JudgeHandlerConfigDiffblueTest.java new file mode 100644 index 00000000..f79004c8 --- /dev/null +++ b/src/test/java/com/example/codeE/judge/configurations/JudgeHandlerConfigDiffblueTest.java @@ -0,0 +1,104 @@ +package com.example.codeE.judge.configurations; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.Mockito.mock; + +import com.example.codeE.judge.handlers.JudgeHandler; +import com.example.codeE.model.exercise.common.Judge; +import com.example.codeE.service.exercise.CodeExerciseImpl; +import com.example.codeE.service.exercise.CodeExerciseService; +import com.example.codeE.service.exercise.common.RuntimeVersionImpl; +import com.example.codeE.service.exercise.common.RuntimeVersionService; +import com.example.codeE.service.exercise.common.SubmissionTestCaseImpl; +import com.example.codeE.service.exercise.common.SubmissionTestCaseService; +import com.example.codeE.service.exercise.submission.CodeSubmissionImpl; +import com.example.codeE.service.exercise.submission.CodeSubmissionService; +import com.example.codeE.service.judge.LanguageLimitService; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {JudgeHandlerConfig.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class JudgeHandlerConfigDiffblueTest { + @Autowired + private JudgeHandlerConfig judgeHandlerConfig; + + @MockBean + private LanguageLimitService languageLimitService; + + /** + * Method under test: + * {@link JudgeHandlerConfig#judgeHandler(RuntimeVersionService, CodeSubmissionService, CodeExerciseService, LanguageLimitService, SubmissionTestCaseService)} + */ + @Test + void testJudgeHandler() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + JudgeHandlerConfig judgeHandlerConfig = new JudgeHandlerConfig(); + RuntimeVersionImpl runtimeVersionService = new RuntimeVersionImpl(); + CodeSubmissionImpl codeSubmissionService = new CodeSubmissionImpl(); + CodeExerciseImpl codeExerciseService = new CodeExerciseImpl(); + LanguageLimitService languageLimitService = mock(LanguageLimitService.class); + SubmissionTestCaseImpl submissionTestCaseService = new SubmissionTestCaseImpl(); + + // Act + JudgeHandler actualJudgeHandlerResult = judgeHandlerConfig.judgeHandler(runtimeVersionService, + codeSubmissionService, codeExerciseService, languageLimitService, submissionTestCaseService); + + // Assert + Judge judge = actualJudgeHandlerResult.getJudge(); + assertEquals("100/Base64/characters/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMN", + judge.getAuthKey()); + assertEquals("DefaultJudge", judge.getName()); + assertEquals("ExampleJudge", judge.getJudgeId()); + assertNull(judge.getDescription()); + assertEquals(13, actualJudgeHandlerResult.getHandlers().size()); + assertFalse(judge.getIsBlocked()); + assertFalse(judge.getIsDisabled()); + assertFalse(judge.getOnline()); + assertSame(codeExerciseService, actualJudgeHandlerResult.getCodeExerciseService()); + assertSame(runtimeVersionService, actualJudgeHandlerResult.getRuntimeVersionService()); + assertSame(submissionTestCaseService, actualJudgeHandlerResult.getSubmissionTestCaseService()); + assertSame(codeSubmissionService, actualJudgeHandlerResult.getCodeSubmissionService()); + assertSame(languageLimitService, actualJudgeHandlerResult.getLanguageLimitService()); + } + + /** + * Method under test: + * {@link JudgeHandlerConfig#judgeHandler(RuntimeVersionService, CodeSubmissionService, CodeExerciseService, LanguageLimitService, SubmissionTestCaseService)} + */ + @Test + @Disabled("TODO: Complete this test") + void testJudgeHandler2() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'judgeHandler': Unsatisfied dependency expressed through field 'runtimeVersionService': No qualifying bean of type 'com.example.codeE.service.exercise.common.RuntimeVersionService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} + // at com.example.codeE.judge.configurations.JudgeHandlerConfig$$SpringCGLIB$$0.judgeHandler() + // org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.codeE.service.exercise.common.RuntimeVersionService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} + // at com.example.codeE.judge.configurations.JudgeHandlerConfig$$SpringCGLIB$$0.judgeHandler() + // See https://diff.blue/R013 to resolve this issue. + + // Arrange + RuntimeVersionImpl runtimeVersionService = new RuntimeVersionImpl(); + CodeSubmissionImpl codeSubmissionService = new CodeSubmissionImpl(); + CodeExerciseImpl codeExerciseService = new CodeExerciseImpl(); + LanguageLimitService languageLimitService2 = mock(LanguageLimitService.class); + + // Act + judgeHandlerConfig.judgeHandler(runtimeVersionService, codeSubmissionService, codeExerciseService, + languageLimitService2, new SubmissionTestCaseImpl()); + } +} diff --git a/src/test/java/com/example/codeE/judge/configurations/PriorityMarkerDiffblueTest.java b/src/test/java/com/example/codeE/judge/configurations/PriorityMarkerDiffblueTest.java new file mode 100644 index 00000000..89fd0186 --- /dev/null +++ b/src/test/java/com/example/codeE/judge/configurations/PriorityMarkerDiffblueTest.java @@ -0,0 +1,16 @@ +package com.example.codeE.judge.configurations; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class PriorityMarkerDiffblueTest { + /** + * Method under test: {@link PriorityMarker#PriorityMarker(int)} + */ + @Test + void testNewPriorityMarker() { + // Arrange, Act and Assert + assertEquals(1, (new PriorityMarker(1)).priority); + } +} diff --git a/src/test/java/com/example/codeE/judge/configurations/SpringBootHandlerConfigDiffblueTest.java b/src/test/java/com/example/codeE/judge/configurations/SpringBootHandlerConfigDiffblueTest.java new file mode 100644 index 00000000..0f0aa15e --- /dev/null +++ b/src/test/java/com/example/codeE/judge/configurations/SpringBootHandlerConfigDiffblueTest.java @@ -0,0 +1,109 @@ +package com.example.codeE.judge.configurations; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mock; + +import com.example.codeE.judge.JudgeList; +import com.example.codeE.judge.handlers.JudgeHandler; +import com.example.codeE.judge.handlers.SpringBootHandler; +import com.example.codeE.service.exercise.CodeExerciseService; +import com.example.codeE.service.exercise.common.RuntimeVersionService; +import com.example.codeE.service.exercise.common.SubmissionTestCaseService; +import com.example.codeE.service.exercise.submission.CodeSubmissionService; +import com.example.codeE.service.judge.LanguageLimitService; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {SpringBootHandlerConfig.class, JudgeList.class, JudgeHandler.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class SpringBootHandlerConfigDiffblueTest { + @MockBean + private CodeExerciseService codeExerciseService; + + @MockBean + private CodeSubmissionService codeSubmissionService; + + @Autowired + private JudgeList judgeList; + + @MockBean + private LanguageLimitService languageLimitService; + + @MockBean + private RuntimeVersionService runtimeVersionService; + + @Autowired + private SpringBootHandlerConfig springBootHandlerConfig; + + @MockBean + private SubmissionTestCaseService submissionTestCaseService; + + /** + * Method under test: + * {@link SpringBootHandlerConfig#springBootHandler(JudgeList)} + */ + @Test + void testSpringBootHandler() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + SpringBootHandlerConfig springBootHandlerConfig = new SpringBootHandlerConfig(); + JudgeList judges = new JudgeList(new JudgeHandler()); + + // Act + SpringBootHandler actualSpringBootHandlerResult = springBootHandlerConfig.springBootHandler(judges); + + // Assert + assertFalse(judges.abort("Submission")); + assertTrue(judges.checkPriority(1)); + assertTrue(actualSpringBootHandlerResult.isSharable()); + } + + /** + * Method under test: + * {@link SpringBootHandlerConfig#springBootHandler(JudgeList)} + */ + @Test + void testSpringBootHandler2() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + SpringBootHandlerConfig springBootHandlerConfig = new SpringBootHandlerConfig(); + JudgeList judges = new JudgeList(mock(JudgeHandler.class)); + + // Act + SpringBootHandler actualSpringBootHandlerResult = springBootHandlerConfig.springBootHandler(judges); + + // Assert + assertFalse(judges.abort("Submission")); + assertTrue(judges.checkPriority(1)); + assertTrue(actualSpringBootHandlerResult.isSharable()); + } + + /** + * Method under test: + * {@link SpringBootHandlerConfig#springBootHandler(JudgeList)} + */ + @Test + void testSpringBootHandler3() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Missing observers. + // Diffblue Cover was unable to create an assertion. + // Add getters for the following fields or make them package-private: + // SpringBootHandler.judges + // SpringBootHandler.methodMap + // ChannelHandlerAdapter.added + // JudgeList.judge + // JudgeList.priorities + + // Arrange and Act + springBootHandlerConfig.springBootHandler(judgeList); + } +} diff --git a/src/test/java/com/example/codeE/mapper/course/CourseFromExcelDiffblueTest.java b/src/test/java/com/example/codeE/mapper/course/CourseFromExcelDiffblueTest.java new file mode 100644 index 00000000..ea4471e6 --- /dev/null +++ b/src/test/java/com/example/codeE/mapper/course/CourseFromExcelDiffblueTest.java @@ -0,0 +1,76 @@ +package com.example.codeE.mapper.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CourseFromExcelDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CourseFromExcel#CourseFromExcel()} + *
  • {@link CourseFromExcel#setCourseId(String)} + *
  • {@link CourseFromExcel#setCourseName(String)} + *
  • {@link CourseFromExcel#setDescription(String)} + *
  • {@link CourseFromExcel#setSemester(String)} + *
  • {@link CourseFromExcel#getCourseId()} + *
  • {@link CourseFromExcel#getCourseName()} + *
  • {@link CourseFromExcel#getDescription()} + *
  • {@link CourseFromExcel#getSemester()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CourseFromExcel actualCourseFromExcel = new CourseFromExcel(); + actualCourseFromExcel.setCourseId("42"); + actualCourseFromExcel.setCourseName("Course Name"); + actualCourseFromExcel.setDescription("The characteristics of someone or something"); + actualCourseFromExcel.setSemester("Semester"); + String actualCourseId = actualCourseFromExcel.getCourseId(); + String actualCourseName = actualCourseFromExcel.getCourseName(); + String actualDescription = actualCourseFromExcel.getDescription(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("Course Name", actualCourseName); + assertEquals("Semester", actualCourseFromExcel.getSemester()); + assertEquals("The characteristics of someone or something", actualDescription); + } + + /** + * Methods under test: + * + *
    + *
  • {@link CourseFromExcel#CourseFromExcel(String, String, String, String)} + *
  • {@link CourseFromExcel#setCourseId(String)} + *
  • {@link CourseFromExcel#setCourseName(String)} + *
  • {@link CourseFromExcel#setDescription(String)} + *
  • {@link CourseFromExcel#setSemester(String)} + *
  • {@link CourseFromExcel#getCourseId()} + *
  • {@link CourseFromExcel#getCourseName()} + *
  • {@link CourseFromExcel#getDescription()} + *
  • {@link CourseFromExcel#getSemester()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CourseFromExcel actualCourseFromExcel = new CourseFromExcel("42", "Course Name", "Semester", + "The characteristics of someone or something"); + actualCourseFromExcel.setCourseId("42"); + actualCourseFromExcel.setCourseName("Course Name"); + actualCourseFromExcel.setDescription("The characteristics of someone or something"); + actualCourseFromExcel.setSemester("Semester"); + String actualCourseId = actualCourseFromExcel.getCourseId(); + String actualCourseName = actualCourseFromExcel.getCourseName(); + String actualDescription = actualCourseFromExcel.getDescription(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("Course Name", actualCourseName); + assertEquals("Semester", actualCourseFromExcel.getSemester()); + assertEquals("The characteristics of someone or something", actualDescription); + } +} diff --git a/src/test/java/com/example/codeE/mapper/course/CourseTeacherDTODiffblueTest.java b/src/test/java/com/example/codeE/mapper/course/CourseTeacherDTODiffblueTest.java new file mode 100644 index 00000000..e9325d20 --- /dev/null +++ b/src/test/java/com/example/codeE/mapper/course/CourseTeacherDTODiffblueTest.java @@ -0,0 +1,56 @@ +package com.example.codeE.mapper.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class CourseTeacherDTODiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CourseTeacherDTO#CourseTeacherDTO()} + *
  • {@link CourseTeacherDTO#setIsMain(Boolean)} + *
  • {@link CourseTeacherDTO#setTeacherId(String)} + *
  • {@link CourseTeacherDTO#getIsMain()} + *
  • {@link CourseTeacherDTO#getTeacherId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CourseTeacherDTO actualCourseTeacherDTO = new CourseTeacherDTO(); + actualCourseTeacherDTO.setIsMain(true); + actualCourseTeacherDTO.setTeacherId("42"); + Boolean actualIsMain = actualCourseTeacherDTO.getIsMain(); + + // Assert that nothing has changed + assertEquals("42", actualCourseTeacherDTO.getTeacherId()); + assertTrue(actualIsMain); + } + + /** + * Methods under test: + * + *
    + *
  • {@link CourseTeacherDTO#CourseTeacherDTO(String, Boolean)} + *
  • {@link CourseTeacherDTO#setIsMain(Boolean)} + *
  • {@link CourseTeacherDTO#setTeacherId(String)} + *
  • {@link CourseTeacherDTO#getIsMain()} + *
  • {@link CourseTeacherDTO#getTeacherId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CourseTeacherDTO actualCourseTeacherDTO = new CourseTeacherDTO("42", true); + actualCourseTeacherDTO.setIsMain(true); + actualCourseTeacherDTO.setTeacherId("42"); + Boolean actualIsMain = actualCourseTeacherDTO.getIsMain(); + + // Assert that nothing has changed + assertEquals("42", actualCourseTeacherDTO.getTeacherId()); + assertTrue(actualIsMain); + } +} diff --git a/src/test/java/com/example/codeE/mapper/course/StudentInCourseExcelDiffblueTest.java b/src/test/java/com/example/codeE/mapper/course/StudentInCourseExcelDiffblueTest.java new file mode 100644 index 00000000..afab13b2 --- /dev/null +++ b/src/test/java/com/example/codeE/mapper/course/StudentInCourseExcelDiffblueTest.java @@ -0,0 +1,45 @@ +package com.example.codeE.mapper.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class StudentInCourseExcelDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link StudentInCourseExcel#StudentInCourseExcel()} + *
  • {@link StudentInCourseExcel#setStudentName(String)} + *
  • {@link StudentInCourseExcel#getStudentName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + StudentInCourseExcel actualStudentInCourseExcel = new StudentInCourseExcel(); + actualStudentInCourseExcel.setStudentName("Student Name"); + + // Assert that nothing has changed + assertEquals("Student Name", actualStudentInCourseExcel.getStudentName()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link StudentInCourseExcel#StudentInCourseExcel(String)} + *
  • {@link StudentInCourseExcel#setStudentName(String)} + *
  • {@link StudentInCourseExcel#getStudentName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + StudentInCourseExcel actualStudentInCourseExcel = new StudentInCourseExcel("Student Name"); + actualStudentInCourseExcel.setStudentName("Student Name"); + + // Assert that nothing has changed + assertEquals("Student Name", actualStudentInCourseExcel.getStudentName()); + } +} diff --git a/src/test/java/com/example/codeE/mapper/user/UserFromExcelDiffblueTest.java b/src/test/java/com/example/codeE/mapper/user/UserFromExcelDiffblueTest.java new file mode 100644 index 00000000..0a50b115 --- /dev/null +++ b/src/test/java/com/example/codeE/mapper/user/UserFromExcelDiffblueTest.java @@ -0,0 +1,86 @@ +package com.example.codeE.mapper.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class UserFromExcelDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UserFromExcel#UserFromExcel()} + *
  • {@link UserFromExcel#setEmail(String)} + *
  • {@link UserFromExcel#setName(String)} + *
  • {@link UserFromExcel#setRole(String)} + *
  • {@link UserFromExcel#setUserId(String)} + *
  • {@link UserFromExcel#setUsername(String)} + *
  • {@link UserFromExcel#getEmail()} + *
  • {@link UserFromExcel#getName()} + *
  • {@link UserFromExcel#getRole()} + *
  • {@link UserFromExcel#getUserId()} + *
  • {@link UserFromExcel#getUsername()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UserFromExcel actualUserFromExcel = new UserFromExcel(); + actualUserFromExcel.setEmail("jane.doe@example.org"); + actualUserFromExcel.setName("Name"); + actualUserFromExcel.setRole("Role"); + actualUserFromExcel.setUserId("42"); + actualUserFromExcel.setUsername("janedoe"); + String actualEmail = actualUserFromExcel.getEmail(); + String actualName = actualUserFromExcel.getName(); + String actualRole = actualUserFromExcel.getRole(); + String actualUserId = actualUserFromExcel.getUserId(); + + // Assert that nothing has changed + assertEquals("42", actualUserId); + assertEquals("Name", actualName); + assertEquals("Role", actualRole); + assertEquals("jane.doe@example.org", actualEmail); + assertEquals("janedoe", actualUserFromExcel.getUsername()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UserFromExcel#UserFromExcel(String, String, String, String, String)} + *
  • {@link UserFromExcel#setEmail(String)} + *
  • {@link UserFromExcel#setName(String)} + *
  • {@link UserFromExcel#setRole(String)} + *
  • {@link UserFromExcel#setUserId(String)} + *
  • {@link UserFromExcel#setUsername(String)} + *
  • {@link UserFromExcel#getEmail()} + *
  • {@link UserFromExcel#getName()} + *
  • {@link UserFromExcel#getRole()} + *
  • {@link UserFromExcel#getUserId()} + *
  • {@link UserFromExcel#getUsername()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + UserFromExcel actualUserFromExcel = new UserFromExcel("42", "Name", "jane.doe@example.org", "janedoe", "Role"); + actualUserFromExcel.setEmail("jane.doe@example.org"); + actualUserFromExcel.setName("Name"); + actualUserFromExcel.setRole("Role"); + actualUserFromExcel.setUserId("42"); + actualUserFromExcel.setUsername("janedoe"); + String actualEmail = actualUserFromExcel.getEmail(); + String actualName = actualUserFromExcel.getName(); + String actualRole = actualUserFromExcel.getRole(); + String actualUserId = actualUserFromExcel.getUserId(); + + // Assert that nothing has changed + assertEquals("42", actualUserId); + assertEquals("Name", actualName); + assertEquals("Role", actualRole); + assertEquals("jane.doe@example.org", actualEmail); + assertEquals("janedoe", actualUserFromExcel.getUsername()); + } +} diff --git a/src/test/java/com/example/codeE/model/common/ErrorValidationDiffblueTest.java b/src/test/java/com/example/codeE/model/common/ErrorValidationDiffblueTest.java new file mode 100644 index 00000000..4135579b --- /dev/null +++ b/src/test/java/com/example/codeE/model/common/ErrorValidationDiffblueTest.java @@ -0,0 +1,55 @@ +package com.example.codeE.model.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class ErrorValidationDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ErrorValidation#ErrorValidation()} + *
  • {@link ErrorValidation#setMessage(String)} + *
  • {@link ErrorValidation#setParam(String)} + *
  • {@link ErrorValidation#getMessage()} + *
  • {@link ErrorValidation#getParam()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ErrorValidation actualErrorValidation = new ErrorValidation(); + actualErrorValidation.setMessage("Not all who wander are lost"); + actualErrorValidation.setParam("Param"); + String actualMessage = actualErrorValidation.getMessage(); + + // Assert that nothing has changed + assertEquals("Not all who wander are lost", actualMessage); + assertEquals("Param", actualErrorValidation.getParam()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link ErrorValidation#ErrorValidation(String, String)} + *
  • {@link ErrorValidation#setMessage(String)} + *
  • {@link ErrorValidation#setParam(String)} + *
  • {@link ErrorValidation#getMessage()} + *
  • {@link ErrorValidation#getParam()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + ErrorValidation actualErrorValidation = new ErrorValidation("Param", "Not all who wander are lost"); + actualErrorValidation.setMessage("Not all who wander are lost"); + actualErrorValidation.setParam("Param"); + String actualMessage = actualErrorValidation.getMessage(); + + // Assert that nothing has changed + assertEquals("Not all who wander are lost", actualMessage); + assertEquals("Param", actualErrorValidation.getParam()); + } +} diff --git a/src/test/java/com/example/codeE/model/common/PaginationDiffblueTest.java b/src/test/java/com/example/codeE/model/common/PaginationDiffblueTest.java new file mode 100644 index 00000000..8dd5ac39 --- /dev/null +++ b/src/test/java/com/example/codeE/model/common/PaginationDiffblueTest.java @@ -0,0 +1,75 @@ +package com.example.codeE.model.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class PaginationDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link Pagination#Pagination()} + *
  • {@link Pagination#setPageNumber(int)} + *
  • {@link Pagination#setPageSize(int)} + *
  • {@link Pagination#setTotalPage(int)} + *
  • {@link Pagination#setTotalRecords(int)} + *
  • {@link Pagination#getPageNumber()} + *
  • {@link Pagination#getPageSize()} + *
  • {@link Pagination#getTotalPage()} + *
  • {@link Pagination#getTotalRecords()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + Pagination actualPagination = new Pagination(); + actualPagination.setPageNumber(10); + actualPagination.setPageSize(3); + actualPagination.setTotalPage(1); + actualPagination.setTotalRecords(1); + int actualPageNumber = actualPagination.getPageNumber(); + int actualPageSize = actualPagination.getPageSize(); + int actualTotalPage = actualPagination.getTotalPage(); + + // Assert that nothing has changed + assertEquals(1, actualTotalPage); + assertEquals(1, actualPagination.getTotalRecords()); + assertEquals(10, actualPageNumber); + assertEquals(3, actualPageSize); + } + + /** + * Methods under test: + * + *
    + *
  • {@link Pagination#Pagination(int, int, int, int)} + *
  • {@link Pagination#setPageNumber(int)} + *
  • {@link Pagination#setPageSize(int)} + *
  • {@link Pagination#setTotalPage(int)} + *
  • {@link Pagination#setTotalRecords(int)} + *
  • {@link Pagination#getPageNumber()} + *
  • {@link Pagination#getPageSize()} + *
  • {@link Pagination#getTotalPage()} + *
  • {@link Pagination#getTotalRecords()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + Pagination actualPagination = new Pagination(1, 3, 10, 1); + actualPagination.setPageNumber(10); + actualPagination.setPageSize(3); + actualPagination.setTotalPage(1); + actualPagination.setTotalRecords(1); + int actualPageNumber = actualPagination.getPageNumber(); + int actualPageSize = actualPagination.getPageSize(); + int actualTotalPage = actualPagination.getTotalPage(); + + // Assert that nothing has changed + assertEquals(1, actualTotalPage); + assertEquals(1, actualPagination.getTotalRecords()); + assertEquals(10, actualPageNumber); + assertEquals(3, actualPageSize); + } +} diff --git a/src/test/java/com/example/codeE/model/course/CourseTeacherDiffblueTest.java b/src/test/java/com/example/codeE/model/course/CourseTeacherDiffblueTest.java new file mode 100644 index 00000000..80c4ae0d --- /dev/null +++ b/src/test/java/com/example/codeE/model/course/CourseTeacherDiffblueTest.java @@ -0,0 +1,27 @@ +package com.example.codeE.model.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class CourseTeacherDiffblueTest { + /** + * Method under test: + * {@link CourseTeacher#CourseTeacher(String, String, Boolean)} + */ + @Test + void testNewCourseTeacher() { + // Arrange and Act + CourseTeacher actualCourseTeacher = new CourseTeacher("42", "42", true); + + // Assert + assertEquals("42", actualCourseTeacher.getCourseId()); + assertEquals("42", actualCourseTeacher.getTeacherId()); + assertNull(actualCourseTeacher.getCourse()); + assertNull(actualCourseTeacher.getTeacher()); + assertNull(actualCourseTeacher.getCreatedDate()); + assertTrue(actualCourseTeacher.getIsMain()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/CodeExerciseDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/CodeExerciseDiffblueTest.java new file mode 100644 index 00000000..f2ae0c3f --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/CodeExerciseDiffblueTest.java @@ -0,0 +1,145 @@ +package com.example.codeE.model.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.example.codeE.model.exercise.common.problem.TestCase; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CodeExerciseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CodeExercise#CodeExercise()} + *
  • {@link CodeExercise#setAllowedLanguageIds(List)} + *
  • {@link CodeExercise#setDescription(String)} + *
  • {@link CodeExercise#setMemoryLimit(Integer)} + *
  • {@link CodeExercise#setPartial(boolean)} + *
  • {@link CodeExercise#setPoints(Double)} + *
  • {@link CodeExercise#setShortCircuit(Boolean)} + *
  • {@link CodeExercise#setTemplate(String)} + *
  • {@link CodeExercise#setTestCases(List)} + *
  • {@link CodeExercise#setTimeLimit(Double)} + *
  • {@link CodeExercise#getAllowedLanguageIds()} + *
  • {@link CodeExercise#getDescription()} + *
  • {@link CodeExercise#getMemoryLimit()} + *
  • {@link CodeExercise#getPoints()} + *
  • {@link CodeExercise#getShortCircuit()} + *
  • {@link CodeExercise#getTemplate()} + *
  • {@link CodeExercise#getTestCases()} + *
  • {@link CodeExercise#getTimeLimit()} + *
  • {@link CodeExercise#isPartial()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CodeExercise actualCodeExercise = new CodeExercise(); + ArrayList allowedLanguageIds = new ArrayList<>(); + actualCodeExercise.setAllowedLanguageIds(allowedLanguageIds); + actualCodeExercise.setDescription("The characteristics of someone or something"); + actualCodeExercise.setMemoryLimit(1); + actualCodeExercise.setPartial(true); + actualCodeExercise.setPoints(10.0d); + actualCodeExercise.setShortCircuit(true); + actualCodeExercise.setTemplate("Template"); + ArrayList testCases = new ArrayList<>(); + actualCodeExercise.setTestCases(testCases); + actualCodeExercise.setTimeLimit(10.0d); + List actualAllowedLanguageIds = actualCodeExercise.getAllowedLanguageIds(); + String actualDescription = actualCodeExercise.getDescription(); + Integer actualMemoryLimit = actualCodeExercise.getMemoryLimit(); + Double actualPoints = actualCodeExercise.getPoints(); + Boolean actualShortCircuit = actualCodeExercise.getShortCircuit(); + String actualTemplate = actualCodeExercise.getTemplate(); + List actualTestCases = actualCodeExercise.getTestCases(); + Double actualTimeLimit = actualCodeExercise.getTimeLimit(); + boolean actualIsPartialResult = actualCodeExercise.isPartial(); + + // Assert that nothing has changed + assertEquals("Template", actualTemplate); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals(1, actualMemoryLimit.intValue()); + assertEquals(10.0d, actualPoints.doubleValue()); + assertEquals(10.0d, actualTimeLimit.doubleValue()); + assertTrue(actualShortCircuit); + assertTrue(actualIsPartialResult); + assertSame(allowedLanguageIds, actualAllowedLanguageIds); + assertSame(testCases, actualTestCases); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CodeExercise#CodeExercise(String, Double, Integer, Boolean, boolean, List, Double, String, List)} + *
  • {@link CodeExercise#setAllowedLanguageIds(List)} + *
  • {@link CodeExercise#setDescription(String)} + *
  • {@link CodeExercise#setMemoryLimit(Integer)} + *
  • {@link CodeExercise#setPartial(boolean)} + *
  • {@link CodeExercise#setPoints(Double)} + *
  • {@link CodeExercise#setShortCircuit(Boolean)} + *
  • {@link CodeExercise#setTemplate(String)} + *
  • {@link CodeExercise#setTestCases(List)} + *
  • {@link CodeExercise#setTimeLimit(Double)} + *
  • {@link CodeExercise#getAllowedLanguageIds()} + *
  • {@link CodeExercise#getDescription()} + *
  • {@link CodeExercise#getMemoryLimit()} + *
  • {@link CodeExercise#getPoints()} + *
  • {@link CodeExercise#getShortCircuit()} + *
  • {@link CodeExercise#getTemplate()} + *
  • {@link CodeExercise#getTestCases()} + *
  • {@link CodeExercise#getTimeLimit()} + *
  • {@link CodeExercise#isPartial()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList allowedLanguageIds = new ArrayList<>(); + + // Act + CodeExercise actualCodeExercise = new CodeExercise("The characteristics of someone or something", 10.0d, 1, true, + true, allowedLanguageIds, 10.0d, "Template", new ArrayList<>()); + ArrayList allowedLanguageIds2 = new ArrayList<>(); + actualCodeExercise.setAllowedLanguageIds(allowedLanguageIds2); + actualCodeExercise.setDescription("The characteristics of someone or something"); + actualCodeExercise.setMemoryLimit(1); + actualCodeExercise.setPartial(true); + actualCodeExercise.setPoints(10.0d); + actualCodeExercise.setShortCircuit(true); + actualCodeExercise.setTemplate("Template"); + ArrayList testCases = new ArrayList<>(); + actualCodeExercise.setTestCases(testCases); + actualCodeExercise.setTimeLimit(10.0d); + List actualAllowedLanguageIds = actualCodeExercise.getAllowedLanguageIds(); + String actualDescription = actualCodeExercise.getDescription(); + Integer actualMemoryLimit = actualCodeExercise.getMemoryLimit(); + Double actualPoints = actualCodeExercise.getPoints(); + Boolean actualShortCircuit = actualCodeExercise.getShortCircuit(); + String actualTemplate = actualCodeExercise.getTemplate(); + List actualTestCases = actualCodeExercise.getTestCases(); + Double actualTimeLimit = actualCodeExercise.getTimeLimit(); + boolean actualIsPartialResult = actualCodeExercise.isPartial(); + + // Assert that nothing has changed + assertEquals("Template", actualTemplate); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals(1, actualMemoryLimit.intValue()); + assertEquals(10.0d, actualPoints.doubleValue()); + assertEquals(10.0d, actualTimeLimit.doubleValue()); + assertTrue(actualShortCircuit); + assertTrue(actualIsPartialResult); + assertEquals(allowedLanguageIds, actualAllowedLanguageIds); + assertEquals(allowedLanguageIds, actualTestCases); + assertSame(allowedLanguageIds2, actualAllowedLanguageIds); + assertSame(testCases, actualTestCases); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/DataTypeDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/DataTypeDiffblueTest.java new file mode 100644 index 00000000..066159bb --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/DataTypeDiffblueTest.java @@ -0,0 +1,32 @@ +package com.example.codeE.model.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class DataTypeDiffblueTest { + /** + * Method under test: {@link DataType#DataType(String, List)} + */ + @Test + void testNewDataType() { + // Arrange + ArrayList dataTypes = new ArrayList<>(); + + // Act + DataType actualDataType = new DataType("Name", dataTypes); + + // Assert + assertEquals("Name", actualDataType.getName()); + assertNull(actualDataType.getDatatypeId()); + List dataTypes2 = actualDataType.getDataTypes(); + assertTrue(dataTypes2.isEmpty()); + assertSame(dataTypes, dataTypes2); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/ExerciseDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/ExerciseDiffblueTest.java new file mode 100644 index 00000000..f005bc0c --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/ExerciseDiffblueTest.java @@ -0,0 +1,135 @@ +package com.example.codeE.model.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class ExerciseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • + * {@link Exercise#Exercise(String, String, String, String, Date, Date, int, int, String, String, boolean, List)} + *
  • {@link Exercise#onCreate()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + ArrayList publicGroupIds = new ArrayList<>(); + + // Act + Exercise actualExercise = new Exercise("42", "42", "Exercise Name", "Key", startTime, endTime, 1, 1, "Type", + "Exercise Description", true, publicGroupIds); + actualExercise.onCreate(); + + // Assert + assertEquals("42", actualExercise.getExerciseId()); + assertEquals("42", actualExercise.getTopicId()); + assertEquals("Exercise Description", actualExercise.getExerciseDescription()); + assertEquals("Exercise Name", actualExercise.getExerciseName()); + assertEquals("Key", actualExercise.getKey()); + assertEquals("Type", actualExercise.getType()); + assertNull(actualExercise.getCreatedDate()); + assertNull(actualExercise.getUpdatedDate()); + assertEquals(1, actualExercise.getDurationTime()); + assertEquals(1, actualExercise.getReAttempt()); + assertTrue(actualExercise.isShowAll()); + List publicGroupIds2 = actualExercise.getPublicGroupIds(); + assertTrue(publicGroupIds2.isEmpty()); + assertSame(publicGroupIds, publicGroupIds2); + assertSame(endTime, actualExercise.getEndTime()); + assertSame(startTime, actualExercise.getStartTime()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link Exercise#Exercise(String, String, String, Date, Date, int, int, String, String, boolean, List)} + *
  • {@link Exercise#onCreate()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + ArrayList publicGroupIds = new ArrayList<>(); + + // Act + Exercise actualExercise = new Exercise("42", "Exercise Name", "Key", startTime, endTime, 1, 1, "Type", + "Exercise Description", true, publicGroupIds); + actualExercise.onCreate(); + + // Assert + assertEquals("42", actualExercise.getTopicId()); + assertEquals("Exercise Description", actualExercise.getExerciseDescription()); + assertEquals("Exercise Name", actualExercise.getExerciseName()); + assertEquals("Key", actualExercise.getKey()); + assertEquals("Type", actualExercise.getType()); + assertNull(actualExercise.getCreatedDate()); + assertNull(actualExercise.getExerciseId()); + assertNull(actualExercise.getUpdatedDate()); + assertEquals(1, actualExercise.getDurationTime()); + assertEquals(1, actualExercise.getReAttempt()); + assertTrue(actualExercise.isShowAll()); + List publicGroupIds2 = actualExercise.getPublicGroupIds(); + assertTrue(publicGroupIds2.isEmpty()); + assertSame(publicGroupIds, publicGroupIds2); + assertSame(endTime, actualExercise.getEndTime()); + assertSame(startTime, actualExercise.getStartTime()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link Exercise#Exercise(String, String, String, Date, Date, String, List)} + *
  • {@link Exercise#onCreate()} + *
+ */ + @Test + void testGettersAndSetters3() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + ArrayList publicGroupIds = new ArrayList<>(); + + // Act + Exercise actualExercise = new Exercise("42", "Exercise Name", "Key", startTime, endTime, "Type", publicGroupIds); + actualExercise.onCreate(); + + // Assert + assertEquals("42", actualExercise.getTopicId()); + assertEquals("Exercise Name", actualExercise.getExerciseName()); + assertEquals("Key", actualExercise.getKey()); + assertEquals("Type", actualExercise.getType()); + assertNull(actualExercise.getCreatedDate()); + assertNull(actualExercise.getExerciseDescription()); + assertNull(actualExercise.getExerciseId()); + assertNull(actualExercise.getUpdatedDate()); + assertEquals(0, actualExercise.getDurationTime()); + assertEquals(0, actualExercise.getReAttempt()); + assertTrue(actualExercise.isShowAll()); + List publicGroupIds2 = actualExercise.getPublicGroupIds(); + assertTrue(publicGroupIds2.isEmpty()); + assertSame(publicGroupIds, publicGroupIds2); + assertSame(endTime, actualExercise.getEndTime()); + assertSame(startTime, actualExercise.getStartTime()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/SubmissionDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/SubmissionDiffblueTest.java new file mode 100644 index 00000000..f6aa66c3 --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/SubmissionDiffblueTest.java @@ -0,0 +1,28 @@ +package com.example.codeE.model.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class SubmissionDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link Submission#Submission(String, String)} + *
  • {@link Submission#toString()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange, Act and Assert + assertEquals("Submission{submissionId='42', studentId='null', exerciseId='42', score=null, dateSubmit=null," + + " dateGrade=null, reviewable=false}", (new Submission("42", "42")).toString()); + assertEquals( + "Submission{submissionId='null', studentId='42', exerciseId='42', score=10.0, dateSubmit=null," + + " dateGrade=null, reviewable=true}", + (new Submission("42", "42", 10.0f, true, "Teacher Comment")).toString()); + assertEquals("Submission{submissionId='null', studentId='42', exerciseId='42', score=null, dateSubmit=null," + + " dateGrade=null, reviewable=true}", (new Submission("42", "42", true, "Teacher Comment")).toString()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/LanguageDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/LanguageDiffblueTest.java new file mode 100644 index 00000000..649fd6bd --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/LanguageDiffblueTest.java @@ -0,0 +1,117 @@ +package com.example.codeE.model.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class LanguageDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link Language#Language()} + *
  • {@link Language#setCommonName(String)} + *
  • {@link Language#setDescription(String)} + *
  • {@link Language#setExtension(String)} + *
  • {@link Language#setKey(String)} + *
  • {@link Language#setLanguageId(String)} + *
  • {@link Language#setName(String)} + *
  • {@link Language#setShortName(String)} + *
  • {@link Language#setTemplate(String)} + *
  • {@link Language#getCommonName()} + *
  • {@link Language#getDescription()} + *
  • {@link Language#getExtension()} + *
  • {@link Language#getKey()} + *
  • {@link Language#getLanguageId()} + *
  • {@link Language#getName()} + *
  • {@link Language#getShortName()} + *
  • {@link Language#getTemplate()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + Language actualLanguage = new Language(); + actualLanguage.setCommonName("Common Name"); + actualLanguage.setDescription("The characteristics of someone or something"); + actualLanguage.setExtension("Extension"); + actualLanguage.setKey("Key"); + actualLanguage.setLanguageId("en"); + actualLanguage.setName("Name"); + actualLanguage.setShortName("Short Name"); + actualLanguage.setTemplate("Template"); + String actualCommonName = actualLanguage.getCommonName(); + String actualDescription = actualLanguage.getDescription(); + String actualExtension = actualLanguage.getExtension(); + String actualKey = actualLanguage.getKey(); + String actualLanguageId = actualLanguage.getLanguageId(); + String actualName = actualLanguage.getName(); + String actualShortName = actualLanguage.getShortName(); + + // Assert that nothing has changed + assertEquals("Common Name", actualCommonName); + assertEquals("Extension", actualExtension); + assertEquals("Key", actualKey); + assertEquals("Name", actualName); + assertEquals("Short Name", actualShortName); + assertEquals("Template", actualLanguage.getTemplate()); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("en", actualLanguageId); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link Language#Language(String, String, String, String, String, String, String, String)} + *
  • {@link Language#setCommonName(String)} + *
  • {@link Language#setDescription(String)} + *
  • {@link Language#setExtension(String)} + *
  • {@link Language#setKey(String)} + *
  • {@link Language#setLanguageId(String)} + *
  • {@link Language#setName(String)} + *
  • {@link Language#setShortName(String)} + *
  • {@link Language#setTemplate(String)} + *
  • {@link Language#getCommonName()} + *
  • {@link Language#getDescription()} + *
  • {@link Language#getExtension()} + *
  • {@link Language#getKey()} + *
  • {@link Language#getLanguageId()} + *
  • {@link Language#getName()} + *
  • {@link Language#getShortName()} + *
  • {@link Language#getTemplate()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + Language actualLanguage = new Language("en", "Key", "Name", "Short Name", "Common Name", "Template", + "The characteristics of someone or something", "Extension"); + actualLanguage.setCommonName("Common Name"); + actualLanguage.setDescription("The characteristics of someone or something"); + actualLanguage.setExtension("Extension"); + actualLanguage.setKey("Key"); + actualLanguage.setLanguageId("en"); + actualLanguage.setName("Name"); + actualLanguage.setShortName("Short Name"); + actualLanguage.setTemplate("Template"); + String actualCommonName = actualLanguage.getCommonName(); + String actualDescription = actualLanguage.getDescription(); + String actualExtension = actualLanguage.getExtension(); + String actualKey = actualLanguage.getKey(); + String actualLanguageId = actualLanguage.getLanguageId(); + String actualName = actualLanguage.getName(); + String actualShortName = actualLanguage.getShortName(); + + // Assert that nothing has changed + assertEquals("Common Name", actualCommonName); + assertEquals("Extension", actualExtension); + assertEquals("Key", actualKey); + assertEquals("Name", actualName); + assertEquals("Short Name", actualShortName); + assertEquals("Template", actualLanguage.getTemplate()); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("en", actualLanguageId); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/LanguageLimitDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/LanguageLimitDiffblueTest.java new file mode 100644 index 00000000..de15c041 --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/LanguageLimitDiffblueTest.java @@ -0,0 +1,88 @@ +package com.example.codeE.model.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class LanguageLimitDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link LanguageLimit#LanguageLimit()} + *
  • {@link LanguageLimit#setLanguageId(String)} + *
  • {@link LanguageLimit#setLanguageLimitId(String)} + *
  • {@link LanguageLimit#setMemoryLimit(Integer)} + *
  • {@link LanguageLimit#setProblemId(String)} + *
  • {@link LanguageLimit#setTimeLimit(Double)} + *
  • {@link LanguageLimit#getLanguageId()} + *
  • {@link LanguageLimit#getLanguageLimitId()} + *
  • {@link LanguageLimit#getMemoryLimit()} + *
  • {@link LanguageLimit#getProblemId()} + *
  • {@link LanguageLimit#getTimeLimit()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + LanguageLimit actualLanguageLimit = new LanguageLimit(); + actualLanguageLimit.setLanguageId("en"); + actualLanguageLimit.setLanguageLimitId("en"); + actualLanguageLimit.setMemoryLimit(1); + actualLanguageLimit.setProblemId("42"); + actualLanguageLimit.setTimeLimit(10.0d); + String actualLanguageId = actualLanguageLimit.getLanguageId(); + String actualLanguageLimitId = actualLanguageLimit.getLanguageLimitId(); + Integer actualMemoryLimit = actualLanguageLimit.getMemoryLimit(); + String actualProblemId = actualLanguageLimit.getProblemId(); + Double actualTimeLimit = actualLanguageLimit.getTimeLimit(); + + // Assert that nothing has changed + assertEquals("42", actualProblemId); + assertEquals("en", actualLanguageId); + assertEquals("en", actualLanguageLimitId); + assertEquals(1, actualMemoryLimit.intValue()); + assertEquals(10.0d, actualTimeLimit.doubleValue()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link LanguageLimit#LanguageLimit(String, String, String, Double, Integer)} + *
  • {@link LanguageLimit#setLanguageId(String)} + *
  • {@link LanguageLimit#setLanguageLimitId(String)} + *
  • {@link LanguageLimit#setMemoryLimit(Integer)} + *
  • {@link LanguageLimit#setProblemId(String)} + *
  • {@link LanguageLimit#setTimeLimit(Double)} + *
  • {@link LanguageLimit#getLanguageId()} + *
  • {@link LanguageLimit#getLanguageLimitId()} + *
  • {@link LanguageLimit#getMemoryLimit()} + *
  • {@link LanguageLimit#getProblemId()} + *
  • {@link LanguageLimit#getTimeLimit()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + LanguageLimit actualLanguageLimit = new LanguageLimit("en", "42", "en", 10.0d, 1); + actualLanguageLimit.setLanguageId("en"); + actualLanguageLimit.setLanguageLimitId("en"); + actualLanguageLimit.setMemoryLimit(1); + actualLanguageLimit.setProblemId("42"); + actualLanguageLimit.setTimeLimit(10.0d); + String actualLanguageId = actualLanguageLimit.getLanguageId(); + String actualLanguageLimitId = actualLanguageLimit.getLanguageLimitId(); + Integer actualMemoryLimit = actualLanguageLimit.getMemoryLimit(); + String actualProblemId = actualLanguageLimit.getProblemId(); + Double actualTimeLimit = actualLanguageLimit.getTimeLimit(); + + // Assert that nothing has changed + assertEquals("42", actualProblemId); + assertEquals("en", actualLanguageId); + assertEquals("en", actualLanguageLimitId); + assertEquals(1, actualMemoryLimit.intValue()); + assertEquals(10.0d, actualTimeLimit.doubleValue()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/QuizAnswersDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/QuizAnswersDiffblueTest.java new file mode 100644 index 00000000..3c4ec051 --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/QuizAnswersDiffblueTest.java @@ -0,0 +1,25 @@ +package com.example.codeE.model.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class QuizAnswersDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link QuizAnswers#QuizAnswers(String, List)} + *
  • {@link QuizAnswers#toString()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange, Act and Assert + assertEquals("QuizAnswers{quizAnswerId='null', questionId='42', answers=[]}", + (new QuizAnswers("42", new ArrayList<>())).toString()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/QuizQuestionDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/QuizQuestionDiffblueTest.java new file mode 100644 index 00000000..a8fc9acb --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/QuizQuestionDiffblueTest.java @@ -0,0 +1,40 @@ +package com.example.codeE.model.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class QuizQuestionDiffblueTest { + /** + * Method under test: + * {@link QuizQuestion#QuizQuestion(String, String, List, List)} + */ + @Test + void testNewQuizQuestion() { + // Arrange + ArrayList choices = new ArrayList<>(); + ArrayList answers = new ArrayList<>(); + + // Act + QuizQuestion actualQuizQuestion = new QuizQuestion("Dr", "The characteristics of someone or something", choices, + answers); + + // Assert + assertEquals("Dr", actualQuizQuestion.getTitle()); + assertEquals("The characteristics of someone or something", actualQuizQuestion.getDescription()); + assertNull(actualQuizQuestion.getQuestionId()); + List answers2 = actualQuizQuestion.getAnswers(); + assertTrue(answers2.isEmpty()); + List choices2 = actualQuizQuestion.getChoices(); + assertTrue(choices2.isEmpty()); + assertEquals(choices, answers2); + assertSame(answers, answers2); + assertSame(choices, choices2); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/RuntimeVersionDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/RuntimeVersionDiffblueTest.java new file mode 100644 index 00000000..10830252 --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/RuntimeVersionDiffblueTest.java @@ -0,0 +1,26 @@ +package com.example.codeE.model.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; + +class RuntimeVersionDiffblueTest { + /** + * Method under test: + * {@link RuntimeVersion#RuntimeVersion(String, String, String, String, int)} + */ + @Test + void testNewRuntimeVersion() { + // Arrange and Act + RuntimeVersion actualRuntimeVersion = new RuntimeVersion("en", "42", "Name", "1.0.2", 1); + + // Assert + assertEquals("1.0.2", actualRuntimeVersion.getVersion()); + assertEquals("42", actualRuntimeVersion.getJudgeId()); + assertEquals("Name", actualRuntimeVersion.getName()); + assertEquals("en", actualRuntimeVersion.getLanguageId()); + assertNull(actualRuntimeVersion.getRuntimeVersionId()); + assertEquals(1, actualRuntimeVersion.getPriority()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/SubmissionTestCaseDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/SubmissionTestCaseDiffblueTest.java new file mode 100644 index 00000000..2c6faa06 --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/SubmissionTestCaseDiffblueTest.java @@ -0,0 +1,149 @@ +package com.example.codeE.model.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class SubmissionTestCaseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link SubmissionTestCase#SubmissionTestCase()} + *
  • {@link SubmissionTestCase#setExtendedFeedback(String)} + *
  • {@link SubmissionTestCase#setFeedback(String)} + *
  • {@link SubmissionTestCase#setId(String)} + *
  • {@link SubmissionTestCase#setMemory(Double)} + *
  • {@link SubmissionTestCase#setOutput(String)} + *
  • {@link SubmissionTestCase#setPoints(Double)} + *
  • {@link SubmissionTestCase#setStatus(String)} + *
  • {@link SubmissionTestCase#setSubmissionId(String)} + *
  • {@link SubmissionTestCase#setTestCaseId(Integer)} + *
  • {@link SubmissionTestCase#setTime(Double)} + *
  • {@link SubmissionTestCase#setTotal(Double)} + *
  • {@link SubmissionTestCase#getExtendedFeedback()} + *
  • {@link SubmissionTestCase#getFeedback()} + *
  • {@link SubmissionTestCase#getId()} + *
  • {@link SubmissionTestCase#getMemory()} + *
  • {@link SubmissionTestCase#getOutput()} + *
  • {@link SubmissionTestCase#getPoints()} + *
  • {@link SubmissionTestCase#getStatus()} + *
  • {@link SubmissionTestCase#getSubmissionId()} + *
  • {@link SubmissionTestCase#getTestCaseId()} + *
  • {@link SubmissionTestCase#getTime()} + *
  • {@link SubmissionTestCase#getTotal()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + SubmissionTestCase actualSubmissionTestCase = new SubmissionTestCase(); + actualSubmissionTestCase.setExtendedFeedback("Extended Feedback"); + actualSubmissionTestCase.setFeedback("Feedback"); + actualSubmissionTestCase.setId("42"); + actualSubmissionTestCase.setMemory(10.0d); + actualSubmissionTestCase.setOutput("Output"); + actualSubmissionTestCase.setPoints(10.0d); + actualSubmissionTestCase.setStatus("Status"); + actualSubmissionTestCase.setSubmissionId("42"); + actualSubmissionTestCase.setTestCaseId(1); + actualSubmissionTestCase.setTime(10.0d); + actualSubmissionTestCase.setTotal(10.0d); + String actualExtendedFeedback = actualSubmissionTestCase.getExtendedFeedback(); + String actualFeedback = actualSubmissionTestCase.getFeedback(); + String actualId = actualSubmissionTestCase.getId(); + Double actualMemory = actualSubmissionTestCase.getMemory(); + String actualOutput = actualSubmissionTestCase.getOutput(); + Double actualPoints = actualSubmissionTestCase.getPoints(); + String actualStatus = actualSubmissionTestCase.getStatus(); + String actualSubmissionId = actualSubmissionTestCase.getSubmissionId(); + Integer actualTestCaseId = actualSubmissionTestCase.getTestCaseId(); + Double actualTime = actualSubmissionTestCase.getTime(); + Double actualTotal = actualSubmissionTestCase.getTotal(); + + // Assert that nothing has changed + assertEquals("42", actualId); + assertEquals("42", actualSubmissionId); + assertEquals("Extended Feedback", actualExtendedFeedback); + assertEquals("Feedback", actualFeedback); + assertEquals("Output", actualOutput); + assertEquals("Status", actualStatus); + assertEquals(1, actualTestCaseId.intValue()); + assertEquals(10.0d, actualMemory.doubleValue()); + assertEquals(10.0d, actualPoints.doubleValue()); + assertEquals(10.0d, actualTime.doubleValue()); + assertEquals(10.0d, actualTotal.doubleValue()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link SubmissionTestCase#SubmissionTestCase(String, String, Integer, String, Double, Double, Double, Double, String, String, String)} + *
  • {@link SubmissionTestCase#setExtendedFeedback(String)} + *
  • {@link SubmissionTestCase#setFeedback(String)} + *
  • {@link SubmissionTestCase#setId(String)} + *
  • {@link SubmissionTestCase#setMemory(Double)} + *
  • {@link SubmissionTestCase#setOutput(String)} + *
  • {@link SubmissionTestCase#setPoints(Double)} + *
  • {@link SubmissionTestCase#setStatus(String)} + *
  • {@link SubmissionTestCase#setSubmissionId(String)} + *
  • {@link SubmissionTestCase#setTestCaseId(Integer)} + *
  • {@link SubmissionTestCase#setTime(Double)} + *
  • {@link SubmissionTestCase#setTotal(Double)} + *
  • {@link SubmissionTestCase#getExtendedFeedback()} + *
  • {@link SubmissionTestCase#getFeedback()} + *
  • {@link SubmissionTestCase#getId()} + *
  • {@link SubmissionTestCase#getMemory()} + *
  • {@link SubmissionTestCase#getOutput()} + *
  • {@link SubmissionTestCase#getPoints()} + *
  • {@link SubmissionTestCase#getStatus()} + *
  • {@link SubmissionTestCase#getSubmissionId()} + *
  • {@link SubmissionTestCase#getTestCaseId()} + *
  • {@link SubmissionTestCase#getTime()} + *
  • {@link SubmissionTestCase#getTotal()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + SubmissionTestCase actualSubmissionTestCase = new SubmissionTestCase("42", "42", 1, "Status", 10.0d, 10.0d, 10.0d, + 10.0d, "Feedback", "Extended Feedback", "Output"); + actualSubmissionTestCase.setExtendedFeedback("Extended Feedback"); + actualSubmissionTestCase.setFeedback("Feedback"); + actualSubmissionTestCase.setId("42"); + actualSubmissionTestCase.setMemory(10.0d); + actualSubmissionTestCase.setOutput("Output"); + actualSubmissionTestCase.setPoints(10.0d); + actualSubmissionTestCase.setStatus("Status"); + actualSubmissionTestCase.setSubmissionId("42"); + actualSubmissionTestCase.setTestCaseId(1); + actualSubmissionTestCase.setTime(10.0d); + actualSubmissionTestCase.setTotal(10.0d); + String actualExtendedFeedback = actualSubmissionTestCase.getExtendedFeedback(); + String actualFeedback = actualSubmissionTestCase.getFeedback(); + String actualId = actualSubmissionTestCase.getId(); + Double actualMemory = actualSubmissionTestCase.getMemory(); + String actualOutput = actualSubmissionTestCase.getOutput(); + Double actualPoints = actualSubmissionTestCase.getPoints(); + String actualStatus = actualSubmissionTestCase.getStatus(); + String actualSubmissionId = actualSubmissionTestCase.getSubmissionId(); + Integer actualTestCaseId = actualSubmissionTestCase.getTestCaseId(); + Double actualTime = actualSubmissionTestCase.getTime(); + Double actualTotal = actualSubmissionTestCase.getTotal(); + + // Assert that nothing has changed + assertEquals("42", actualId); + assertEquals("42", actualSubmissionId); + assertEquals("Extended Feedback", actualExtendedFeedback); + assertEquals("Feedback", actualFeedback); + assertEquals("Output", actualOutput); + assertEquals("Status", actualStatus); + assertEquals(1, actualTestCaseId.intValue()); + assertEquals(10.0d, actualMemory.doubleValue()); + assertEquals(10.0d, actualPoints.doubleValue()); + assertEquals(10.0d, actualTime.doubleValue()); + assertEquals(10.0d, actualTotal.doubleValue()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseDataDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseDataDiffblueTest.java new file mode 100644 index 00000000..ba8a7c2c --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseDataDiffblueTest.java @@ -0,0 +1,148 @@ +package com.example.codeE.model.exercise.common.problem; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class ExerciseDataDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ExerciseData#ExerciseData()} + *
  • {@link ExerciseData#setChecker(String)} + *
  • {@link ExerciseData#setCheckerArgs(String)} + *
  • {@link ExerciseData#setFeedback(String)} + *
  • {@link ExerciseData#setGenerator(String)} + *
  • {@link ExerciseData#setId(String)} + *
  • {@link ExerciseData#setNobigmath(boolean)} + *
  • {@link ExerciseData#setOutputLimit(int)} + *
  • {@link ExerciseData#setOutputPrefix(int)} + *
  • {@link ExerciseData#setProblemId(String)} + *
  • {@link ExerciseData#setUnicode(boolean)} + *
  • {@link ExerciseData#setZipfile(String)} + *
  • {@link ExerciseData#getChecker()} + *
  • {@link ExerciseData#getCheckerArgs()} + *
  • {@link ExerciseData#getFeedback()} + *
  • {@link ExerciseData#getGenerator()} + *
  • {@link ExerciseData#getId()} + *
  • {@link ExerciseData#getOutputLimit()} + *
  • {@link ExerciseData#getOutputPrefix()} + *
  • {@link ExerciseData#getProblemId()} + *
  • {@link ExerciseData#getZipfile()} + *
  • {@link ExerciseData#isNobigmath()} + *
  • {@link ExerciseData#isUnicode()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ExerciseData actualExerciseData = new ExerciseData(); + actualExerciseData.setChecker("Checker"); + actualExerciseData.setCheckerArgs("Checker Args"); + actualExerciseData.setFeedback("Feedback"); + actualExerciseData.setGenerator("Generator"); + actualExerciseData.setId("42"); + actualExerciseData.setNobigmath(true); + actualExerciseData.setOutputLimit(1); + actualExerciseData.setOutputPrefix(1); + actualExerciseData.setProblemId("42"); + actualExerciseData.setUnicode(true); + actualExerciseData.setZipfile("21654"); + String actualChecker = actualExerciseData.getChecker(); + String actualCheckerArgs = actualExerciseData.getCheckerArgs(); + String actualFeedback = actualExerciseData.getFeedback(); + String actualGenerator = actualExerciseData.getGenerator(); + String actualId = actualExerciseData.getId(); + int actualOutputLimit = actualExerciseData.getOutputLimit(); + int actualOutputPrefix = actualExerciseData.getOutputPrefix(); + String actualProblemId = actualExerciseData.getProblemId(); + String actualZipfile = actualExerciseData.getZipfile(); + boolean actualIsNobigmathResult = actualExerciseData.isNobigmath(); + + // Assert that nothing has changed + assertEquals("21654", actualZipfile); + assertEquals("42", actualId); + assertEquals("42", actualProblemId); + assertEquals("Checker Args", actualCheckerArgs); + assertEquals("Checker", actualChecker); + assertEquals("Feedback", actualFeedback); + assertEquals("Generator", actualGenerator); + assertEquals(1, actualOutputLimit); + assertEquals(1, actualOutputPrefix); + assertTrue(actualIsNobigmathResult); + assertTrue(actualExerciseData.isUnicode()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link ExerciseData#ExerciseData(String, String, String, String, int, int, String, String, boolean, boolean, String)} + *
  • {@link ExerciseData#setChecker(String)} + *
  • {@link ExerciseData#setCheckerArgs(String)} + *
  • {@link ExerciseData#setFeedback(String)} + *
  • {@link ExerciseData#setGenerator(String)} + *
  • {@link ExerciseData#setId(String)} + *
  • {@link ExerciseData#setNobigmath(boolean)} + *
  • {@link ExerciseData#setOutputLimit(int)} + *
  • {@link ExerciseData#setOutputPrefix(int)} + *
  • {@link ExerciseData#setProblemId(String)} + *
  • {@link ExerciseData#setUnicode(boolean)} + *
  • {@link ExerciseData#setZipfile(String)} + *
  • {@link ExerciseData#getChecker()} + *
  • {@link ExerciseData#getCheckerArgs()} + *
  • {@link ExerciseData#getFeedback()} + *
  • {@link ExerciseData#getGenerator()} + *
  • {@link ExerciseData#getId()} + *
  • {@link ExerciseData#getOutputLimit()} + *
  • {@link ExerciseData#getOutputPrefix()} + *
  • {@link ExerciseData#getProblemId()} + *
  • {@link ExerciseData#getZipfile()} + *
  • {@link ExerciseData#isNobigmath()} + *
  • {@link ExerciseData#isUnicode()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + ExerciseData actualExerciseData = new ExerciseData("42", "42", "21654", "Generator", 1, 1, "Feedback", "Checker", + true, true, "Checker Args"); + actualExerciseData.setChecker("Checker"); + actualExerciseData.setCheckerArgs("Checker Args"); + actualExerciseData.setFeedback("Feedback"); + actualExerciseData.setGenerator("Generator"); + actualExerciseData.setId("42"); + actualExerciseData.setNobigmath(true); + actualExerciseData.setOutputLimit(1); + actualExerciseData.setOutputPrefix(1); + actualExerciseData.setProblemId("42"); + actualExerciseData.setUnicode(true); + actualExerciseData.setZipfile("21654"); + String actualChecker = actualExerciseData.getChecker(); + String actualCheckerArgs = actualExerciseData.getCheckerArgs(); + String actualFeedback = actualExerciseData.getFeedback(); + String actualGenerator = actualExerciseData.getGenerator(); + String actualId = actualExerciseData.getId(); + int actualOutputLimit = actualExerciseData.getOutputLimit(); + int actualOutputPrefix = actualExerciseData.getOutputPrefix(); + String actualProblemId = actualExerciseData.getProblemId(); + String actualZipfile = actualExerciseData.getZipfile(); + boolean actualIsNobigmathResult = actualExerciseData.isNobigmath(); + + // Assert that nothing has changed + assertEquals("21654", actualZipfile); + assertEquals("42", actualId); + assertEquals("42", actualProblemId); + assertEquals("Checker Args", actualCheckerArgs); + assertEquals("Checker", actualChecker); + assertEquals("Feedback", actualFeedback); + assertEquals("Generator", actualGenerator); + assertEquals(1, actualOutputLimit); + assertEquals(1, actualOutputPrefix); + assertTrue(actualIsNobigmathResult); + assertTrue(actualExerciseData.isUnicode()); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseTestCaseDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseTestCaseDiffblueTest.java new file mode 100644 index 00000000..86a17dce --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/problem/ExerciseTestCaseDiffblueTest.java @@ -0,0 +1,168 @@ +package com.example.codeE.model.exercise.common.problem; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class ExerciseTestCaseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ExerciseTestCase#ExerciseTestCase()} + *
  • {@link ExerciseTestCase#setChecker(String)} + *
  • {@link ExerciseTestCase#setCheckerArgs(String)} + *
  • {@link ExerciseTestCase#setDatasetId(String)} + *
  • {@link ExerciseTestCase#setGeneratorArgs(String)} + *
  • {@link ExerciseTestCase#setId(String)} + *
  • {@link ExerciseTestCase#setInputFile(String)} + *
  • {@link ExerciseTestCase#setIsPretest(Boolean)} + *
  • {@link ExerciseTestCase#setOrder(Integer)} + *
  • {@link ExerciseTestCase#setOutputFile(String)} + *
  • {@link ExerciseTestCase#setOutputLimit(Integer)} + *
  • {@link ExerciseTestCase#setOutputPrefix(Integer)} + *
  • {@link ExerciseTestCase#setPoints(Integer)} + *
  • {@link ExerciseTestCase#setType(char)} + *
  • {@link ExerciseTestCase#getChecker()} + *
  • {@link ExerciseTestCase#getCheckerArgs()} + *
  • {@link ExerciseTestCase#getDatasetId()} + *
  • {@link ExerciseTestCase#getGeneratorArgs()} + *
  • {@link ExerciseTestCase#getId()} + *
  • {@link ExerciseTestCase#getInputFile()} + *
  • {@link ExerciseTestCase#getIsPretest()} + *
  • {@link ExerciseTestCase#getOrder()} + *
  • {@link ExerciseTestCase#getOutputFile()} + *
  • {@link ExerciseTestCase#getOutputLimit()} + *
  • {@link ExerciseTestCase#getOutputPrefix()} + *
  • {@link ExerciseTestCase#getPoints()} + *
  • {@link ExerciseTestCase#getType()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ExerciseTestCase actualExerciseTestCase = new ExerciseTestCase(); + actualExerciseTestCase.setChecker("Checker"); + actualExerciseTestCase.setCheckerArgs("Checker Args"); + actualExerciseTestCase.setDatasetId("42"); + actualExerciseTestCase.setGeneratorArgs("Generator Args"); + actualExerciseTestCase.setId("42"); + actualExerciseTestCase.setInputFile("Input File"); + actualExerciseTestCase.setIsPretest(true); + actualExerciseTestCase.setOrder(1); + actualExerciseTestCase.setOutputFile("Output File"); + actualExerciseTestCase.setOutputLimit(1); + actualExerciseTestCase.setOutputPrefix(1); + actualExerciseTestCase.setPoints(1); + actualExerciseTestCase.setType('A'); + String actualChecker = actualExerciseTestCase.getChecker(); + String actualCheckerArgs = actualExerciseTestCase.getCheckerArgs(); + String actualDatasetId = actualExerciseTestCase.getDatasetId(); + String actualGeneratorArgs = actualExerciseTestCase.getGeneratorArgs(); + String actualId = actualExerciseTestCase.getId(); + String actualInputFile = actualExerciseTestCase.getInputFile(); + Boolean actualIsPretest = actualExerciseTestCase.getIsPretest(); + Integer actualOrder = actualExerciseTestCase.getOrder(); + String actualOutputFile = actualExerciseTestCase.getOutputFile(); + Integer actualOutputLimit = actualExerciseTestCase.getOutputLimit(); + Integer actualOutputPrefix = actualExerciseTestCase.getOutputPrefix(); + Integer actualPoints = actualExerciseTestCase.getPoints(); + + // Assert that nothing has changed + assertEquals("42", actualDatasetId); + assertEquals("42", actualId); + assertEquals("Checker Args", actualCheckerArgs); + assertEquals("Checker", actualChecker); + assertEquals("Generator Args", actualGeneratorArgs); + assertEquals("Input File", actualInputFile); + assertEquals("Output File", actualOutputFile); + assertEquals('A', actualExerciseTestCase.getType()); + assertEquals(1, actualOrder.intValue()); + assertEquals(1, actualOutputLimit.intValue()); + assertEquals(1, actualOutputPrefix.intValue()); + assertEquals(1, actualPoints.intValue()); + assertTrue(actualIsPretest); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link ExerciseTestCase#ExerciseTestCase(String, String, Integer, char, String, String, String, Integer, Boolean, Integer, Integer, String, String)} + *
  • {@link ExerciseTestCase#setChecker(String)} + *
  • {@link ExerciseTestCase#setCheckerArgs(String)} + *
  • {@link ExerciseTestCase#setDatasetId(String)} + *
  • {@link ExerciseTestCase#setGeneratorArgs(String)} + *
  • {@link ExerciseTestCase#setId(String)} + *
  • {@link ExerciseTestCase#setInputFile(String)} + *
  • {@link ExerciseTestCase#setIsPretest(Boolean)} + *
  • {@link ExerciseTestCase#setOrder(Integer)} + *
  • {@link ExerciseTestCase#setOutputFile(String)} + *
  • {@link ExerciseTestCase#setOutputLimit(Integer)} + *
  • {@link ExerciseTestCase#setOutputPrefix(Integer)} + *
  • {@link ExerciseTestCase#setPoints(Integer)} + *
  • {@link ExerciseTestCase#setType(char)} + *
  • {@link ExerciseTestCase#getChecker()} + *
  • {@link ExerciseTestCase#getCheckerArgs()} + *
  • {@link ExerciseTestCase#getDatasetId()} + *
  • {@link ExerciseTestCase#getGeneratorArgs()} + *
  • {@link ExerciseTestCase#getId()} + *
  • {@link ExerciseTestCase#getInputFile()} + *
  • {@link ExerciseTestCase#getIsPretest()} + *
  • {@link ExerciseTestCase#getOrder()} + *
  • {@link ExerciseTestCase#getOutputFile()} + *
  • {@link ExerciseTestCase#getOutputLimit()} + *
  • {@link ExerciseTestCase#getOutputPrefix()} + *
  • {@link ExerciseTestCase#getPoints()} + *
  • {@link ExerciseTestCase#getType()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + ExerciseTestCase actualExerciseTestCase = new ExerciseTestCase("42", "42", 1, 'A', "Input File", "Output File", + "Generator Args", 1, true, 1, 1, "Checker", "Checker Args"); + actualExerciseTestCase.setChecker("Checker"); + actualExerciseTestCase.setCheckerArgs("Checker Args"); + actualExerciseTestCase.setDatasetId("42"); + actualExerciseTestCase.setGeneratorArgs("Generator Args"); + actualExerciseTestCase.setId("42"); + actualExerciseTestCase.setInputFile("Input File"); + actualExerciseTestCase.setIsPretest(true); + actualExerciseTestCase.setOrder(1); + actualExerciseTestCase.setOutputFile("Output File"); + actualExerciseTestCase.setOutputLimit(1); + actualExerciseTestCase.setOutputPrefix(1); + actualExerciseTestCase.setPoints(1); + actualExerciseTestCase.setType('A'); + String actualChecker = actualExerciseTestCase.getChecker(); + String actualCheckerArgs = actualExerciseTestCase.getCheckerArgs(); + String actualDatasetId = actualExerciseTestCase.getDatasetId(); + String actualGeneratorArgs = actualExerciseTestCase.getGeneratorArgs(); + String actualId = actualExerciseTestCase.getId(); + String actualInputFile = actualExerciseTestCase.getInputFile(); + Boolean actualIsPretest = actualExerciseTestCase.getIsPretest(); + Integer actualOrder = actualExerciseTestCase.getOrder(); + String actualOutputFile = actualExerciseTestCase.getOutputFile(); + Integer actualOutputLimit = actualExerciseTestCase.getOutputLimit(); + Integer actualOutputPrefix = actualExerciseTestCase.getOutputPrefix(); + Integer actualPoints = actualExerciseTestCase.getPoints(); + + // Assert that nothing has changed + assertEquals("42", actualDatasetId); + assertEquals("42", actualId); + assertEquals("Checker Args", actualCheckerArgs); + assertEquals("Checker", actualChecker); + assertEquals("Generator Args", actualGeneratorArgs); + assertEquals("Input File", actualInputFile); + assertEquals("Output File", actualOutputFile); + assertEquals('A', actualExerciseTestCase.getType()); + assertEquals(1, actualOrder.intValue()); + assertEquals(1, actualOutputLimit.intValue()); + assertEquals(1, actualOutputPrefix.intValue()); + assertEquals(1, actualPoints.intValue()); + assertTrue(actualIsPretest); + } +} diff --git a/src/test/java/com/example/codeE/model/exercise/common/problem/TestCaseDiffblueTest.java b/src/test/java/com/example/codeE/model/exercise/common/problem/TestCaseDiffblueTest.java new file mode 100644 index 00000000..e0002b9f --- /dev/null +++ b/src/test/java/com/example/codeE/model/exercise/common/problem/TestCaseDiffblueTest.java @@ -0,0 +1,85 @@ +package com.example.codeE.model.exercise.common.problem; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class TestCaseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link TestCase#TestCase()} + *
  • {@link TestCase#setExerciseId(String)} + *
  • {@link TestCase#setInput(String)} + *
  • {@link TestCase#setOutput(String)} + *
  • {@link TestCase#setPoints(int)} + *
  • {@link TestCase#setTestcaseId(String)} + *
  • {@link TestCase#getExerciseId()} + *
  • {@link TestCase#getInput()} + *
  • {@link TestCase#getOutput()} + *
  • {@link TestCase#getPoints()} + *
  • {@link TestCase#getTestcaseId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + TestCase actualTestCase = new TestCase(); + actualTestCase.setExerciseId("42"); + actualTestCase.setInput("Input"); + actualTestCase.setOutput("Output"); + actualTestCase.setPoints(1); + actualTestCase.setTestcaseId("42"); + String actualExerciseId = actualTestCase.getExerciseId(); + String actualInput = actualTestCase.getInput(); + String actualOutput = actualTestCase.getOutput(); + int actualPoints = actualTestCase.getPoints(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualTestCase.getTestcaseId()); + assertEquals("Input", actualInput); + assertEquals("Output", actualOutput); + assertEquals(1, actualPoints); + } + + /** + * Methods under test: + * + *
    + *
  • {@link TestCase#TestCase(String, String, String, String, int)} + *
  • {@link TestCase#setExerciseId(String)} + *
  • {@link TestCase#setInput(String)} + *
  • {@link TestCase#setOutput(String)} + *
  • {@link TestCase#setPoints(int)} + *
  • {@link TestCase#setTestcaseId(String)} + *
  • {@link TestCase#getExerciseId()} + *
  • {@link TestCase#getInput()} + *
  • {@link TestCase#getOutput()} + *
  • {@link TestCase#getPoints()} + *
  • {@link TestCase#getTestcaseId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + TestCase actualTestCase = new TestCase("42", "42", "Input", "Output", 1); + actualTestCase.setExerciseId("42"); + actualTestCase.setInput("Input"); + actualTestCase.setOutput("Output"); + actualTestCase.setPoints(1); + actualTestCase.setTestcaseId("42"); + String actualExerciseId = actualTestCase.getExerciseId(); + String actualInput = actualTestCase.getInput(); + String actualOutput = actualTestCase.getOutput(); + int actualPoints = actualTestCase.getPoints(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualTestCase.getTestcaseId()); + assertEquals("Input", actualInput); + assertEquals("Output", actualOutput); + assertEquals(1, actualPoints); + } +} diff --git a/src/test/java/com/example/codeE/model/group/UpdateGroupRequestDiffblueTest.java b/src/test/java/com/example/codeE/model/group/UpdateGroupRequestDiffblueTest.java new file mode 100644 index 00000000..b59d7902 --- /dev/null +++ b/src/test/java/com/example/codeE/model/group/UpdateGroupRequestDiffblueTest.java @@ -0,0 +1,45 @@ +package com.example.codeE.model.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class UpdateGroupRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateGroupRequest#UpdateGroupRequest()} + *
  • {@link UpdateGroupRequest#setGroupName(String)} + *
  • {@link UpdateGroupRequest#getGroupName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateGroupRequest actualUpdateGroupRequest = new UpdateGroupRequest(); + actualUpdateGroupRequest.setGroupName("Group Name"); + + // Assert that nothing has changed + assertEquals("Group Name", actualUpdateGroupRequest.getGroupName()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link UpdateGroupRequest#UpdateGroupRequest(String)} + *
  • {@link UpdateGroupRequest#setGroupName(String)} + *
  • {@link UpdateGroupRequest#getGroupName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + UpdateGroupRequest actualUpdateGroupRequest = new UpdateGroupRequest("Group Name"); + actualUpdateGroupRequest.setGroupName("Group Name"); + + // Assert that nothing has changed + assertEquals("Group Name", actualUpdateGroupRequest.getGroupName()); + } +} diff --git a/src/test/java/com/example/codeE/model/material/ViewPermissionMaterialDiffblueTest.java b/src/test/java/com/example/codeE/model/material/ViewPermissionMaterialDiffblueTest.java new file mode 100644 index 00000000..bb7beb74 --- /dev/null +++ b/src/test/java/com/example/codeE/model/material/ViewPermissionMaterialDiffblueTest.java @@ -0,0 +1,264 @@ +package com.example.codeE.model.material; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.group.Group; +import com.example.codeE.model.topic.Topic; + +import java.time.LocalDate; +import java.util.ArrayList; + +import org.junit.jupiter.api.Test; + +class ViewPermissionMaterialDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ViewPermissionMaterial#ViewPermissionMaterial()} + *
  • {@link ViewPermissionMaterial#setGroup(Group)} + *
  • {@link ViewPermissionMaterial#setGroupId(String)} + *
  • {@link ViewPermissionMaterial#setMaterial(Material)} + *
  • {@link ViewPermissionMaterial#setMaterialId(String)} + *
  • {@link ViewPermissionMaterial#getGroup()} + *
  • {@link ViewPermissionMaterial#getGroupId()} + *
  • {@link ViewPermissionMaterial#getMaterial()} + *
  • {@link ViewPermissionMaterial#getMaterialId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ViewPermissionMaterial actualViewPermissionMaterial = new ViewPermissionMaterial(); + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + actualViewPermissionMaterial.setGroup(group); + actualViewPermissionMaterial.setGroupId("42"); + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = new Material(); + material.onUpdate(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + actualViewPermissionMaterial.setMaterial(material); + actualViewPermissionMaterial.setMaterialId("42"); + Group actualGroup = actualViewPermissionMaterial.getGroup(); + String actualGroupId = actualViewPermissionMaterial.getGroupId(); + Material actualMaterial = actualViewPermissionMaterial.getMaterial(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals("42", actualViewPermissionMaterial.getMaterialId()); + assertSame(group, actualGroup); + assertSame(material, actualMaterial); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link ViewPermissionMaterial#ViewPermissionMaterial(String, String, Material, Group)} + *
  • {@link ViewPermissionMaterial#setGroup(Group)} + *
  • {@link ViewPermissionMaterial#setGroupId(String)} + *
  • {@link ViewPermissionMaterial#setMaterial(Material)} + *
  • {@link ViewPermissionMaterial#setMaterialId(String)} + *
  • {@link ViewPermissionMaterial#getGroup()} + *
  • {@link ViewPermissionMaterial#getGroupId()} + *
  • {@link ViewPermissionMaterial#getMaterial()} + *
  • {@link ViewPermissionMaterial#getMaterialId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.onUpdate(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course2); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + + // Act + ViewPermissionMaterial actualViewPermissionMaterial = new ViewPermissionMaterial("42", "42", material, group); + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Group group2 = new Group(); + group2.setCourse(course3); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + actualViewPermissionMaterial.setGroup(group2); + actualViewPermissionMaterial.setGroupId("42"); + Course course4 = new Course(); + course4.setCourseId("42"); + course4.setCourseName("Course Name"); + course4.setCourseStudents(new ArrayList<>()); + course4.setCourseTeachers(new ArrayList<>()); + course4.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course4.setDescription("The characteristics of someone or something"); + course4.setEnrollKey("Enroll Key"); + course4.setGroups(new ArrayList<>()); + course4.setSemester("Semester"); + course4.setTopics(new ArrayList<>()); + course4.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic2 = new Topic(); + topic2.setCourse(course4); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + Material material2 = new Material(); + material2.onUpdate(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("The characteristics of someone or something"); + material2.setMaterialId("42"); + material2.setMaterialName("Material Name"); + material2.setMaterialType("Material Type"); + material2.setShowAll(true); + material2.setStorageUrl("https://example.org/example"); + material2.setTopic(topic2); + material2.setTopicId("42"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + actualViewPermissionMaterial.setMaterial(material2); + actualViewPermissionMaterial.setMaterialId("42"); + Group actualGroup = actualViewPermissionMaterial.getGroup(); + String actualGroupId = actualViewPermissionMaterial.getGroupId(); + Material actualMaterial = actualViewPermissionMaterial.getMaterial(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals("42", actualViewPermissionMaterial.getMaterialId()); + assertSame(group2, actualGroup); + assertSame(material2, actualMaterial); + } +} diff --git a/src/test/java/com/example/codeE/model/topic/ViewPermissionTopicDiffblueTest.java b/src/test/java/com/example/codeE/model/topic/ViewPermissionTopicDiffblueTest.java new file mode 100644 index 00000000..f5d0d7e9 --- /dev/null +++ b/src/test/java/com/example/codeE/model/topic/ViewPermissionTopicDiffblueTest.java @@ -0,0 +1,226 @@ +package com.example.codeE.model.topic; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.group.Group; + +import java.time.LocalDate; +import java.util.ArrayList; + +import org.junit.jupiter.api.Test; + +class ViewPermissionTopicDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ViewPermissionTopic#ViewPermissionTopic()} + *
  • {@link ViewPermissionTopic#setGroup(Group)} + *
  • {@link ViewPermissionTopic#setGroupId(String)} + *
  • {@link ViewPermissionTopic#setTopic(Topic)} + *
  • {@link ViewPermissionTopic#setTopicId(String)} + *
  • {@link ViewPermissionTopic#getGroup()} + *
  • {@link ViewPermissionTopic#getGroupId()} + *
  • {@link ViewPermissionTopic#getTopic()} + *
  • {@link ViewPermissionTopic#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ViewPermissionTopic actualViewPermissionTopic = new ViewPermissionTopic(); + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + actualViewPermissionTopic.setGroup(group); + actualViewPermissionTopic.setGroupId("42"); + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic = new Topic(); + topic.onUpdate(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + actualViewPermissionTopic.setTopic(topic); + actualViewPermissionTopic.setTopicId("42"); + Group actualGroup = actualViewPermissionTopic.getGroup(); + String actualGroupId = actualViewPermissionTopic.getGroupId(); + Topic actualTopic = actualViewPermissionTopic.getTopic(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals("42", actualViewPermissionTopic.getTopicId()); + assertSame(group, actualGroup); + assertSame(topic, actualTopic); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link ViewPermissionTopic#ViewPermissionTopic(String, String, Topic, Group)} + *
  • {@link ViewPermissionTopic#setGroup(Group)} + *
  • {@link ViewPermissionTopic#setGroupId(String)} + *
  • {@link ViewPermissionTopic#setTopic(Topic)} + *
  • {@link ViewPermissionTopic#setTopicId(String)} + *
  • {@link ViewPermissionTopic#getGroup()} + *
  • {@link ViewPermissionTopic#getGroupId()} + *
  • {@link ViewPermissionTopic#getTopic()} + *
  • {@link ViewPermissionTopic#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.onUpdate(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course2); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + + // Act + ViewPermissionTopic actualViewPermissionTopic = new ViewPermissionTopic("42", "42", topic, group); + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Group group2 = new Group(); + group2.setCourse(course3); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + actualViewPermissionTopic.setGroup(group2); + actualViewPermissionTopic.setGroupId("42"); + Course course4 = new Course(); + course4.setCourseId("42"); + course4.setCourseName("Course Name"); + course4.setCourseStudents(new ArrayList<>()); + course4.setCourseTeachers(new ArrayList<>()); + course4.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course4.setDescription("The characteristics of someone or something"); + course4.setEnrollKey("Enroll Key"); + course4.setGroups(new ArrayList<>()); + course4.setSemester("Semester"); + course4.setTopics(new ArrayList<>()); + course4.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic2 = new Topic(); + topic2.onUpdate(); + topic2.setCourse(course4); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + actualViewPermissionTopic.setTopic(topic2); + actualViewPermissionTopic.setTopicId("42"); + Group actualGroup = actualViewPermissionTopic.getGroup(); + String actualGroupId = actualViewPermissionTopic.getGroupId(); + Topic actualTopic = actualViewPermissionTopic.getTopic(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals("42", actualViewPermissionTopic.getTopicId()); + assertSame(group2, actualGroup); + assertSame(topic2, actualTopic); + } +} diff --git a/src/test/java/com/example/codeE/request/ApiResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/ApiResponseDiffblueTest.java new file mode 100644 index 00000000..91fea4d3 --- /dev/null +++ b/src/test/java/com/example/codeE/request/ApiResponseDiffblueTest.java @@ -0,0 +1,95 @@ +package com.example.codeE.request; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class ApiResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ApiResponse#ApiResponse()} + *
  • {@link ApiResponse#setError(String)} + *
  • {@link ApiResponse#setMessage(String)} + *
  • {@link ApiResponse#setStatus(int)} + *
  • {@link ApiResponse#setValue(Object)} + *
  • {@link ApiResponse#setValues(List)} + *
  • {@link ApiResponse#getError()} + *
  • {@link ApiResponse#getMessage()} + *
  • {@link ApiResponse#getStatus()} + *
  • {@link ApiResponse#getValue()} + *
  • {@link ApiResponse#getValues()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ApiResponse actualApiResponse = new ApiResponse<>(); + actualApiResponse.setError("An error occurred"); + actualApiResponse.setMessage("Not all who wander are lost"); + actualApiResponse.setStatus(1); + actualApiResponse.setValue("Value"); + ArrayList values = new ArrayList<>(); + actualApiResponse.setValues(values); + String actualError = actualApiResponse.getError(); + String actualMessage = actualApiResponse.getMessage(); + int actualStatus = actualApiResponse.getStatus(); + actualApiResponse.getValue(); + + // Assert that nothing has changed + assertEquals("An error occurred", actualError); + assertEquals("Not all who wander are lost", actualMessage); + assertEquals(1, actualStatus); + assertSame(values, actualApiResponse.getValues()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link ApiResponse#ApiResponse(List, Object, String, int, String)} + *
  • {@link ApiResponse#setError(String)} + *
  • {@link ApiResponse#setMessage(String)} + *
  • {@link ApiResponse#setStatus(int)} + *
  • {@link ApiResponse#setValue(Object)} + *
  • {@link ApiResponse#setValues(List)} + *
  • {@link ApiResponse#getError()} + *
  • {@link ApiResponse#getMessage()} + *
  • {@link ApiResponse#getStatus()} + *
  • {@link ApiResponse#getValue()} + *
  • {@link ApiResponse#getValues()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList values = new ArrayList<>(); + + // Act + ApiResponse actualApiResponse = new ApiResponse<>(values, "Value", "Not all who wander are lost", 1, + "An error occurred"); + actualApiResponse.setError("An error occurred"); + actualApiResponse.setMessage("Not all who wander are lost"); + actualApiResponse.setStatus(1); + actualApiResponse.setValue("Value"); + ArrayList values2 = new ArrayList<>(); + actualApiResponse.setValues(values2); + String actualError = actualApiResponse.getError(); + String actualMessage = actualApiResponse.getMessage(); + int actualStatus = actualApiResponse.getStatus(); + actualApiResponse.getValue(); + List actualValues = actualApiResponse.getValues(); + + // Assert that nothing has changed + assertEquals("An error occurred", actualError); + assertEquals("Not all who wander are lost", actualMessage); + assertEquals(1, actualStatus); + assertEquals(values, actualValues); + assertSame(values2, actualValues); + } +} diff --git a/src/test/java/com/example/codeE/request/auth/CheckOTPRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/auth/CheckOTPRequestDiffblueTest.java new file mode 100644 index 00000000..6d6d711e --- /dev/null +++ b/src/test/java/com/example/codeE/request/auth/CheckOTPRequestDiffblueTest.java @@ -0,0 +1,45 @@ +package com.example.codeE.request.auth; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CheckOTPRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CheckOTPRequest#CheckOTPRequest()} + *
  • {@link CheckOTPRequest#setOtp(String)} + *
  • {@link CheckOTPRequest#getOtp()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CheckOTPRequest actualCheckOTPRequest = new CheckOTPRequest(); + actualCheckOTPRequest.setOtp("Otp"); + + // Assert that nothing has changed + assertEquals("Otp", actualCheckOTPRequest.getOtp()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link CheckOTPRequest#CheckOTPRequest(String)} + *
  • {@link CheckOTPRequest#setOtp(String)} + *
  • {@link CheckOTPRequest#getOtp()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CheckOTPRequest actualCheckOTPRequest = new CheckOTPRequest("Otp"); + actualCheckOTPRequest.setOtp("Otp"); + + // Assert that nothing has changed + assertEquals("Otp", actualCheckOTPRequest.getOtp()); + } +} diff --git a/src/test/java/com/example/codeE/request/auth/SendOTPRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/auth/SendOTPRequestDiffblueTest.java new file mode 100644 index 00000000..1f6e6ddd --- /dev/null +++ b/src/test/java/com/example/codeE/request/auth/SendOTPRequestDiffblueTest.java @@ -0,0 +1,45 @@ +package com.example.codeE.request.auth; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class SendOTPRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link SendOTPRequest#SendOTPRequest()} + *
  • {@link SendOTPRequest#setUserName(String)} + *
  • {@link SendOTPRequest#getUserName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + SendOTPRequest actualSendOTPRequest = new SendOTPRequest(); + actualSendOTPRequest.setUserName("janedoe"); + + // Assert that nothing has changed + assertEquals("janedoe", actualSendOTPRequest.getUserName()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link SendOTPRequest#SendOTPRequest(String)} + *
  • {@link SendOTPRequest#setUserName(String)} + *
  • {@link SendOTPRequest#getUserName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + SendOTPRequest actualSendOTPRequest = new SendOTPRequest("janedoe"); + actualSendOTPRequest.setUserName("janedoe"); + + // Assert that nothing has changed + assertEquals("janedoe", actualSendOTPRequest.getUserName()); + } +} diff --git a/src/test/java/com/example/codeE/request/course/AddStudentToCourseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/course/AddStudentToCourseRequestDiffblueTest.java new file mode 100644 index 00000000..414ef539 --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/AddStudentToCourseRequestDiffblueTest.java @@ -0,0 +1,66 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class AddStudentToCourseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link AddStudentToCourseRequest#AddStudentToCourseRequest()} + *
  • {@link AddStudentToCourseRequest#setCourseId(String)} + *
  • {@link AddStudentToCourseRequest#setStudentIds(List)} + *
  • {@link AddStudentToCourseRequest#getCourseId()} + *
  • {@link AddStudentToCourseRequest#getStudentIds()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + AddStudentToCourseRequest actualAddStudentToCourseRequest = new AddStudentToCourseRequest(); + actualAddStudentToCourseRequest.setCourseId("42"); + ArrayList studentIds = new ArrayList<>(); + actualAddStudentToCourseRequest.setStudentIds(studentIds); + String actualCourseId = actualAddStudentToCourseRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertSame(studentIds, actualAddStudentToCourseRequest.getStudentIds()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link AddStudentToCourseRequest#AddStudentToCourseRequest(List, String)} + *
  • {@link AddStudentToCourseRequest#setCourseId(String)} + *
  • {@link AddStudentToCourseRequest#setStudentIds(List)} + *
  • {@link AddStudentToCourseRequest#getCourseId()} + *
  • {@link AddStudentToCourseRequest#getStudentIds()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList studentIds = new ArrayList<>(); + + // Act + AddStudentToCourseRequest actualAddStudentToCourseRequest = new AddStudentToCourseRequest(studentIds, "42"); + actualAddStudentToCourseRequest.setCourseId("42"); + ArrayList studentIds2 = new ArrayList<>(); + actualAddStudentToCourseRequest.setStudentIds(studentIds2); + String actualCourseId = actualAddStudentToCourseRequest.getCourseId(); + List actualStudentIds = actualAddStudentToCourseRequest.getStudentIds(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals(studentIds, actualStudentIds); + assertSame(studentIds2, actualStudentIds); + } +} diff --git a/src/test/java/com/example/codeE/request/course/CourseEnrollmentRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/course/CourseEnrollmentRequestDiffblueTest.java new file mode 100644 index 00000000..454b5510 --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/CourseEnrollmentRequestDiffblueTest.java @@ -0,0 +1,66 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CourseEnrollmentRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CourseEnrollmentRequest#CourseEnrollmentRequest()} + *
  • {@link CourseEnrollmentRequest#setCourseId(String)} + *
  • {@link CourseEnrollmentRequest#setEnrollmentKey(String)} + *
  • {@link CourseEnrollmentRequest#setStudentId(String)} + *
  • {@link CourseEnrollmentRequest#getCourseId()} + *
  • {@link CourseEnrollmentRequest#getEnrollmentKey()} + *
  • {@link CourseEnrollmentRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CourseEnrollmentRequest actualCourseEnrollmentRequest = new CourseEnrollmentRequest(); + actualCourseEnrollmentRequest.setCourseId("42"); + actualCourseEnrollmentRequest.setEnrollmentKey("Enrollment Key"); + actualCourseEnrollmentRequest.setStudentId("42"); + String actualCourseId = actualCourseEnrollmentRequest.getCourseId(); + String actualEnrollmentKey = actualCourseEnrollmentRequest.getEnrollmentKey(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("42", actualCourseEnrollmentRequest.getStudentId()); + assertEquals("Enrollment Key", actualEnrollmentKey); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CourseEnrollmentRequest#CourseEnrollmentRequest(String, String, String)} + *
  • {@link CourseEnrollmentRequest#setCourseId(String)} + *
  • {@link CourseEnrollmentRequest#setEnrollmentKey(String)} + *
  • {@link CourseEnrollmentRequest#setStudentId(String)} + *
  • {@link CourseEnrollmentRequest#getCourseId()} + *
  • {@link CourseEnrollmentRequest#getEnrollmentKey()} + *
  • {@link CourseEnrollmentRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CourseEnrollmentRequest actualCourseEnrollmentRequest = new CourseEnrollmentRequest("42", "42", "Enrollment Key"); + actualCourseEnrollmentRequest.setCourseId("42"); + actualCourseEnrollmentRequest.setEnrollmentKey("Enrollment Key"); + actualCourseEnrollmentRequest.setStudentId("42"); + String actualCourseId = actualCourseEnrollmentRequest.getCourseId(); + String actualEnrollmentKey = actualCourseEnrollmentRequest.getEnrollmentKey(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("42", actualCourseEnrollmentRequest.getStudentId()); + assertEquals("Enrollment Key", actualEnrollmentKey); + } +} diff --git a/src/test/java/com/example/codeE/request/course/CourseEnrollmentResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/course/CourseEnrollmentResponseDiffblueTest.java new file mode 100644 index 00000000..10d2daee --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/CourseEnrollmentResponseDiffblueTest.java @@ -0,0 +1,96 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CourseEnrollmentResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CourseEnrollmentResponse#CourseEnrollmentResponse()} + *
  • {@link CourseEnrollmentResponse#setError(String)} + *
  • {@link CourseEnrollmentResponse#setMessage(String)} + *
  • {@link CourseEnrollmentResponse#setStatus(int)} + *
  • {@link CourseEnrollmentResponse#setValue(Object)} + *
  • {@link CourseEnrollmentResponse#setValues(List)} + *
  • {@link CourseEnrollmentResponse#getError()} + *
  • {@link CourseEnrollmentResponse#getMessage()} + *
  • {@link CourseEnrollmentResponse#getStatus()} + *
  • {@link CourseEnrollmentResponse#getValue()} + *
  • {@link CourseEnrollmentResponse#getValues()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CourseEnrollmentResponse actualCourseEnrollmentResponse = new CourseEnrollmentResponse<>(); + actualCourseEnrollmentResponse.setError("An error occurred"); + actualCourseEnrollmentResponse.setMessage("Not all who wander are lost"); + actualCourseEnrollmentResponse.setStatus(1); + actualCourseEnrollmentResponse.setValue("Value"); + ArrayList values = new ArrayList<>(); + actualCourseEnrollmentResponse.setValues(values); + String actualError = actualCourseEnrollmentResponse.getError(); + String actualMessage = actualCourseEnrollmentResponse.getMessage(); + int actualStatus = actualCourseEnrollmentResponse.getStatus(); + actualCourseEnrollmentResponse.getValue(); + + // Assert that nothing has changed + assertEquals("An error occurred", actualError); + assertEquals("Not all who wander are lost", actualMessage); + assertEquals(1, actualStatus); + assertSame(values, actualCourseEnrollmentResponse.getValues()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CourseEnrollmentResponse#CourseEnrollmentResponse(String, String, Object, List, int)} + *
  • {@link CourseEnrollmentResponse#setError(String)} + *
  • {@link CourseEnrollmentResponse#setMessage(String)} + *
  • {@link CourseEnrollmentResponse#setStatus(int)} + *
  • {@link CourseEnrollmentResponse#setValue(Object)} + *
  • {@link CourseEnrollmentResponse#setValues(List)} + *
  • {@link CourseEnrollmentResponse#getError()} + *
  • {@link CourseEnrollmentResponse#getMessage()} + *
  • {@link CourseEnrollmentResponse#getStatus()} + *
  • {@link CourseEnrollmentResponse#getValue()} + *
  • {@link CourseEnrollmentResponse#getValues()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList values = new ArrayList<>(); + + // Act + CourseEnrollmentResponse actualCourseEnrollmentResponse = new CourseEnrollmentResponse<>( + "Not all who wander are lost", "An error occurred", "Value", values, 1); + actualCourseEnrollmentResponse.setError("An error occurred"); + actualCourseEnrollmentResponse.setMessage("Not all who wander are lost"); + actualCourseEnrollmentResponse.setStatus(1); + actualCourseEnrollmentResponse.setValue("Value"); + ArrayList values2 = new ArrayList<>(); + actualCourseEnrollmentResponse.setValues(values2); + String actualError = actualCourseEnrollmentResponse.getError(); + String actualMessage = actualCourseEnrollmentResponse.getMessage(); + int actualStatus = actualCourseEnrollmentResponse.getStatus(); + actualCourseEnrollmentResponse.getValue(); + List actualValues = actualCourseEnrollmentResponse.getValues(); + + // Assert that nothing has changed + assertEquals("An error occurred", actualError); + assertEquals("Not all who wander are lost", actualMessage); + assertEquals(1, actualStatus); + assertEquals(values, actualValues); + assertSame(values2, actualValues); + } +} diff --git a/src/test/java/com/example/codeE/request/course/CourseTeacherResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/course/CourseTeacherResponseDiffblueTest.java new file mode 100644 index 00000000..8a7f8088 --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/CourseTeacherResponseDiffblueTest.java @@ -0,0 +1,159 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.user.User; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; + +import org.junit.jupiter.api.Test; + +class CourseTeacherResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CourseTeacherResponse#CourseTeacherResponse()} + *
  • {@link CourseTeacherResponse#setCourseId(String)} + *
  • {@link CourseTeacherResponse#setCourseName(String)} + *
  • {@link CourseTeacherResponse#setCreatedDate(LocalDateTime)} + *
  • {@link CourseTeacherResponse#setDescription(String)} + *
  • {@link CourseTeacherResponse#setSemester(String)} + *
  • {@link CourseTeacherResponse#setTeacher(User)} + *
  • {@link CourseTeacherResponse#setUpdatedDate(LocalDateTime)} + *
  • {@link CourseTeacherResponse#getCourseId()} + *
  • {@link CourseTeacherResponse#getCourseName()} + *
  • {@link CourseTeacherResponse#getCreatedDate()} + *
  • {@link CourseTeacherResponse#getDescription()} + *
  • {@link CourseTeacherResponse#getSemester()} + *
  • {@link CourseTeacherResponse#getTeacher()} + *
  • {@link CourseTeacherResponse#getUpdatedDate()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CourseTeacherResponse actualCourseTeacherResponse = new CourseTeacherResponse(); + actualCourseTeacherResponse.setCourseId("42"); + actualCourseTeacherResponse.setCourseName("Course Name"); + LocalDateTime createdDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualCourseTeacherResponse.setCreatedDate(createdDate); + actualCourseTeacherResponse.setDescription("The characteristics of someone or something"); + actualCourseTeacherResponse.setSemester("Semester"); + User teacher = new User(); + teacher.setCourseStudents(new ArrayList<>()); + teacher.setCourseTeachers(new ArrayList<>()); + teacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setEmail("jane.doe@example.org"); + teacher.setGroupStudents(new ArrayList<>()); + teacher.setName("Name"); + teacher.setPassword("iloveyou"); + teacher.setRole("Role"); + teacher.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setUserId("42"); + teacher.setUsername("janedoe"); + actualCourseTeacherResponse.setTeacher(teacher); + LocalDateTime updatedDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualCourseTeacherResponse.setUpdatedDate(updatedDate); + String actualCourseId = actualCourseTeacherResponse.getCourseId(); + String actualCourseName = actualCourseTeacherResponse.getCourseName(); + LocalDateTime actualCreatedDate = actualCourseTeacherResponse.getCreatedDate(); + String actualDescription = actualCourseTeacherResponse.getDescription(); + String actualSemester = actualCourseTeacherResponse.getSemester(); + User actualTeacher = actualCourseTeacherResponse.getTeacher(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("Course Name", actualCourseName); + assertEquals("Semester", actualSemester); + assertEquals("The characteristics of someone or something", actualDescription); + assertSame(teacher, actualTeacher); + assertSame(createdDate, actualCreatedDate); + assertSame(updatedDate, actualCourseTeacherResponse.getUpdatedDate()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CourseTeacherResponse#CourseTeacherResponse(String, String, String, String, LocalDateTime, LocalDateTime, User)} + *
  • {@link CourseTeacherResponse#setCourseId(String)} + *
  • {@link CourseTeacherResponse#setCourseName(String)} + *
  • {@link CourseTeacherResponse#setCreatedDate(LocalDateTime)} + *
  • {@link CourseTeacherResponse#setDescription(String)} + *
  • {@link CourseTeacherResponse#setSemester(String)} + *
  • {@link CourseTeacherResponse#setTeacher(User)} + *
  • {@link CourseTeacherResponse#setUpdatedDate(LocalDateTime)} + *
  • {@link CourseTeacherResponse#getCourseId()} + *
  • {@link CourseTeacherResponse#getCourseName()} + *
  • {@link CourseTeacherResponse#getCreatedDate()} + *
  • {@link CourseTeacherResponse#getDescription()} + *
  • {@link CourseTeacherResponse#getSemester()} + *
  • {@link CourseTeacherResponse#getTeacher()} + *
  • {@link CourseTeacherResponse#getUpdatedDate()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + LocalDateTime createdDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + LocalDateTime updatedDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + + User teacher = new User(); + teacher.setCourseStudents(new ArrayList<>()); + teacher.setCourseTeachers(new ArrayList<>()); + teacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setEmail("jane.doe@example.org"); + teacher.setGroupStudents(new ArrayList<>()); + teacher.setName("Name"); + teacher.setPassword("iloveyou"); + teacher.setRole("Role"); + teacher.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setUserId("42"); + teacher.setUsername("janedoe"); + + // Act + CourseTeacherResponse actualCourseTeacherResponse = new CourseTeacherResponse("42", "Course Name", "Semester", + "The characteristics of someone or something", createdDate, updatedDate, teacher); + actualCourseTeacherResponse.setCourseId("42"); + actualCourseTeacherResponse.setCourseName("Course Name"); + LocalDateTime createdDate2 = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualCourseTeacherResponse.setCreatedDate(createdDate2); + actualCourseTeacherResponse.setDescription("The characteristics of someone or something"); + actualCourseTeacherResponse.setSemester("Semester"); + User teacher2 = new User(); + teacher2.setCourseStudents(new ArrayList<>()); + teacher2.setCourseTeachers(new ArrayList<>()); + teacher2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher2.setEmail("jane.doe@example.org"); + teacher2.setGroupStudents(new ArrayList<>()); + teacher2.setName("Name"); + teacher2.setPassword("iloveyou"); + teacher2.setRole("Role"); + teacher2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher2.setUserId("42"); + teacher2.setUsername("janedoe"); + actualCourseTeacherResponse.setTeacher(teacher2); + LocalDateTime updatedDate2 = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualCourseTeacherResponse.setUpdatedDate(updatedDate2); + String actualCourseId = actualCourseTeacherResponse.getCourseId(); + String actualCourseName = actualCourseTeacherResponse.getCourseName(); + LocalDateTime actualCreatedDate = actualCourseTeacherResponse.getCreatedDate(); + String actualDescription = actualCourseTeacherResponse.getDescription(); + String actualSemester = actualCourseTeacherResponse.getSemester(); + User actualTeacher = actualCourseTeacherResponse.getTeacher(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("Course Name", actualCourseName); + assertEquals("Semester", actualSemester); + assertEquals("The characteristics of someone or something", actualDescription); + assertSame(teacher2, actualTeacher); + assertSame(createdDate2, actualCreatedDate); + assertSame(updatedDate2, actualCourseTeacherResponse.getUpdatedDate()); + } +} diff --git a/src/test/java/com/example/codeE/request/course/CreateCourseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/course/CreateCourseRequestDiffblueTest.java new file mode 100644 index 00000000..4816ca87 --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/CreateCourseRequestDiffblueTest.java @@ -0,0 +1,77 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CreateCourseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateCourseRequest#CreateCourseRequest()} + *
  • {@link CreateCourseRequest#setCourseName(String)} + *
  • {@link CreateCourseRequest#setDescription(String)} + *
  • {@link CreateCourseRequest#setSemester(String)} + *
  • {@link CreateCourseRequest#setTeacherId(String)} + *
  • {@link CreateCourseRequest#getCourseName()} + *
  • {@link CreateCourseRequest#getDescription()} + *
  • {@link CreateCourseRequest#getSemester()} + *
  • {@link CreateCourseRequest#getTeacherId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateCourseRequest actualCreateCourseRequest = new CreateCourseRequest(); + actualCreateCourseRequest.setCourseName("Course Name"); + actualCreateCourseRequest.setDescription("The characteristics of someone or something"); + actualCreateCourseRequest.setSemester("Semester"); + actualCreateCourseRequest.setTeacherId("42"); + String actualCourseName = actualCreateCourseRequest.getCourseName(); + String actualDescription = actualCreateCourseRequest.getDescription(); + String actualSemester = actualCreateCourseRequest.getSemester(); + + // Assert that nothing has changed + assertEquals("42", actualCreateCourseRequest.getTeacherId()); + assertEquals("Course Name", actualCourseName); + assertEquals("Semester", actualSemester); + assertEquals("The characteristics of someone or something", actualDescription); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateCourseRequest#CreateCourseRequest(String, String, String, String)} + *
  • {@link CreateCourseRequest#setCourseName(String)} + *
  • {@link CreateCourseRequest#setDescription(String)} + *
  • {@link CreateCourseRequest#setSemester(String)} + *
  • {@link CreateCourseRequest#setTeacherId(String)} + *
  • {@link CreateCourseRequest#getCourseName()} + *
  • {@link CreateCourseRequest#getDescription()} + *
  • {@link CreateCourseRequest#getSemester()} + *
  • {@link CreateCourseRequest#getTeacherId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CreateCourseRequest actualCreateCourseRequest = new CreateCourseRequest("Course Name", "Semester", + "The characteristics of someone or something", "42"); + actualCreateCourseRequest.setCourseName("Course Name"); + actualCreateCourseRequest.setDescription("The characteristics of someone or something"); + actualCreateCourseRequest.setSemester("Semester"); + actualCreateCourseRequest.setTeacherId("42"); + String actualCourseName = actualCreateCourseRequest.getCourseName(); + String actualDescription = actualCreateCourseRequest.getDescription(); + String actualSemester = actualCreateCourseRequest.getSemester(); + + // Assert that nothing has changed + assertEquals("42", actualCreateCourseRequest.getTeacherId()); + assertEquals("Course Name", actualCourseName); + assertEquals("Semester", actualSemester); + assertEquals("The characteristics of someone or something", actualDescription); + } +} diff --git a/src/test/java/com/example/codeE/request/course/ImportStudentToCourseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/course/ImportStudentToCourseRequestDiffblueTest.java new file mode 100644 index 00000000..60e2729e --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/ImportStudentToCourseRequestDiffblueTest.java @@ -0,0 +1,67 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +import org.junit.jupiter.api.Test; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.web.multipart.MultipartFile; + +class ImportStudentToCourseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ImportStudentToCourseRequest#ImportStudentToCourseRequest()} + *
  • {@link ImportStudentToCourseRequest#setCourseId(String)} + *
  • {@link ImportStudentToCourseRequest#setFile(MultipartFile)} + *
  • {@link ImportStudentToCourseRequest#getCourseId()} + *
  • {@link ImportStudentToCourseRequest#getFile()} + *
+ */ + @Test + void testGettersAndSetters() throws IOException { + // Arrange and Act + ImportStudentToCourseRequest actualImportStudentToCourseRequest = new ImportStudentToCourseRequest(); + actualImportStudentToCourseRequest.setCourseId("42"); + MockMultipartFile file = new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))); + + actualImportStudentToCourseRequest.setFile(file); + String actualCourseId = actualImportStudentToCourseRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertSame(file, actualImportStudentToCourseRequest.getFile()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link ImportStudentToCourseRequest#ImportStudentToCourseRequest(String, MultipartFile)} + *
  • {@link ImportStudentToCourseRequest#setCourseId(String)} + *
  • {@link ImportStudentToCourseRequest#setFile(MultipartFile)} + *
  • {@link ImportStudentToCourseRequest#getCourseId()} + *
  • {@link ImportStudentToCourseRequest#getFile()} + *
+ */ + @Test + void testGettersAndSetters2() throws IOException { + // Arrange and Act + ImportStudentToCourseRequest actualImportStudentToCourseRequest = new ImportStudentToCourseRequest("42", + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + actualImportStudentToCourseRequest.setCourseId("42"); + MockMultipartFile file = new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))); + + actualImportStudentToCourseRequest.setFile(file); + String actualCourseId = actualImportStudentToCourseRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertSame(file, actualImportStudentToCourseRequest.getFile()); + } +} diff --git a/src/test/java/com/example/codeE/request/course/RemoveStudentFromCourseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/course/RemoveStudentFromCourseRequestDiffblueTest.java new file mode 100644 index 00000000..9fc8f352 --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/RemoveStudentFromCourseRequestDiffblueTest.java @@ -0,0 +1,57 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class RemoveStudentFromCourseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link RemoveStudentFromCourseRequest#RemoveStudentFromCourseRequest()} + *
  • {@link RemoveStudentFromCourseRequest#setCourseId(String)} + *
  • {@link RemoveStudentFromCourseRequest#setStudentId(String)} + *
  • {@link RemoveStudentFromCourseRequest#getCourseId()} + *
  • {@link RemoveStudentFromCourseRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + RemoveStudentFromCourseRequest actualRemoveStudentFromCourseRequest = new RemoveStudentFromCourseRequest(); + actualRemoveStudentFromCourseRequest.setCourseId("42"); + actualRemoveStudentFromCourseRequest.setStudentId("42"); + String actualCourseId = actualRemoveStudentFromCourseRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("42", actualRemoveStudentFromCourseRequest.getStudentId()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link RemoveStudentFromCourseRequest#RemoveStudentFromCourseRequest(String, String)} + *
  • {@link RemoveStudentFromCourseRequest#setCourseId(String)} + *
  • {@link RemoveStudentFromCourseRequest#setStudentId(String)} + *
  • {@link RemoveStudentFromCourseRequest#getCourseId()} + *
  • {@link RemoveStudentFromCourseRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + RemoveStudentFromCourseRequest actualRemoveStudentFromCourseRequest = new RemoveStudentFromCourseRequest("42", + "42"); + actualRemoveStudentFromCourseRequest.setCourseId("42"); + actualRemoveStudentFromCourseRequest.setStudentId("42"); + String actualCourseId = actualRemoveStudentFromCourseRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("42", actualRemoveStudentFromCourseRequest.getStudentId()); + } +} diff --git a/src/test/java/com/example/codeE/request/course/UpdateCourseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/course/UpdateCourseRequestDiffblueTest.java new file mode 100644 index 00000000..b932d405 --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/UpdateCourseRequestDiffblueTest.java @@ -0,0 +1,97 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class UpdateCourseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateCourseRequest#UpdateCourseRequest()} + *
  • {@link UpdateCourseRequest#setCourseId(String)} + *
  • {@link UpdateCourseRequest#setCourseName(String)} + *
  • {@link UpdateCourseRequest#setDescription(String)} + *
  • {@link UpdateCourseRequest#setEnrollKey(String)} + *
  • {@link UpdateCourseRequest#setSemester(String)} + *
  • {@link UpdateCourseRequest#setTeacherId(String)} + *
  • {@link UpdateCourseRequest#getCourseId()} + *
  • {@link UpdateCourseRequest#getCourseName()} + *
  • {@link UpdateCourseRequest#getDescription()} + *
  • {@link UpdateCourseRequest#getEnrollKey()} + *
  • {@link UpdateCourseRequest#getSemester()} + *
  • {@link UpdateCourseRequest#getTeacherId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateCourseRequest actualUpdateCourseRequest = new UpdateCourseRequest(); + actualUpdateCourseRequest.setCourseId("42"); + actualUpdateCourseRequest.setCourseName("Course Name"); + actualUpdateCourseRequest.setDescription("The characteristics of someone or something"); + actualUpdateCourseRequest.setEnrollKey("Enroll Key"); + actualUpdateCourseRequest.setSemester("Semester"); + actualUpdateCourseRequest.setTeacherId("42"); + String actualCourseId = actualUpdateCourseRequest.getCourseId(); + String actualCourseName = actualUpdateCourseRequest.getCourseName(); + String actualDescription = actualUpdateCourseRequest.getDescription(); + String actualEnrollKey = actualUpdateCourseRequest.getEnrollKey(); + String actualSemester = actualUpdateCourseRequest.getSemester(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("42", actualUpdateCourseRequest.getTeacherId()); + assertEquals("Course Name", actualCourseName); + assertEquals("Enroll Key", actualEnrollKey); + assertEquals("Semester", actualSemester); + assertEquals("The characteristics of someone or something", actualDescription); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateCourseRequest#UpdateCourseRequest(String, String, String, String, String, String)} + *
  • {@link UpdateCourseRequest#setCourseId(String)} + *
  • {@link UpdateCourseRequest#setCourseName(String)} + *
  • {@link UpdateCourseRequest#setDescription(String)} + *
  • {@link UpdateCourseRequest#setEnrollKey(String)} + *
  • {@link UpdateCourseRequest#setSemester(String)} + *
  • {@link UpdateCourseRequest#setTeacherId(String)} + *
  • {@link UpdateCourseRequest#getCourseId()} + *
  • {@link UpdateCourseRequest#getCourseName()} + *
  • {@link UpdateCourseRequest#getDescription()} + *
  • {@link UpdateCourseRequest#getEnrollKey()} + *
  • {@link UpdateCourseRequest#getSemester()} + *
  • {@link UpdateCourseRequest#getTeacherId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + UpdateCourseRequest actualUpdateCourseRequest = new UpdateCourseRequest("42", "Course Name", "Semester", + "Enroll Key", "The characteristics of someone or something", "42"); + actualUpdateCourseRequest.setCourseId("42"); + actualUpdateCourseRequest.setCourseName("Course Name"); + actualUpdateCourseRequest.setDescription("The characteristics of someone or something"); + actualUpdateCourseRequest.setEnrollKey("Enroll Key"); + actualUpdateCourseRequest.setSemester("Semester"); + actualUpdateCourseRequest.setTeacherId("42"); + String actualCourseId = actualUpdateCourseRequest.getCourseId(); + String actualCourseName = actualUpdateCourseRequest.getCourseName(); + String actualDescription = actualUpdateCourseRequest.getDescription(); + String actualEnrollKey = actualUpdateCourseRequest.getEnrollKey(); + String actualSemester = actualUpdateCourseRequest.getSemester(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("42", actualUpdateCourseRequest.getTeacherId()); + assertEquals("Course Name", actualCourseName); + assertEquals("Enroll Key", actualEnrollKey); + assertEquals("Semester", actualSemester); + assertEquals("The characteristics of someone or something", actualDescription); + } +} diff --git a/src/test/java/com/example/codeE/request/course/UpdateStudentsToCourseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/course/UpdateStudentsToCourseRequestDiffblueTest.java new file mode 100644 index 00000000..7cde0952 --- /dev/null +++ b/src/test/java/com/example/codeE/request/course/UpdateStudentsToCourseRequestDiffblueTest.java @@ -0,0 +1,68 @@ +package com.example.codeE.request.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class UpdateStudentsToCourseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateStudentsToCourseRequest#UpdateStudentsToCourseRequest()} + *
  • {@link UpdateStudentsToCourseRequest#setCourseId(String)} + *
  • {@link UpdateStudentsToCourseRequest#setStudentIds(List)} + *
  • {@link UpdateStudentsToCourseRequest#getCourseId()} + *
  • {@link UpdateStudentsToCourseRequest#getStudentIds()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateStudentsToCourseRequest actualUpdateStudentsToCourseRequest = new UpdateStudentsToCourseRequest(); + actualUpdateStudentsToCourseRequest.setCourseId("42"); + ArrayList studentIds = new ArrayList<>(); + actualUpdateStudentsToCourseRequest.setStudentIds(studentIds); + String actualCourseId = actualUpdateStudentsToCourseRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertSame(studentIds, actualUpdateStudentsToCourseRequest.getStudentIds()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateStudentsToCourseRequest#UpdateStudentsToCourseRequest(String, List)} + *
  • {@link UpdateStudentsToCourseRequest#setCourseId(String)} + *
  • {@link UpdateStudentsToCourseRequest#setStudentIds(List)} + *
  • {@link UpdateStudentsToCourseRequest#getCourseId()} + *
  • {@link UpdateStudentsToCourseRequest#getStudentIds()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList studentIds = new ArrayList<>(); + + // Act + UpdateStudentsToCourseRequest actualUpdateStudentsToCourseRequest = new UpdateStudentsToCourseRequest("42", + studentIds); + actualUpdateStudentsToCourseRequest.setCourseId("42"); + ArrayList studentIds2 = new ArrayList<>(); + actualUpdateStudentsToCourseRequest.setStudentIds(studentIds2); + String actualCourseId = actualUpdateStudentsToCourseRequest.getCourseId(); + List actualStudentIds = actualUpdateStudentsToCourseRequest.getStudentIds(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals(studentIds, actualStudentIds); + assertSame(studentIds2, actualStudentIds); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/CreatePermissionExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/CreatePermissionExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..4c4fb438 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/CreatePermissionExerciseRequestDiffblueTest.java @@ -0,0 +1,78 @@ +package com.example.codeE.request.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CreatePermissionExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreatePermissionExerciseRequest#CreatePermissionExerciseRequest()} + *
  • {@link CreatePermissionExerciseRequest#setExerciseId(String)} + *
  • {@link CreatePermissionExerciseRequest#setGroupIds(List)} + *
  • {@link CreatePermissionExerciseRequest#setShowAll(boolean)} + *
  • {@link CreatePermissionExerciseRequest#getExerciseId()} + *
  • {@link CreatePermissionExerciseRequest#getGroupIds()} + *
  • {@link CreatePermissionExerciseRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreatePermissionExerciseRequest actualCreatePermissionExerciseRequest = new CreatePermissionExerciseRequest(); + actualCreatePermissionExerciseRequest.setExerciseId("42"); + ArrayList groupIds = new ArrayList<>(); + actualCreatePermissionExerciseRequest.setGroupIds(groupIds); + actualCreatePermissionExerciseRequest.setShowAll(true); + String actualExerciseId = actualCreatePermissionExerciseRequest.getExerciseId(); + List actualGroupIds = actualCreatePermissionExerciseRequest.getGroupIds(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertTrue(actualCreatePermissionExerciseRequest.isShowAll()); + assertSame(groupIds, actualGroupIds); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreatePermissionExerciseRequest#CreatePermissionExerciseRequest(String, List, boolean)} + *
  • {@link CreatePermissionExerciseRequest#setExerciseId(String)} + *
  • {@link CreatePermissionExerciseRequest#setGroupIds(List)} + *
  • {@link CreatePermissionExerciseRequest#setShowAll(boolean)} + *
  • {@link CreatePermissionExerciseRequest#getExerciseId()} + *
  • {@link CreatePermissionExerciseRequest#getGroupIds()} + *
  • {@link CreatePermissionExerciseRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList groupIds = new ArrayList<>(); + + // Act + CreatePermissionExerciseRequest actualCreatePermissionExerciseRequest = new CreatePermissionExerciseRequest("42", + groupIds, true); + actualCreatePermissionExerciseRequest.setExerciseId("42"); + ArrayList groupIds2 = new ArrayList<>(); + actualCreatePermissionExerciseRequest.setGroupIds(groupIds2); + actualCreatePermissionExerciseRequest.setShowAll(true); + String actualExerciseId = actualCreatePermissionExerciseRequest.getExerciseId(); + List actualGroupIds = actualCreatePermissionExerciseRequest.getGroupIds(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertTrue(actualCreatePermissionExerciseRequest.isShowAll()); + assertEquals(groupIds, actualGroupIds); + assertSame(groupIds2, actualGroupIds); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/GetDetailExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/GetDetailExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..c9031c54 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/GetDetailExerciseRequestDiffblueTest.java @@ -0,0 +1,66 @@ +package com.example.codeE.request.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class GetDetailExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link GetDetailExerciseRequest#GetDetailExerciseRequest()} + *
  • {@link GetDetailExerciseRequest#setExerciseId(String)} + *
  • {@link GetDetailExerciseRequest#setKey(String)} + *
  • {@link GetDetailExerciseRequest#setStudentId(String)} + *
  • {@link GetDetailExerciseRequest#getExerciseId()} + *
  • {@link GetDetailExerciseRequest#getKey()} + *
  • {@link GetDetailExerciseRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + GetDetailExerciseRequest actualGetDetailExerciseRequest = new GetDetailExerciseRequest(); + actualGetDetailExerciseRequest.setExerciseId("42"); + actualGetDetailExerciseRequest.setKey("Key"); + actualGetDetailExerciseRequest.setStudentId("42"); + String actualExerciseId = actualGetDetailExerciseRequest.getExerciseId(); + String actualKey = actualGetDetailExerciseRequest.getKey(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualGetDetailExerciseRequest.getStudentId()); + assertEquals("Key", actualKey); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link GetDetailExerciseRequest#GetDetailExerciseRequest(String, String, String)} + *
  • {@link GetDetailExerciseRequest#setExerciseId(String)} + *
  • {@link GetDetailExerciseRequest#setKey(String)} + *
  • {@link GetDetailExerciseRequest#setStudentId(String)} + *
  • {@link GetDetailExerciseRequest#getExerciseId()} + *
  • {@link GetDetailExerciseRequest#getKey()} + *
  • {@link GetDetailExerciseRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + GetDetailExerciseRequest actualGetDetailExerciseRequest = new GetDetailExerciseRequest("42", "42", "Key"); + actualGetDetailExerciseRequest.setExerciseId("42"); + actualGetDetailExerciseRequest.setKey("Key"); + actualGetDetailExerciseRequest.setStudentId("42"); + String actualExerciseId = actualGetDetailExerciseRequest.getExerciseId(); + String actualKey = actualGetDetailExerciseRequest.getKey(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualGetDetailExerciseRequest.getStudentId()); + assertEquals("Key", actualKey); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/code/CodeRunRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/code/CodeRunRequestDiffblueTest.java new file mode 100644 index 00000000..85611745 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/code/CodeRunRequestDiffblueTest.java @@ -0,0 +1,75 @@ +package com.example.codeE.request.exercise.code; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CodeRunRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CodeRunRequest#CodeRunRequest()} + *
  • {@link CodeRunRequest#setExerciseId(String)} + *
  • {@link CodeRunRequest#setLanguageId(String)} + *
  • {@link CodeRunRequest#setSource(String)} + *
  • {@link CodeRunRequest#setStudentId(String)} + *
  • {@link CodeRunRequest#getExerciseId()} + *
  • {@link CodeRunRequest#getLanguageId()} + *
  • {@link CodeRunRequest#getSource()} + *
  • {@link CodeRunRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CodeRunRequest actualCodeRunRequest = new CodeRunRequest(); + actualCodeRunRequest.setExerciseId("42"); + actualCodeRunRequest.setLanguageId("en"); + actualCodeRunRequest.setSource("Source"); + actualCodeRunRequest.setStudentId("42"); + String actualExerciseId = actualCodeRunRequest.getExerciseId(); + String actualLanguageId = actualCodeRunRequest.getLanguageId(); + String actualSource = actualCodeRunRequest.getSource(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualCodeRunRequest.getStudentId()); + assertEquals("Source", actualSource); + assertEquals("en", actualLanguageId); + } + + /** + * Methods under test: + * + *
    + *
  • {@link CodeRunRequest#CodeRunRequest(String, String, String, String)} + *
  • {@link CodeRunRequest#setExerciseId(String)} + *
  • {@link CodeRunRequest#setLanguageId(String)} + *
  • {@link CodeRunRequest#setSource(String)} + *
  • {@link CodeRunRequest#setStudentId(String)} + *
  • {@link CodeRunRequest#getExerciseId()} + *
  • {@link CodeRunRequest#getLanguageId()} + *
  • {@link CodeRunRequest#getSource()} + *
  • {@link CodeRunRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CodeRunRequest actualCodeRunRequest = new CodeRunRequest("42", "42", "en", "Source"); + actualCodeRunRequest.setExerciseId("42"); + actualCodeRunRequest.setLanguageId("en"); + actualCodeRunRequest.setSource("Source"); + actualCodeRunRequest.setStudentId("42"); + String actualExerciseId = actualCodeRunRequest.getExerciseId(); + String actualLanguageId = actualCodeRunRequest.getLanguageId(); + String actualSource = actualCodeRunRequest.getSource(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualCodeRunRequest.getStudentId()); + assertEquals("Source", actualSource); + assertEquals("en", actualLanguageId); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/code/CodeSubmissionsResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/code/CodeSubmissionsResponseDiffblueTest.java new file mode 100644 index 00000000..05b3a394 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/code/CodeSubmissionsResponseDiffblueTest.java @@ -0,0 +1,230 @@ +package com.example.codeE.request.exercise.code; + +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.CodeSubmission; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.user.User; +import com.example.codeE.service.judge.JudgeImpl; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class CodeSubmissionsResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CodeSubmissionsResponse#CodeSubmissionsResponse()} + *
  • {@link CodeSubmissionsResponse#setExercise(Exercise)} + *
  • {@link CodeSubmissionsResponse#setStudent(User)} + *
  • {@link CodeSubmissionsResponse#setSubmissions(CodeSubmission)} + *
  • {@link CodeSubmissionsResponse#getExercise()} + *
  • {@link CodeSubmissionsResponse#getStudent()} + *
  • {@link CodeSubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CodeSubmissionsResponse actualCodeSubmissionsResponse = new CodeSubmissionsResponse(); + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + actualCodeSubmissionsResponse.setExercise(exercise); + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + actualCodeSubmissionsResponse.setStudent(student); + CodeSubmission submissions = new CodeSubmission(); + submissions.setCasePoints(10.0d); + submissions.setCaseTotal(10.0d); + submissions.setCurrentTestcase(1); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setError("An error occurred"); + submissions.setExerciseId("42"); + submissions.setJudgeService(new JudgeImpl()); + submissions.setJudgedOn("Judged On"); + submissions.setLanguageId("en"); + submissions.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + submissions.setMemory(1); + submissions.setPretested(true); + submissions.setResult("Result"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setSource("Source"); + submissions.setStatus("Status"); + submissions.setStudentId("42"); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + submissions.setTime(10.0d); + actualCodeSubmissionsResponse.setSubmissions(submissions); + Exercise actualExercise = actualCodeSubmissionsResponse.getExercise(); + User actualStudent = actualCodeSubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(submissions, actualCodeSubmissionsResponse.getSubmissions()); + assertSame(exercise, actualExercise); + assertSame(student, actualStudent); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CodeSubmissionsResponse#CodeSubmissionsResponse(CodeSubmission, User, Exercise)} + *
  • {@link CodeSubmissionsResponse#setExercise(Exercise)} + *
  • {@link CodeSubmissionsResponse#setStudent(User)} + *
  • {@link CodeSubmissionsResponse#setSubmissions(CodeSubmission)} + *
  • {@link CodeSubmissionsResponse#getExercise()} + *
  • {@link CodeSubmissionsResponse#getStudent()} + *
  • {@link CodeSubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + CodeSubmission submissions = new CodeSubmission(); + submissions.setCasePoints(10.0d); + submissions.setCaseTotal(10.0d); + submissions.setCurrentTestcase(1); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setError("An error occurred"); + submissions.setExerciseId("42"); + submissions.setJudgeService(new JudgeImpl()); + submissions.setJudgedOn("Judged On"); + submissions.setLanguageId("en"); + submissions.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + submissions.setMemory(1); + submissions.setPretested(true); + submissions.setResult("Result"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setSource("Source"); + submissions.setStatus("Status"); + submissions.setStudentId("42"); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + submissions.setTime(10.0d); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act + CodeSubmissionsResponse actualCodeSubmissionsResponse = new CodeSubmissionsResponse(submissions, student, exercise); + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + actualCodeSubmissionsResponse.setExercise(exercise2); + User student2 = new User(); + student2.setCourseStudents(new ArrayList<>()); + student2.setCourseTeachers(new ArrayList<>()); + student2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setEmail("jane.doe@example.org"); + student2.setGroupStudents(new ArrayList<>()); + student2.setName("Name"); + student2.setPassword("iloveyou"); + student2.setRole("Role"); + student2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setUserId("42"); + student2.setUsername("janedoe"); + actualCodeSubmissionsResponse.setStudent(student2); + CodeSubmission submissions2 = new CodeSubmission(); + submissions2.setCasePoints(10.0d); + submissions2.setCaseTotal(10.0d); + submissions2.setCurrentTestcase(1); + submissions2.setDateGrade("2020-03-01"); + submissions2.setDateSubmit("2020-03-01"); + submissions2.setError("An error occurred"); + submissions2.setExerciseId("42"); + submissions2.setJudgeService(new JudgeImpl()); + submissions2.setJudgedOn("Judged On"); + submissions2.setLanguageId("en"); + submissions2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + submissions2.setMemory(1); + submissions2.setPretested(true); + submissions2.setResult("Result"); + submissions2.setReviewable(true); + submissions2.setScore(10.0f); + submissions2.setSource("Source"); + submissions2.setStatus("Status"); + submissions2.setStudentId("42"); + submissions2.setSubmissionId("42"); + submissions2.setTeacherComment("Teacher Comment"); + submissions2.setTime(10.0d); + actualCodeSubmissionsResponse.setSubmissions(submissions2); + Exercise actualExercise = actualCodeSubmissionsResponse.getExercise(); + User actualStudent = actualCodeSubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(submissions2, actualCodeSubmissionsResponse.getSubmissions()); + assertSame(exercise2, actualExercise); + assertSame(student2, actualStudent); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/code/CreateCodeExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/code/CreateCodeExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..d3562ced --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/code/CreateCodeExerciseRequestDiffblueTest.java @@ -0,0 +1,182 @@ +package com.example.codeE.request.exercise.code; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.common.problem.TestCase; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CreateCodeExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateCodeExerciseRequest#CreateCodeExerciseRequest()} + *
  • {@link CreateCodeExerciseRequest#setAllowedLanguageIds(List)} + *
  • {@link CreateCodeExerciseRequest#setDescription(String)} + *
  • {@link CreateCodeExerciseRequest#setDurationTime(int)} + *
  • {@link CreateCodeExerciseRequest#setEndTime(Date)} + *
  • {@link CreateCodeExerciseRequest#setExerciseName(String)} + *
  • {@link CreateCodeExerciseRequest#setKey(String)} + *
  • {@link CreateCodeExerciseRequest#setPoints(Double)} + *
  • {@link CreateCodeExerciseRequest#setReAttempt(int)} + *
  • {@link CreateCodeExerciseRequest#setStartTime(Date)} + *
  • {@link CreateCodeExerciseRequest#setTemplate(String)} + *
  • {@link CreateCodeExerciseRequest#setTestCases(List)} + *
  • {@link CreateCodeExerciseRequest#setTopicId(String)} + *
  • {@link CreateCodeExerciseRequest#getAllowedLanguageIds()} + *
  • {@link CreateCodeExerciseRequest#getDescription()} + *
  • {@link CreateCodeExerciseRequest#getDurationTime()} + *
  • {@link CreateCodeExerciseRequest#getEndTime()} + *
  • {@link CreateCodeExerciseRequest#getExerciseName()} + *
  • {@link CreateCodeExerciseRequest#getKey()} + *
  • {@link CreateCodeExerciseRequest#getPoints()} + *
  • {@link CreateCodeExerciseRequest#getReAttempt()} + *
  • {@link CreateCodeExerciseRequest#getStartTime()} + *
  • {@link CreateCodeExerciseRequest#getTemplate()} + *
  • {@link CreateCodeExerciseRequest#getTestCases()} + *
  • {@link CreateCodeExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateCodeExerciseRequest actualCreateCodeExerciseRequest = new CreateCodeExerciseRequest(); + ArrayList allowedLanguageIds = new ArrayList<>(); + actualCreateCodeExerciseRequest.setAllowedLanguageIds(allowedLanguageIds); + actualCreateCodeExerciseRequest.setDescription("The characteristics of someone or something"); + actualCreateCodeExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateCodeExerciseRequest.setEndTime(endTime); + actualCreateCodeExerciseRequest.setExerciseName("Exercise Name"); + actualCreateCodeExerciseRequest.setKey("Key"); + actualCreateCodeExerciseRequest.setPoints(10.0d); + actualCreateCodeExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateCodeExerciseRequest.setStartTime(startTime); + actualCreateCodeExerciseRequest.setTemplate("Template"); + ArrayList testCases = new ArrayList<>(); + actualCreateCodeExerciseRequest.setTestCases(testCases); + actualCreateCodeExerciseRequest.setTopicId("42"); + List actualAllowedLanguageIds = actualCreateCodeExerciseRequest.getAllowedLanguageIds(); + String actualDescription = actualCreateCodeExerciseRequest.getDescription(); + int actualDurationTime = actualCreateCodeExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateCodeExerciseRequest.getEndTime(); + String actualExerciseName = actualCreateCodeExerciseRequest.getExerciseName(); + String actualKey = actualCreateCodeExerciseRequest.getKey(); + Double actualPoints = actualCreateCodeExerciseRequest.getPoints(); + int actualReAttempt = actualCreateCodeExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateCodeExerciseRequest.getStartTime(); + String actualTemplate = actualCreateCodeExerciseRequest.getTemplate(); + List actualTestCases = actualCreateCodeExerciseRequest.getTestCases(); + + // Assert that nothing has changed + assertEquals("42", actualCreateCodeExerciseRequest.getTopicId()); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Template", actualTemplate); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertEquals(10.0d, actualPoints.doubleValue()); + assertSame(allowedLanguageIds, actualAllowedLanguageIds); + assertSame(testCases, actualTestCases); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateCodeExerciseRequest#CreateCodeExerciseRequest(String, String, String, Date, Date, int, int, String, List, Double, List, String)} + *
  • {@link CreateCodeExerciseRequest#setAllowedLanguageIds(List)} + *
  • {@link CreateCodeExerciseRequest#setDescription(String)} + *
  • {@link CreateCodeExerciseRequest#setDurationTime(int)} + *
  • {@link CreateCodeExerciseRequest#setEndTime(Date)} + *
  • {@link CreateCodeExerciseRequest#setExerciseName(String)} + *
  • {@link CreateCodeExerciseRequest#setKey(String)} + *
  • {@link CreateCodeExerciseRequest#setPoints(Double)} + *
  • {@link CreateCodeExerciseRequest#setReAttempt(int)} + *
  • {@link CreateCodeExerciseRequest#setStartTime(Date)} + *
  • {@link CreateCodeExerciseRequest#setTemplate(String)} + *
  • {@link CreateCodeExerciseRequest#setTestCases(List)} + *
  • {@link CreateCodeExerciseRequest#setTopicId(String)} + *
  • {@link CreateCodeExerciseRequest#getAllowedLanguageIds()} + *
  • {@link CreateCodeExerciseRequest#getDescription()} + *
  • {@link CreateCodeExerciseRequest#getDurationTime()} + *
  • {@link CreateCodeExerciseRequest#getEndTime()} + *
  • {@link CreateCodeExerciseRequest#getExerciseName()} + *
  • {@link CreateCodeExerciseRequest#getKey()} + *
  • {@link CreateCodeExerciseRequest#getPoints()} + *
  • {@link CreateCodeExerciseRequest#getReAttempt()} + *
  • {@link CreateCodeExerciseRequest#getStartTime()} + *
  • {@link CreateCodeExerciseRequest#getTemplate()} + *
  • {@link CreateCodeExerciseRequest#getTestCases()} + *
  • {@link CreateCodeExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + ArrayList allowedLanguageIds = new ArrayList<>(); + + // Act + CreateCodeExerciseRequest actualCreateCodeExerciseRequest = new CreateCodeExerciseRequest("42", "Exercise Name", + "Key", startTime, endTime, 1, 1, "The characteristics of someone or something", allowedLanguageIds, 10.0d, + new ArrayList<>(), "Template"); + ArrayList allowedLanguageIds2 = new ArrayList<>(); + actualCreateCodeExerciseRequest.setAllowedLanguageIds(allowedLanguageIds2); + actualCreateCodeExerciseRequest.setDescription("The characteristics of someone or something"); + actualCreateCodeExerciseRequest.setDurationTime(1); + Date endTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateCodeExerciseRequest.setEndTime(endTime2); + actualCreateCodeExerciseRequest.setExerciseName("Exercise Name"); + actualCreateCodeExerciseRequest.setKey("Key"); + actualCreateCodeExerciseRequest.setPoints(10.0d); + actualCreateCodeExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateCodeExerciseRequest.setStartTime(startTime2); + actualCreateCodeExerciseRequest.setTemplate("Template"); + ArrayList testCases = new ArrayList<>(); + actualCreateCodeExerciseRequest.setTestCases(testCases); + actualCreateCodeExerciseRequest.setTopicId("42"); + List actualAllowedLanguageIds = actualCreateCodeExerciseRequest.getAllowedLanguageIds(); + String actualDescription = actualCreateCodeExerciseRequest.getDescription(); + int actualDurationTime = actualCreateCodeExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateCodeExerciseRequest.getEndTime(); + String actualExerciseName = actualCreateCodeExerciseRequest.getExerciseName(); + String actualKey = actualCreateCodeExerciseRequest.getKey(); + Double actualPoints = actualCreateCodeExerciseRequest.getPoints(); + int actualReAttempt = actualCreateCodeExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateCodeExerciseRequest.getStartTime(); + String actualTemplate = actualCreateCodeExerciseRequest.getTemplate(); + List actualTestCases = actualCreateCodeExerciseRequest.getTestCases(); + + // Assert that nothing has changed + assertEquals("42", actualCreateCodeExerciseRequest.getTopicId()); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Template", actualTemplate); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertEquals(10.0d, actualPoints.doubleValue()); + assertEquals(allowedLanguageIds, actualAllowedLanguageIds); + assertEquals(allowedLanguageIds, actualTestCases); + assertSame(allowedLanguageIds2, actualAllowedLanguageIds); + assertSame(testCases, actualTestCases); + assertSame(endTime2, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/code/RunCodeExerciseResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/code/RunCodeExerciseResponseDiffblueTest.java new file mode 100644 index 00000000..bc8630a3 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/code/RunCodeExerciseResponseDiffblueTest.java @@ -0,0 +1,80 @@ +package com.example.codeE.request.exercise.code; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.common.SubmissionTestCase; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class RunCodeExerciseResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link RunCodeExerciseResponse#RunCodeExerciseResponse()} + *
  • {@link RunCodeExerciseResponse#setMessage(String)} + *
  • {@link RunCodeExerciseResponse#setStatus(String)} + *
  • {@link RunCodeExerciseResponse#setTestCases(List)} + *
  • {@link RunCodeExerciseResponse#getMessage()} + *
  • {@link RunCodeExerciseResponse#getStatus()} + *
  • {@link RunCodeExerciseResponse#getTestCases()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + RunCodeExerciseResponse actualRunCodeExerciseResponse = new RunCodeExerciseResponse(); + actualRunCodeExerciseResponse.setMessage("Not all who wander are lost"); + actualRunCodeExerciseResponse.setStatus("Status"); + ArrayList testCases = new ArrayList<>(); + actualRunCodeExerciseResponse.setTestCases(testCases); + String actualMessage = actualRunCodeExerciseResponse.getMessage(); + String actualStatus = actualRunCodeExerciseResponse.getStatus(); + + // Assert that nothing has changed + assertEquals("Not all who wander are lost", actualMessage); + assertEquals("Status", actualStatus); + assertSame(testCases, actualRunCodeExerciseResponse.getTestCases()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link RunCodeExerciseResponse#RunCodeExerciseResponse(String, String, List)} + *
  • {@link RunCodeExerciseResponse#setMessage(String)} + *
  • {@link RunCodeExerciseResponse#setStatus(String)} + *
  • {@link RunCodeExerciseResponse#setTestCases(List)} + *
  • {@link RunCodeExerciseResponse#getMessage()} + *
  • {@link RunCodeExerciseResponse#getStatus()} + *
  • {@link RunCodeExerciseResponse#getTestCases()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList testCases = new ArrayList<>(); + + // Act + RunCodeExerciseResponse actualRunCodeExerciseResponse = new RunCodeExerciseResponse("Status", + "Not all who wander are lost", testCases); + actualRunCodeExerciseResponse.setMessage("Not all who wander are lost"); + actualRunCodeExerciseResponse.setStatus("Status"); + ArrayList testCases2 = new ArrayList<>(); + actualRunCodeExerciseResponse.setTestCases(testCases2); + String actualMessage = actualRunCodeExerciseResponse.getMessage(); + String actualStatus = actualRunCodeExerciseResponse.getStatus(); + List actualTestCases = actualRunCodeExerciseResponse.getTestCases(); + + // Assert that nothing has changed + assertEquals("Not all who wander are lost", actualMessage); + assertEquals("Status", actualStatus); + assertEquals(testCases, actualTestCases); + assertSame(testCases2, actualTestCases); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/code/SubmitCodeExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/code/SubmitCodeExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..22bcf23f --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/code/SubmitCodeExerciseRequestDiffblueTest.java @@ -0,0 +1,77 @@ +package com.example.codeE.request.exercise.code; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class SubmitCodeExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link SubmitCodeExerciseRequest#SubmitCodeExerciseRequest()} + *
  • {@link SubmitCodeExerciseRequest#setExerciseId(String)} + *
  • {@link SubmitCodeExerciseRequest#setLanguageId(String)} + *
  • {@link SubmitCodeExerciseRequest#setSource(String)} + *
  • {@link SubmitCodeExerciseRequest#setStudentId(String)} + *
  • {@link SubmitCodeExerciseRequest#getExerciseId()} + *
  • {@link SubmitCodeExerciseRequest#getLanguageId()} + *
  • {@link SubmitCodeExerciseRequest#getSource()} + *
  • {@link SubmitCodeExerciseRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + SubmitCodeExerciseRequest actualSubmitCodeExerciseRequest = new SubmitCodeExerciseRequest(); + actualSubmitCodeExerciseRequest.setExerciseId("42"); + actualSubmitCodeExerciseRequest.setLanguageId("en"); + actualSubmitCodeExerciseRequest.setSource("Source"); + actualSubmitCodeExerciseRequest.setStudentId("42"); + String actualExerciseId = actualSubmitCodeExerciseRequest.getExerciseId(); + String actualLanguageId = actualSubmitCodeExerciseRequest.getLanguageId(); + String actualSource = actualSubmitCodeExerciseRequest.getSource(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualSubmitCodeExerciseRequest.getStudentId()); + assertEquals("Source", actualSource); + assertEquals("en", actualLanguageId); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link SubmitCodeExerciseRequest#SubmitCodeExerciseRequest(String, String, String, String)} + *
  • {@link SubmitCodeExerciseRequest#setExerciseId(String)} + *
  • {@link SubmitCodeExerciseRequest#setLanguageId(String)} + *
  • {@link SubmitCodeExerciseRequest#setSource(String)} + *
  • {@link SubmitCodeExerciseRequest#setStudentId(String)} + *
  • {@link SubmitCodeExerciseRequest#getExerciseId()} + *
  • {@link SubmitCodeExerciseRequest#getLanguageId()} + *
  • {@link SubmitCodeExerciseRequest#getSource()} + *
  • {@link SubmitCodeExerciseRequest#getStudentId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + SubmitCodeExerciseRequest actualSubmitCodeExerciseRequest = new SubmitCodeExerciseRequest("42", "42", "en", + "Source"); + actualSubmitCodeExerciseRequest.setExerciseId("42"); + actualSubmitCodeExerciseRequest.setLanguageId("en"); + actualSubmitCodeExerciseRequest.setSource("Source"); + actualSubmitCodeExerciseRequest.setStudentId("42"); + String actualExerciseId = actualSubmitCodeExerciseRequest.getExerciseId(); + String actualLanguageId = actualSubmitCodeExerciseRequest.getLanguageId(); + String actualSource = actualSubmitCodeExerciseRequest.getSource(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualSubmitCodeExerciseRequest.getStudentId()); + assertEquals("Source", actualSource); + assertEquals("en", actualLanguageId); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/code/UpdateCodeExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/code/UpdateCodeExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..12234796 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/code/UpdateCodeExerciseRequestDiffblueTest.java @@ -0,0 +1,233 @@ +package com.example.codeE.request.exercise.code; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.common.problem.TestCase; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class UpdateCodeExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateCodeExerciseRequest#UpdateCodeExerciseRequest()} + *
  • {@link UpdateCodeExerciseRequest#setAllowedLanguageIds(List)} + *
  • {@link UpdateCodeExerciseRequest#setDescription(String)} + *
  • {@link UpdateCodeExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateCodeExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateCodeExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateCodeExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateCodeExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateCodeExerciseRequest#setKey(String)} + *
  • {@link UpdateCodeExerciseRequest#setMemoryLimit(Integer)} + *
  • {@link UpdateCodeExerciseRequest#setPoints(Double)} + *
  • {@link UpdateCodeExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateCodeExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateCodeExerciseRequest#setTemplate(String)} + *
  • {@link UpdateCodeExerciseRequest#setTestCases(List)} + *
  • {@link UpdateCodeExerciseRequest#setTimeLimit(Double)} + *
  • {@link UpdateCodeExerciseRequest#setTopicId(String)} + *
  • {@link UpdateCodeExerciseRequest#setType(String)} + *
  • {@link UpdateCodeExerciseRequest#getAllowedLanguageIds()} + *
  • {@link UpdateCodeExerciseRequest#getDescription()} + *
  • {@link UpdateCodeExerciseRequest#getDurationTime()} + *
  • {@link UpdateCodeExerciseRequest#getEndTime()} + *
  • {@link UpdateCodeExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateCodeExerciseRequest#getExerciseId()} + *
  • {@link UpdateCodeExerciseRequest#getExerciseName()} + *
  • {@link UpdateCodeExerciseRequest#getKey()} + *
  • {@link UpdateCodeExerciseRequest#getMemoryLimit()} + *
  • {@link UpdateCodeExerciseRequest#getPoints()} + *
  • {@link UpdateCodeExerciseRequest#getReAttempt()} + *
  • {@link UpdateCodeExerciseRequest#getStartTime()} + *
  • {@link UpdateCodeExerciseRequest#getTemplate()} + *
  • {@link UpdateCodeExerciseRequest#getTestCases()} + *
  • {@link UpdateCodeExerciseRequest#getTimeLimit()} + *
  • {@link UpdateCodeExerciseRequest#getTopicId()} + *
  • {@link UpdateCodeExerciseRequest#getType()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateCodeExerciseRequest actualUpdateCodeExerciseRequest = new UpdateCodeExerciseRequest(); + ArrayList allowedLanguageIds = new ArrayList<>(); + actualUpdateCodeExerciseRequest.setAllowedLanguageIds(allowedLanguageIds); + actualUpdateCodeExerciseRequest.setDescription("The characteristics of someone or something"); + actualUpdateCodeExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateCodeExerciseRequest.setEndTime(endTime); + actualUpdateCodeExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateCodeExerciseRequest.setExerciseId("42"); + actualUpdateCodeExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateCodeExerciseRequest.setKey("Key"); + actualUpdateCodeExerciseRequest.setMemoryLimit(1); + actualUpdateCodeExerciseRequest.setPoints(10.0d); + actualUpdateCodeExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateCodeExerciseRequest.setStartTime(startTime); + actualUpdateCodeExerciseRequest.setTemplate("Template"); + ArrayList testCases = new ArrayList<>(); + actualUpdateCodeExerciseRequest.setTestCases(testCases); + actualUpdateCodeExerciseRequest.setTimeLimit(10.0d); + actualUpdateCodeExerciseRequest.setTopicId("42"); + actualUpdateCodeExerciseRequest.setType("Type"); + List actualAllowedLanguageIds = actualUpdateCodeExerciseRequest.getAllowedLanguageIds(); + String actualDescription = actualUpdateCodeExerciseRequest.getDescription(); + int actualDurationTime = actualUpdateCodeExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateCodeExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateCodeExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateCodeExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateCodeExerciseRequest.getExerciseName(); + String actualKey = actualUpdateCodeExerciseRequest.getKey(); + Integer actualMemoryLimit = actualUpdateCodeExerciseRequest.getMemoryLimit(); + Double actualPoints = actualUpdateCodeExerciseRequest.getPoints(); + int actualReAttempt = actualUpdateCodeExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateCodeExerciseRequest.getStartTime(); + String actualTemplate = actualUpdateCodeExerciseRequest.getTemplate(); + List actualTestCases = actualUpdateCodeExerciseRequest.getTestCases(); + Double actualTimeLimit = actualUpdateCodeExerciseRequest.getTimeLimit(); + String actualTopicId = actualUpdateCodeExerciseRequest.getTopicId(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualTopicId); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Template", actualTemplate); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("Type", actualUpdateCodeExerciseRequest.getType()); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertEquals(1, actualMemoryLimit.intValue()); + assertEquals(10.0d, actualPoints.doubleValue()); + assertEquals(10.0d, actualTimeLimit.doubleValue()); + assertSame(allowedLanguageIds, actualAllowedLanguageIds); + assertSame(testCases, actualTestCases); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateCodeExerciseRequest#UpdateCodeExerciseRequest(String, String, String, String, Date, Date, int, int, String, String, String, Double, Integer, List, Double, String, List)} + *
  • {@link UpdateCodeExerciseRequest#setAllowedLanguageIds(List)} + *
  • {@link UpdateCodeExerciseRequest#setDescription(String)} + *
  • {@link UpdateCodeExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateCodeExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateCodeExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateCodeExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateCodeExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateCodeExerciseRequest#setKey(String)} + *
  • {@link UpdateCodeExerciseRequest#setMemoryLimit(Integer)} + *
  • {@link UpdateCodeExerciseRequest#setPoints(Double)} + *
  • {@link UpdateCodeExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateCodeExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateCodeExerciseRequest#setTemplate(String)} + *
  • {@link UpdateCodeExerciseRequest#setTestCases(List)} + *
  • {@link UpdateCodeExerciseRequest#setTimeLimit(Double)} + *
  • {@link UpdateCodeExerciseRequest#setTopicId(String)} + *
  • {@link UpdateCodeExerciseRequest#setType(String)} + *
  • {@link UpdateCodeExerciseRequest#getAllowedLanguageIds()} + *
  • {@link UpdateCodeExerciseRequest#getDescription()} + *
  • {@link UpdateCodeExerciseRequest#getDurationTime()} + *
  • {@link UpdateCodeExerciseRequest#getEndTime()} + *
  • {@link UpdateCodeExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateCodeExerciseRequest#getExerciseId()} + *
  • {@link UpdateCodeExerciseRequest#getExerciseName()} + *
  • {@link UpdateCodeExerciseRequest#getKey()} + *
  • {@link UpdateCodeExerciseRequest#getMemoryLimit()} + *
  • {@link UpdateCodeExerciseRequest#getPoints()} + *
  • {@link UpdateCodeExerciseRequest#getReAttempt()} + *
  • {@link UpdateCodeExerciseRequest#getStartTime()} + *
  • {@link UpdateCodeExerciseRequest#getTemplate()} + *
  • {@link UpdateCodeExerciseRequest#getTestCases()} + *
  • {@link UpdateCodeExerciseRequest#getTimeLimit()} + *
  • {@link UpdateCodeExerciseRequest#getTopicId()} + *
  • {@link UpdateCodeExerciseRequest#getType()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + ArrayList allowedLanguageIds = new ArrayList<>(); + + // Act + UpdateCodeExerciseRequest actualUpdateCodeExerciseRequest = new UpdateCodeExerciseRequest("42", "42", + "Exercise Name", "Key", startTime, endTime, 1, 1, "Exercise Description", "Type", + "The characteristics of someone or something", 10.0d, 1, allowedLanguageIds, 10.0d, "Template", + new ArrayList<>()); + ArrayList allowedLanguageIds2 = new ArrayList<>(); + actualUpdateCodeExerciseRequest.setAllowedLanguageIds(allowedLanguageIds2); + actualUpdateCodeExerciseRequest.setDescription("The characteristics of someone or something"); + actualUpdateCodeExerciseRequest.setDurationTime(1); + Date endTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateCodeExerciseRequest.setEndTime(endTime2); + actualUpdateCodeExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateCodeExerciseRequest.setExerciseId("42"); + actualUpdateCodeExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateCodeExerciseRequest.setKey("Key"); + actualUpdateCodeExerciseRequest.setMemoryLimit(1); + actualUpdateCodeExerciseRequest.setPoints(10.0d); + actualUpdateCodeExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateCodeExerciseRequest.setStartTime(startTime2); + actualUpdateCodeExerciseRequest.setTemplate("Template"); + ArrayList testCases = new ArrayList<>(); + actualUpdateCodeExerciseRequest.setTestCases(testCases); + actualUpdateCodeExerciseRequest.setTimeLimit(10.0d); + actualUpdateCodeExerciseRequest.setTopicId("42"); + actualUpdateCodeExerciseRequest.setType("Type"); + List actualAllowedLanguageIds = actualUpdateCodeExerciseRequest.getAllowedLanguageIds(); + String actualDescription = actualUpdateCodeExerciseRequest.getDescription(); + int actualDurationTime = actualUpdateCodeExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateCodeExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateCodeExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateCodeExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateCodeExerciseRequest.getExerciseName(); + String actualKey = actualUpdateCodeExerciseRequest.getKey(); + Integer actualMemoryLimit = actualUpdateCodeExerciseRequest.getMemoryLimit(); + Double actualPoints = actualUpdateCodeExerciseRequest.getPoints(); + int actualReAttempt = actualUpdateCodeExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateCodeExerciseRequest.getStartTime(); + String actualTemplate = actualUpdateCodeExerciseRequest.getTemplate(); + List actualTestCases = actualUpdateCodeExerciseRequest.getTestCases(); + Double actualTimeLimit = actualUpdateCodeExerciseRequest.getTimeLimit(); + String actualTopicId = actualUpdateCodeExerciseRequest.getTopicId(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualTopicId); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Template", actualTemplate); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("Type", actualUpdateCodeExerciseRequest.getType()); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertEquals(1, actualMemoryLimit.intValue()); + assertEquals(10.0d, actualPoints.doubleValue()); + assertEquals(10.0d, actualTimeLimit.doubleValue()); + assertEquals(allowedLanguageIds, actualAllowedLanguageIds); + assertEquals(allowedLanguageIds, actualTestCases); + assertSame(allowedLanguageIds2, actualAllowedLanguageIds); + assertSame(testCases, actualTestCases); + assertSame(endTime2, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/essay/CreateEssayExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/essay/CreateEssayExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..0129c59e --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/essay/CreateEssayExerciseRequestDiffblueTest.java @@ -0,0 +1,140 @@ +package com.example.codeE.request.exercise.essay; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class CreateEssayExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateEssayExerciseRequest#CreateEssayExerciseRequest()} + *
  • {@link CreateEssayExerciseRequest#setDurationTime(int)} + *
  • {@link CreateEssayExerciseRequest#setEndTime(Date)} + *
  • {@link CreateEssayExerciseRequest#setExerciseDescription(String)} + *
  • {@link CreateEssayExerciseRequest#setExerciseName(String)} + *
  • {@link CreateEssayExerciseRequest#setKey(String)} + *
  • {@link CreateEssayExerciseRequest#setQuestion(String)} + *
  • {@link CreateEssayExerciseRequest#setReAttempt(int)} + *
  • {@link CreateEssayExerciseRequest#setStartTime(Date)} + *
  • {@link CreateEssayExerciseRequest#setTopicId(String)} + *
  • {@link CreateEssayExerciseRequest#getDurationTime()} + *
  • {@link CreateEssayExerciseRequest#getEndTime()} + *
  • {@link CreateEssayExerciseRequest#getExerciseDescription()} + *
  • {@link CreateEssayExerciseRequest#getExerciseName()} + *
  • {@link CreateEssayExerciseRequest#getKey()} + *
  • {@link CreateEssayExerciseRequest#getQuestion()} + *
  • {@link CreateEssayExerciseRequest#getReAttempt()} + *
  • {@link CreateEssayExerciseRequest#getStartTime()} + *
  • {@link CreateEssayExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateEssayExerciseRequest actualCreateEssayExerciseRequest = new CreateEssayExerciseRequest(); + actualCreateEssayExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateEssayExerciseRequest.setEndTime(endTime); + actualCreateEssayExerciseRequest.setExerciseDescription("Exercise Description"); + actualCreateEssayExerciseRequest.setExerciseName("Exercise Name"); + actualCreateEssayExerciseRequest.setKey("Key"); + actualCreateEssayExerciseRequest.setQuestion("Question"); + actualCreateEssayExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateEssayExerciseRequest.setStartTime(startTime); + actualCreateEssayExerciseRequest.setTopicId("42"); + int actualDurationTime = actualCreateEssayExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateEssayExerciseRequest.getEndTime(); + String actualExerciseDescription = actualCreateEssayExerciseRequest.getExerciseDescription(); + String actualExerciseName = actualCreateEssayExerciseRequest.getExerciseName(); + String actualKey = actualCreateEssayExerciseRequest.getKey(); + String actualQuestion = actualCreateEssayExerciseRequest.getQuestion(); + int actualReAttempt = actualCreateEssayExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateEssayExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualCreateEssayExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateEssayExerciseRequest#CreateEssayExerciseRequest(String, String, String, Date, Date, int, int, String, String)} + *
  • {@link CreateEssayExerciseRequest#setDurationTime(int)} + *
  • {@link CreateEssayExerciseRequest#setEndTime(Date)} + *
  • {@link CreateEssayExerciseRequest#setExerciseDescription(String)} + *
  • {@link CreateEssayExerciseRequest#setExerciseName(String)} + *
  • {@link CreateEssayExerciseRequest#setKey(String)} + *
  • {@link CreateEssayExerciseRequest#setQuestion(String)} + *
  • {@link CreateEssayExerciseRequest#setReAttempt(int)} + *
  • {@link CreateEssayExerciseRequest#setStartTime(Date)} + *
  • {@link CreateEssayExerciseRequest#setTopicId(String)} + *
  • {@link CreateEssayExerciseRequest#getDurationTime()} + *
  • {@link CreateEssayExerciseRequest#getEndTime()} + *
  • {@link CreateEssayExerciseRequest#getExerciseDescription()} + *
  • {@link CreateEssayExerciseRequest#getExerciseName()} + *
  • {@link CreateEssayExerciseRequest#getKey()} + *
  • {@link CreateEssayExerciseRequest#getQuestion()} + *
  • {@link CreateEssayExerciseRequest#getReAttempt()} + *
  • {@link CreateEssayExerciseRequest#getStartTime()} + *
  • {@link CreateEssayExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + CreateEssayExerciseRequest actualCreateEssayExerciseRequest = new CreateEssayExerciseRequest("42", "Exercise Name", + "Key", startTime, Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()), 1, 1, + "Exercise Description", "Question"); + actualCreateEssayExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateEssayExerciseRequest.setEndTime(endTime); + actualCreateEssayExerciseRequest.setExerciseDescription("Exercise Description"); + actualCreateEssayExerciseRequest.setExerciseName("Exercise Name"); + actualCreateEssayExerciseRequest.setKey("Key"); + actualCreateEssayExerciseRequest.setQuestion("Question"); + actualCreateEssayExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateEssayExerciseRequest.setStartTime(startTime2); + actualCreateEssayExerciseRequest.setTopicId("42"); + int actualDurationTime = actualCreateEssayExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateEssayExerciseRequest.getEndTime(); + String actualExerciseDescription = actualCreateEssayExerciseRequest.getExerciseDescription(); + String actualExerciseName = actualCreateEssayExerciseRequest.getExerciseName(); + String actualKey = actualCreateEssayExerciseRequest.getKey(); + String actualQuestion = actualCreateEssayExerciseRequest.getQuestion(); + int actualReAttempt = actualCreateEssayExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateEssayExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualCreateEssayExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/essay/CreateEssaySubmissionRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/essay/CreateEssaySubmissionRequestDiffblueTest.java new file mode 100644 index 00000000..9f53c770 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/essay/CreateEssaySubmissionRequestDiffblueTest.java @@ -0,0 +1,67 @@ +package com.example.codeE.request.exercise.essay; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CreateEssaySubmissionRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateEssaySubmissionRequest#CreateEssaySubmissionRequest()} + *
  • {@link CreateEssaySubmissionRequest#setExerciseId(String)} + *
  • {@link CreateEssaySubmissionRequest#setStudentId(String)} + *
  • {@link CreateEssaySubmissionRequest#setSubmission(String)} + *
  • {@link CreateEssaySubmissionRequest#getExerciseId()} + *
  • {@link CreateEssaySubmissionRequest#getStudentId()} + *
  • {@link CreateEssaySubmissionRequest#getSubmission()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateEssaySubmissionRequest actualCreateEssaySubmissionRequest = new CreateEssaySubmissionRequest(); + actualCreateEssaySubmissionRequest.setExerciseId("42"); + actualCreateEssaySubmissionRequest.setStudentId("42"); + actualCreateEssaySubmissionRequest.setSubmission("Submission"); + String actualExerciseId = actualCreateEssaySubmissionRequest.getExerciseId(); + String actualStudentId = actualCreateEssaySubmissionRequest.getStudentId(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualStudentId); + assertEquals("Submission", actualCreateEssaySubmissionRequest.getSubmission()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateEssaySubmissionRequest#CreateEssaySubmissionRequest(String, String, String)} + *
  • {@link CreateEssaySubmissionRequest#setExerciseId(String)} + *
  • {@link CreateEssaySubmissionRequest#setStudentId(String)} + *
  • {@link CreateEssaySubmissionRequest#setSubmission(String)} + *
  • {@link CreateEssaySubmissionRequest#getExerciseId()} + *
  • {@link CreateEssaySubmissionRequest#getStudentId()} + *
  • {@link CreateEssaySubmissionRequest#getSubmission()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CreateEssaySubmissionRequest actualCreateEssaySubmissionRequest = new CreateEssaySubmissionRequest("42", "42", + "Submission"); + actualCreateEssaySubmissionRequest.setExerciseId("42"); + actualCreateEssaySubmissionRequest.setStudentId("42"); + actualCreateEssaySubmissionRequest.setSubmission("Submission"); + String actualExerciseId = actualCreateEssaySubmissionRequest.getExerciseId(); + String actualStudentId = actualCreateEssaySubmissionRequest.getStudentId(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualStudentId); + assertEquals("Submission", actualCreateEssaySubmissionRequest.getSubmission()); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/essay/EssaySubmissionsResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/essay/EssaySubmissionsResponseDiffblueTest.java new file mode 100644 index 00000000..fcbf62f7 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/essay/EssaySubmissionsResponseDiffblueTest.java @@ -0,0 +1,191 @@ +package com.example.codeE.request.exercise.essay; + +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.EssaySubmission; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.user.User; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class EssaySubmissionsResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link EssaySubmissionsResponse#EssaySubmissionsResponse()} + *
  • {@link EssaySubmissionsResponse#setExercise(Exercise)} + *
  • {@link EssaySubmissionsResponse#setStudent(User)} + *
  • {@link EssaySubmissionsResponse#setSubmissions(EssaySubmission)} + *
  • {@link EssaySubmissionsResponse#getExercise()} + *
  • {@link EssaySubmissionsResponse#getStudent()} + *
  • {@link EssaySubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + EssaySubmissionsResponse actualEssaySubmissionsResponse = new EssaySubmissionsResponse(); + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + actualEssaySubmissionsResponse.setExercise(exercise); + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + actualEssaySubmissionsResponse.setStudent(student); + EssaySubmission submissions = new EssaySubmission(); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setExerciseId("42"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setStudentId("42"); + submissions.setSubmission("Submission"); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + actualEssaySubmissionsResponse.setSubmissions(submissions); + Exercise actualExercise = actualEssaySubmissionsResponse.getExercise(); + User actualStudent = actualEssaySubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(submissions, actualEssaySubmissionsResponse.getSubmissions()); + assertSame(exercise, actualExercise); + assertSame(student, actualStudent); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link EssaySubmissionsResponse#EssaySubmissionsResponse(EssaySubmission, User, Exercise)} + *
  • {@link EssaySubmissionsResponse#setExercise(Exercise)} + *
  • {@link EssaySubmissionsResponse#setStudent(User)} + *
  • {@link EssaySubmissionsResponse#setSubmissions(EssaySubmission)} + *
  • {@link EssaySubmissionsResponse#getExercise()} + *
  • {@link EssaySubmissionsResponse#getStudent()} + *
  • {@link EssaySubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + EssaySubmission submissions = new EssaySubmission(); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setExerciseId("42"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setStudentId("42"); + submissions.setSubmission("Submission"); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act + EssaySubmissionsResponse actualEssaySubmissionsResponse = new EssaySubmissionsResponse(submissions, student, + exercise); + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + actualEssaySubmissionsResponse.setExercise(exercise2); + User student2 = new User(); + student2.setCourseStudents(new ArrayList<>()); + student2.setCourseTeachers(new ArrayList<>()); + student2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setEmail("jane.doe@example.org"); + student2.setGroupStudents(new ArrayList<>()); + student2.setName("Name"); + student2.setPassword("iloveyou"); + student2.setRole("Role"); + student2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setUserId("42"); + student2.setUsername("janedoe"); + actualEssaySubmissionsResponse.setStudent(student2); + EssaySubmission submissions2 = new EssaySubmission(); + submissions2.setDateGrade("2020-03-01"); + submissions2.setDateSubmit("2020-03-01"); + submissions2.setExerciseId("42"); + submissions2.setReviewable(true); + submissions2.setScore(10.0f); + submissions2.setStudentId("42"); + submissions2.setSubmission("Submission"); + submissions2.setSubmissionId("42"); + submissions2.setTeacherComment("Teacher Comment"); + actualEssaySubmissionsResponse.setSubmissions(submissions2); + Exercise actualExercise = actualEssaySubmissionsResponse.getExercise(); + User actualStudent = actualEssaySubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(submissions2, actualEssaySubmissionsResponse.getSubmissions()); + assertSame(exercise2, actualExercise); + assertSame(student2, actualStudent); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/essay/UpdateEssayExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/essay/UpdateEssayExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..21b87c94 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/essay/UpdateEssayExerciseRequestDiffblueTest.java @@ -0,0 +1,151 @@ +package com.example.codeE.request.exercise.essay; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class UpdateEssayExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateEssayExerciseRequest#UpdateEssayExerciseRequest()} + *
  • {@link UpdateEssayExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateEssayExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateEssayExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateEssayExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateEssayExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateEssayExerciseRequest#setKey(String)} + *
  • {@link UpdateEssayExerciseRequest#setQuestion(String)} + *
  • {@link UpdateEssayExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateEssayExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateEssayExerciseRequest#setTopicId(String)} + *
  • {@link UpdateEssayExerciseRequest#getDurationTime()} + *
  • {@link UpdateEssayExerciseRequest#getEndTime()} + *
  • {@link UpdateEssayExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateEssayExerciseRequest#getExerciseId()} + *
  • {@link UpdateEssayExerciseRequest#getExerciseName()} + *
  • {@link UpdateEssayExerciseRequest#getKey()} + *
  • {@link UpdateEssayExerciseRequest#getQuestion()} + *
  • {@link UpdateEssayExerciseRequest#getReAttempt()} + *
  • {@link UpdateEssayExerciseRequest#getStartTime()} + *
  • {@link UpdateEssayExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateEssayExerciseRequest actualUpdateEssayExerciseRequest = new UpdateEssayExerciseRequest(); + actualUpdateEssayExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateEssayExerciseRequest.setEndTime(endTime); + actualUpdateEssayExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateEssayExerciseRequest.setExerciseId("42"); + actualUpdateEssayExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateEssayExerciseRequest.setKey("Key"); + actualUpdateEssayExerciseRequest.setQuestion("Question"); + actualUpdateEssayExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateEssayExerciseRequest.setStartTime(startTime); + actualUpdateEssayExerciseRequest.setTopicId("42"); + int actualDurationTime = actualUpdateEssayExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateEssayExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateEssayExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateEssayExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateEssayExerciseRequest.getExerciseName(); + String actualKey = actualUpdateEssayExerciseRequest.getKey(); + String actualQuestion = actualUpdateEssayExerciseRequest.getQuestion(); + int actualReAttempt = actualUpdateEssayExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateEssayExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualUpdateEssayExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateEssayExerciseRequest#UpdateEssayExerciseRequest(String, String, String, String, Date, Date, int, int, String, String)} + *
  • {@link UpdateEssayExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateEssayExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateEssayExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateEssayExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateEssayExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateEssayExerciseRequest#setKey(String)} + *
  • {@link UpdateEssayExerciseRequest#setQuestion(String)} + *
  • {@link UpdateEssayExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateEssayExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateEssayExerciseRequest#setTopicId(String)} + *
  • {@link UpdateEssayExerciseRequest#getDurationTime()} + *
  • {@link UpdateEssayExerciseRequest#getEndTime()} + *
  • {@link UpdateEssayExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateEssayExerciseRequest#getExerciseId()} + *
  • {@link UpdateEssayExerciseRequest#getExerciseName()} + *
  • {@link UpdateEssayExerciseRequest#getKey()} + *
  • {@link UpdateEssayExerciseRequest#getQuestion()} + *
  • {@link UpdateEssayExerciseRequest#getReAttempt()} + *
  • {@link UpdateEssayExerciseRequest#getStartTime()} + *
  • {@link UpdateEssayExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + UpdateEssayExerciseRequest actualUpdateEssayExerciseRequest = new UpdateEssayExerciseRequest("42", "42", + "Exercise Name", "Key", startTime, + Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()), 1, 1, + "Exercise Description", "Question"); + actualUpdateEssayExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateEssayExerciseRequest.setEndTime(endTime); + actualUpdateEssayExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateEssayExerciseRequest.setExerciseId("42"); + actualUpdateEssayExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateEssayExerciseRequest.setKey("Key"); + actualUpdateEssayExerciseRequest.setQuestion("Question"); + actualUpdateEssayExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateEssayExerciseRequest.setStartTime(startTime2); + actualUpdateEssayExerciseRequest.setTopicId("42"); + int actualDurationTime = actualUpdateEssayExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateEssayExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateEssayExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateEssayExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateEssayExerciseRequest.getExerciseName(); + String actualKey = actualUpdateEssayExerciseRequest.getKey(); + String actualQuestion = actualUpdateEssayExerciseRequest.getQuestion(); + int actualReAttempt = actualUpdateEssayExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateEssayExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualUpdateEssayExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/file/CreateFileExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/file/CreateFileExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..3d623bd0 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/file/CreateFileExerciseRequestDiffblueTest.java @@ -0,0 +1,140 @@ +package com.example.codeE.request.exercise.file; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class CreateFileExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateFileExerciseRequest#CreateFileExerciseRequest()} + *
  • {@link CreateFileExerciseRequest#setDurationTime(int)} + *
  • {@link CreateFileExerciseRequest#setEndTime(Date)} + *
  • {@link CreateFileExerciseRequest#setExerciseDescription(String)} + *
  • {@link CreateFileExerciseRequest#setExerciseName(String)} + *
  • {@link CreateFileExerciseRequest#setKey(String)} + *
  • {@link CreateFileExerciseRequest#setQuestion(String)} + *
  • {@link CreateFileExerciseRequest#setReAttempt(int)} + *
  • {@link CreateFileExerciseRequest#setStartTime(Date)} + *
  • {@link CreateFileExerciseRequest#setTopicId(String)} + *
  • {@link CreateFileExerciseRequest#getDurationTime()} + *
  • {@link CreateFileExerciseRequest#getEndTime()} + *
  • {@link CreateFileExerciseRequest#getExerciseDescription()} + *
  • {@link CreateFileExerciseRequest#getExerciseName()} + *
  • {@link CreateFileExerciseRequest#getKey()} + *
  • {@link CreateFileExerciseRequest#getQuestion()} + *
  • {@link CreateFileExerciseRequest#getReAttempt()} + *
  • {@link CreateFileExerciseRequest#getStartTime()} + *
  • {@link CreateFileExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateFileExerciseRequest actualCreateFileExerciseRequest = new CreateFileExerciseRequest(); + actualCreateFileExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateFileExerciseRequest.setEndTime(endTime); + actualCreateFileExerciseRequest.setExerciseDescription("Exercise Description"); + actualCreateFileExerciseRequest.setExerciseName("Exercise Name"); + actualCreateFileExerciseRequest.setKey("Key"); + actualCreateFileExerciseRequest.setQuestion("Question"); + actualCreateFileExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateFileExerciseRequest.setStartTime(startTime); + actualCreateFileExerciseRequest.setTopicId("42"); + int actualDurationTime = actualCreateFileExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateFileExerciseRequest.getEndTime(); + String actualExerciseDescription = actualCreateFileExerciseRequest.getExerciseDescription(); + String actualExerciseName = actualCreateFileExerciseRequest.getExerciseName(); + String actualKey = actualCreateFileExerciseRequest.getKey(); + String actualQuestion = actualCreateFileExerciseRequest.getQuestion(); + int actualReAttempt = actualCreateFileExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateFileExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualCreateFileExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateFileExerciseRequest#CreateFileExerciseRequest(String, String, String, Date, Date, int, int, String, String)} + *
  • {@link CreateFileExerciseRequest#setDurationTime(int)} + *
  • {@link CreateFileExerciseRequest#setEndTime(Date)} + *
  • {@link CreateFileExerciseRequest#setExerciseDescription(String)} + *
  • {@link CreateFileExerciseRequest#setExerciseName(String)} + *
  • {@link CreateFileExerciseRequest#setKey(String)} + *
  • {@link CreateFileExerciseRequest#setQuestion(String)} + *
  • {@link CreateFileExerciseRequest#setReAttempt(int)} + *
  • {@link CreateFileExerciseRequest#setStartTime(Date)} + *
  • {@link CreateFileExerciseRequest#setTopicId(String)} + *
  • {@link CreateFileExerciseRequest#getDurationTime()} + *
  • {@link CreateFileExerciseRequest#getEndTime()} + *
  • {@link CreateFileExerciseRequest#getExerciseDescription()} + *
  • {@link CreateFileExerciseRequest#getExerciseName()} + *
  • {@link CreateFileExerciseRequest#getKey()} + *
  • {@link CreateFileExerciseRequest#getQuestion()} + *
  • {@link CreateFileExerciseRequest#getReAttempt()} + *
  • {@link CreateFileExerciseRequest#getStartTime()} + *
  • {@link CreateFileExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + CreateFileExerciseRequest actualCreateFileExerciseRequest = new CreateFileExerciseRequest("42", "Exercise Name", + "Key", startTime, Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()), 1, 1, + "Exercise Description", "Question"); + actualCreateFileExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateFileExerciseRequest.setEndTime(endTime); + actualCreateFileExerciseRequest.setExerciseDescription("Exercise Description"); + actualCreateFileExerciseRequest.setExerciseName("Exercise Name"); + actualCreateFileExerciseRequest.setKey("Key"); + actualCreateFileExerciseRequest.setQuestion("Question"); + actualCreateFileExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateFileExerciseRequest.setStartTime(startTime2); + actualCreateFileExerciseRequest.setTopicId("42"); + int actualDurationTime = actualCreateFileExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateFileExerciseRequest.getEndTime(); + String actualExerciseDescription = actualCreateFileExerciseRequest.getExerciseDescription(); + String actualExerciseName = actualCreateFileExerciseRequest.getExerciseName(); + String actualKey = actualCreateFileExerciseRequest.getKey(); + String actualQuestion = actualCreateFileExerciseRequest.getQuestion(); + int actualReAttempt = actualCreateFileExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateFileExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualCreateFileExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/file/CreateFileSubmissionRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/file/CreateFileSubmissionRequestDiffblueTest.java new file mode 100644 index 00000000..cb961412 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/file/CreateFileSubmissionRequestDiffblueTest.java @@ -0,0 +1,67 @@ +package com.example.codeE.request.exercise.file; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CreateFileSubmissionRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateFileSubmissionRequest#CreateFileSubmissionRequest()} + *
  • {@link CreateFileSubmissionRequest#setExerciseId(String)} + *
  • {@link CreateFileSubmissionRequest#setStudentId(String)} + *
  • {@link CreateFileSubmissionRequest#setUrl(String)} + *
  • {@link CreateFileSubmissionRequest#getExerciseId()} + *
  • {@link CreateFileSubmissionRequest#getStudentId()} + *
  • {@link CreateFileSubmissionRequest#getUrl()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateFileSubmissionRequest actualCreateFileSubmissionRequest = new CreateFileSubmissionRequest(); + actualCreateFileSubmissionRequest.setExerciseId("42"); + actualCreateFileSubmissionRequest.setStudentId("42"); + actualCreateFileSubmissionRequest.setUrl("https://example.org/example"); + String actualExerciseId = actualCreateFileSubmissionRequest.getExerciseId(); + String actualStudentId = actualCreateFileSubmissionRequest.getStudentId(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualStudentId); + assertEquals("https://example.org/example", actualCreateFileSubmissionRequest.getUrl()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateFileSubmissionRequest#CreateFileSubmissionRequest(String, String, String)} + *
  • {@link CreateFileSubmissionRequest#setExerciseId(String)} + *
  • {@link CreateFileSubmissionRequest#setStudentId(String)} + *
  • {@link CreateFileSubmissionRequest#setUrl(String)} + *
  • {@link CreateFileSubmissionRequest#getExerciseId()} + *
  • {@link CreateFileSubmissionRequest#getStudentId()} + *
  • {@link CreateFileSubmissionRequest#getUrl()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CreateFileSubmissionRequest actualCreateFileSubmissionRequest = new CreateFileSubmissionRequest("42", "42", + "https://example.org/example"); + actualCreateFileSubmissionRequest.setExerciseId("42"); + actualCreateFileSubmissionRequest.setStudentId("42"); + actualCreateFileSubmissionRequest.setUrl("https://example.org/example"); + String actualExerciseId = actualCreateFileSubmissionRequest.getExerciseId(); + String actualStudentId = actualCreateFileSubmissionRequest.getStudentId(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualStudentId); + assertEquals("https://example.org/example", actualCreateFileSubmissionRequest.getUrl()); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/file/UpdateFileExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/file/UpdateFileExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..c49e905d --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/file/UpdateFileExerciseRequestDiffblueTest.java @@ -0,0 +1,151 @@ +package com.example.codeE.request.exercise.file; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class UpdateFileExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateFileExerciseRequest#UpdateFileExerciseRequest()} + *
  • {@link UpdateFileExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateFileExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateFileExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateFileExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateFileExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateFileExerciseRequest#setKey(String)} + *
  • {@link UpdateFileExerciseRequest#setQuestion(String)} + *
  • {@link UpdateFileExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateFileExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateFileExerciseRequest#setTopicId(String)} + *
  • {@link UpdateFileExerciseRequest#getDurationTime()} + *
  • {@link UpdateFileExerciseRequest#getEndTime()} + *
  • {@link UpdateFileExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateFileExerciseRequest#getExerciseId()} + *
  • {@link UpdateFileExerciseRequest#getExerciseName()} + *
  • {@link UpdateFileExerciseRequest#getKey()} + *
  • {@link UpdateFileExerciseRequest#getQuestion()} + *
  • {@link UpdateFileExerciseRequest#getReAttempt()} + *
  • {@link UpdateFileExerciseRequest#getStartTime()} + *
  • {@link UpdateFileExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateFileExerciseRequest actualUpdateFileExerciseRequest = new UpdateFileExerciseRequest(); + actualUpdateFileExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateFileExerciseRequest.setEndTime(endTime); + actualUpdateFileExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateFileExerciseRequest.setExerciseId("42"); + actualUpdateFileExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateFileExerciseRequest.setKey("Key"); + actualUpdateFileExerciseRequest.setQuestion("Question"); + actualUpdateFileExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateFileExerciseRequest.setStartTime(startTime); + actualUpdateFileExerciseRequest.setTopicId("42"); + int actualDurationTime = actualUpdateFileExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateFileExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateFileExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateFileExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateFileExerciseRequest.getExerciseName(); + String actualKey = actualUpdateFileExerciseRequest.getKey(); + String actualQuestion = actualUpdateFileExerciseRequest.getQuestion(); + int actualReAttempt = actualUpdateFileExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateFileExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualUpdateFileExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateFileExerciseRequest#UpdateFileExerciseRequest(String, String, String, String, Date, Date, int, int, String, String)} + *
  • {@link UpdateFileExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateFileExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateFileExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateFileExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateFileExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateFileExerciseRequest#setKey(String)} + *
  • {@link UpdateFileExerciseRequest#setQuestion(String)} + *
  • {@link UpdateFileExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateFileExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateFileExerciseRequest#setTopicId(String)} + *
  • {@link UpdateFileExerciseRequest#getDurationTime()} + *
  • {@link UpdateFileExerciseRequest#getEndTime()} + *
  • {@link UpdateFileExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateFileExerciseRequest#getExerciseId()} + *
  • {@link UpdateFileExerciseRequest#getExerciseName()} + *
  • {@link UpdateFileExerciseRequest#getKey()} + *
  • {@link UpdateFileExerciseRequest#getQuestion()} + *
  • {@link UpdateFileExerciseRequest#getReAttempt()} + *
  • {@link UpdateFileExerciseRequest#getStartTime()} + *
  • {@link UpdateFileExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + UpdateFileExerciseRequest actualUpdateFileExerciseRequest = new UpdateFileExerciseRequest("42", "42", + "Exercise Name", "Key", startTime, + Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()), 1, 1, + "Exercise Description", "Question"); + actualUpdateFileExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateFileExerciseRequest.setEndTime(endTime); + actualUpdateFileExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateFileExerciseRequest.setExerciseId("42"); + actualUpdateFileExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateFileExerciseRequest.setKey("Key"); + actualUpdateFileExerciseRequest.setQuestion("Question"); + actualUpdateFileExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateFileExerciseRequest.setStartTime(startTime2); + actualUpdateFileExerciseRequest.setTopicId("42"); + int actualDurationTime = actualUpdateFileExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateFileExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateFileExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateFileExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateFileExerciseRequest.getExerciseName(); + String actualKey = actualUpdateFileExerciseRequest.getKey(); + String actualQuestion = actualUpdateFileExerciseRequest.getQuestion(); + int actualReAttempt = actualUpdateFileExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateFileExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualUpdateFileExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals("Question", actualQuestion); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(endTime, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/file/response/FileSubmissionsResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/file/response/FileSubmissionsResponseDiffblueTest.java new file mode 100644 index 00000000..8e55e71f --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/file/response/FileSubmissionsResponseDiffblueTest.java @@ -0,0 +1,190 @@ +package com.example.codeE.request.exercise.file.response; + +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.exercise.FileSubmission; +import com.example.codeE.model.user.User; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class FileSubmissionsResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link FileSubmissionsResponse#FileSubmissionsResponse()} + *
  • {@link FileSubmissionsResponse#setExercise(Exercise)} + *
  • {@link FileSubmissionsResponse#setStudent(User)} + *
  • {@link FileSubmissionsResponse#setSubmissions(FileSubmission)} + *
  • {@link FileSubmissionsResponse#getExercise()} + *
  • {@link FileSubmissionsResponse#getStudent()} + *
  • {@link FileSubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + FileSubmissionsResponse actualFileSubmissionsResponse = new FileSubmissionsResponse(); + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + actualFileSubmissionsResponse.setExercise(exercise); + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + actualFileSubmissionsResponse.setStudent(student); + FileSubmission submissions = new FileSubmission(); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setExerciseId("42"); + submissions.setFileUrl("https://example.org/example"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setStudentId("42"); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + actualFileSubmissionsResponse.setSubmissions(submissions); + Exercise actualExercise = actualFileSubmissionsResponse.getExercise(); + User actualStudent = actualFileSubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(exercise, actualExercise); + assertSame(submissions, actualFileSubmissionsResponse.getSubmissions()); + assertSame(student, actualStudent); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link FileSubmissionsResponse#FileSubmissionsResponse(FileSubmission, User, Exercise)} + *
  • {@link FileSubmissionsResponse#setExercise(Exercise)} + *
  • {@link FileSubmissionsResponse#setStudent(User)} + *
  • {@link FileSubmissionsResponse#setSubmissions(FileSubmission)} + *
  • {@link FileSubmissionsResponse#getExercise()} + *
  • {@link FileSubmissionsResponse#getStudent()} + *
  • {@link FileSubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + FileSubmission submissions = new FileSubmission(); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setExerciseId("42"); + submissions.setFileUrl("https://example.org/example"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setStudentId("42"); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act + FileSubmissionsResponse actualFileSubmissionsResponse = new FileSubmissionsResponse(submissions, student, exercise); + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + actualFileSubmissionsResponse.setExercise(exercise2); + User student2 = new User(); + student2.setCourseStudents(new ArrayList<>()); + student2.setCourseTeachers(new ArrayList<>()); + student2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setEmail("jane.doe@example.org"); + student2.setGroupStudents(new ArrayList<>()); + student2.setName("Name"); + student2.setPassword("iloveyou"); + student2.setRole("Role"); + student2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setUserId("42"); + student2.setUsername("janedoe"); + actualFileSubmissionsResponse.setStudent(student2); + FileSubmission submissions2 = new FileSubmission(); + submissions2.setDateGrade("2020-03-01"); + submissions2.setDateSubmit("2020-03-01"); + submissions2.setExerciseId("42"); + submissions2.setFileUrl("https://example.org/example"); + submissions2.setReviewable(true); + submissions2.setScore(10.0f); + submissions2.setStudentId("42"); + submissions2.setSubmissionId("42"); + submissions2.setTeacherComment("Teacher Comment"); + actualFileSubmissionsResponse.setSubmissions(submissions2); + Exercise actualExercise = actualFileSubmissionsResponse.getExercise(); + User actualStudent = actualFileSubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(exercise2, actualExercise); + assertSame(submissions2, actualFileSubmissionsResponse.getSubmissions()); + assertSame(student2, actualStudent); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..ca3ad992 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizExerciseRequestDiffblueTest.java @@ -0,0 +1,148 @@ +package com.example.codeE.request.exercise.quiz; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.common.QuizQuestion; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CreateQuizExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateQuizExerciseRequest#CreateQuizExerciseRequest()} + *
  • {@link CreateQuizExerciseRequest#setDurationTime(int)} + *
  • {@link CreateQuizExerciseRequest#setEndTime(Date)} + *
  • {@link CreateQuizExerciseRequest#setExerciseDescription(String)} + *
  • {@link CreateQuizExerciseRequest#setExerciseName(String)} + *
  • {@link CreateQuizExerciseRequest#setKey(String)} + *
  • {@link CreateQuizExerciseRequest#setQuestions(List)} + *
  • {@link CreateQuizExerciseRequest#setReAttempt(int)} + *
  • {@link CreateQuizExerciseRequest#setStartTime(Date)} + *
  • {@link CreateQuizExerciseRequest#setTopicId(String)} + *
  • {@link CreateQuizExerciseRequest#getDurationTime()} + *
  • {@link CreateQuizExerciseRequest#getEndTime()} + *
  • {@link CreateQuizExerciseRequest#getExerciseDescription()} + *
  • {@link CreateQuizExerciseRequest#getExerciseName()} + *
  • {@link CreateQuizExerciseRequest#getKey()} + *
  • {@link CreateQuizExerciseRequest#getQuestions()} + *
  • {@link CreateQuizExerciseRequest#getReAttempt()} + *
  • {@link CreateQuizExerciseRequest#getStartTime()} + *
  • {@link CreateQuizExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateQuizExerciseRequest actualCreateQuizExerciseRequest = new CreateQuizExerciseRequest(); + actualCreateQuizExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateQuizExerciseRequest.setEndTime(endTime); + actualCreateQuizExerciseRequest.setExerciseDescription("Exercise Description"); + actualCreateQuizExerciseRequest.setExerciseName("Exercise Name"); + actualCreateQuizExerciseRequest.setKey("Key"); + ArrayList questions = new ArrayList<>(); + actualCreateQuizExerciseRequest.setQuestions(questions); + actualCreateQuizExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateQuizExerciseRequest.setStartTime(startTime); + actualCreateQuizExerciseRequest.setTopicId("42"); + int actualDurationTime = actualCreateQuizExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateQuizExerciseRequest.getEndTime(); + String actualExerciseDescription = actualCreateQuizExerciseRequest.getExerciseDescription(); + String actualExerciseName = actualCreateQuizExerciseRequest.getExerciseName(); + String actualKey = actualCreateQuizExerciseRequest.getKey(); + List actualQuestions = actualCreateQuizExerciseRequest.getQuestions(); + int actualReAttempt = actualCreateQuizExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateQuizExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualCreateQuizExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(questions, actualQuestions); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateQuizExerciseRequest#CreateQuizExerciseRequest(String, String, String, Date, Date, int, int, String, List)} + *
  • {@link CreateQuizExerciseRequest#setDurationTime(int)} + *
  • {@link CreateQuizExerciseRequest#setEndTime(Date)} + *
  • {@link CreateQuizExerciseRequest#setExerciseDescription(String)} + *
  • {@link CreateQuizExerciseRequest#setExerciseName(String)} + *
  • {@link CreateQuizExerciseRequest#setKey(String)} + *
  • {@link CreateQuizExerciseRequest#setQuestions(List)} + *
  • {@link CreateQuizExerciseRequest#setReAttempt(int)} + *
  • {@link CreateQuizExerciseRequest#setStartTime(Date)} + *
  • {@link CreateQuizExerciseRequest#setTopicId(String)} + *
  • {@link CreateQuizExerciseRequest#getDurationTime()} + *
  • {@link CreateQuizExerciseRequest#getEndTime()} + *
  • {@link CreateQuizExerciseRequest#getExerciseDescription()} + *
  • {@link CreateQuizExerciseRequest#getExerciseName()} + *
  • {@link CreateQuizExerciseRequest#getKey()} + *
  • {@link CreateQuizExerciseRequest#getQuestions()} + *
  • {@link CreateQuizExerciseRequest#getReAttempt()} + *
  • {@link CreateQuizExerciseRequest#getStartTime()} + *
  • {@link CreateQuizExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + ArrayList questions = new ArrayList<>(); + + // Act + CreateQuizExerciseRequest actualCreateQuizExerciseRequest = new CreateQuizExerciseRequest("42", "Exercise Name", + "Key", startTime, endTime, 1, 1, "Exercise Description", questions); + actualCreateQuizExerciseRequest.setDurationTime(1); + Date endTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateQuizExerciseRequest.setEndTime(endTime2); + actualCreateQuizExerciseRequest.setExerciseDescription("Exercise Description"); + actualCreateQuizExerciseRequest.setExerciseName("Exercise Name"); + actualCreateQuizExerciseRequest.setKey("Key"); + ArrayList questions2 = new ArrayList<>(); + actualCreateQuizExerciseRequest.setQuestions(questions2); + actualCreateQuizExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualCreateQuizExerciseRequest.setStartTime(startTime2); + actualCreateQuizExerciseRequest.setTopicId("42"); + int actualDurationTime = actualCreateQuizExerciseRequest.getDurationTime(); + Date actualEndTime = actualCreateQuizExerciseRequest.getEndTime(); + String actualExerciseDescription = actualCreateQuizExerciseRequest.getExerciseDescription(); + String actualExerciseName = actualCreateQuizExerciseRequest.getExerciseName(); + String actualKey = actualCreateQuizExerciseRequest.getKey(); + List actualQuestions = actualCreateQuizExerciseRequest.getQuestions(); + int actualReAttempt = actualCreateQuizExerciseRequest.getReAttempt(); + Date actualStartTime = actualCreateQuizExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualCreateQuizExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertEquals(questions, actualQuestions); + assertSame(questions2, actualQuestions); + assertSame(endTime2, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizSubmissionRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizSubmissionRequestDiffblueTest.java new file mode 100644 index 00000000..7bf16219 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/quiz/CreateQuizSubmissionRequestDiffblueTest.java @@ -0,0 +1,89 @@ +package com.example.codeE.request.exercise.quiz; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.common.QuizAnswers; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CreateQuizSubmissionRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateQuizSubmissionRequest#CreateQuizSubmissionRequest()} + *
  • {@link CreateQuizSubmissionRequest#setExerciseId(String)} + *
  • {@link CreateQuizSubmissionRequest#setStudentId(String)} + *
  • {@link CreateQuizSubmissionRequest#setSubmission(List)} + *
  • {@link CreateQuizSubmissionRequest#setTeacherComment(String)} + *
  • {@link CreateQuizSubmissionRequest#getExerciseId()} + *
  • {@link CreateQuizSubmissionRequest#getStudentId()} + *
  • {@link CreateQuizSubmissionRequest#getSubmission()} + *
  • {@link CreateQuizSubmissionRequest#getTeacherComment()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateQuizSubmissionRequest actualCreateQuizSubmissionRequest = new CreateQuizSubmissionRequest(); + actualCreateQuizSubmissionRequest.setExerciseId("42"); + actualCreateQuizSubmissionRequest.setStudentId("42"); + ArrayList submission = new ArrayList<>(); + actualCreateQuizSubmissionRequest.setSubmission(submission); + actualCreateQuizSubmissionRequest.setTeacherComment("Teacher Comment"); + String actualExerciseId = actualCreateQuizSubmissionRequest.getExerciseId(); + String actualStudentId = actualCreateQuizSubmissionRequest.getStudentId(); + List actualSubmission = actualCreateQuizSubmissionRequest.getSubmission(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualStudentId); + assertEquals("Teacher Comment", actualCreateQuizSubmissionRequest.getTeacherComment()); + assertSame(submission, actualSubmission); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateQuizSubmissionRequest#CreateQuizSubmissionRequest(String, String, List, String)} + *
  • {@link CreateQuizSubmissionRequest#setExerciseId(String)} + *
  • {@link CreateQuizSubmissionRequest#setStudentId(String)} + *
  • {@link CreateQuizSubmissionRequest#setSubmission(List)} + *
  • {@link CreateQuizSubmissionRequest#setTeacherComment(String)} + *
  • {@link CreateQuizSubmissionRequest#getExerciseId()} + *
  • {@link CreateQuizSubmissionRequest#getStudentId()} + *
  • {@link CreateQuizSubmissionRequest#getSubmission()} + *
  • {@link CreateQuizSubmissionRequest#getTeacherComment()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList submission = new ArrayList<>(); + + // Act + CreateQuizSubmissionRequest actualCreateQuizSubmissionRequest = new CreateQuizSubmissionRequest("42", "42", + submission, "Teacher Comment"); + actualCreateQuizSubmissionRequest.setExerciseId("42"); + actualCreateQuizSubmissionRequest.setStudentId("42"); + ArrayList submission2 = new ArrayList<>(); + actualCreateQuizSubmissionRequest.setSubmission(submission2); + actualCreateQuizSubmissionRequest.setTeacherComment("Teacher Comment"); + String actualExerciseId = actualCreateQuizSubmissionRequest.getExerciseId(); + String actualStudentId = actualCreateQuizSubmissionRequest.getStudentId(); + List actualSubmission = actualCreateQuizSubmissionRequest.getSubmission(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualStudentId); + assertEquals("Teacher Comment", actualCreateQuizSubmissionRequest.getTeacherComment()); + assertEquals(submission, actualSubmission); + assertSame(submission2, actualSubmission); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/quiz/QuizSubmissionsResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/quiz/QuizSubmissionsResponseDiffblueTest.java new file mode 100644 index 00000000..99fbc2d5 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/quiz/QuizSubmissionsResponseDiffblueTest.java @@ -0,0 +1,190 @@ +package com.example.codeE.request.exercise.quiz; + +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.exercise.QuizSubmission; +import com.example.codeE.model.user.User; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; + +import org.junit.jupiter.api.Test; + +class QuizSubmissionsResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link QuizSubmissionsResponse#QuizSubmissionsResponse()} + *
  • {@link QuizSubmissionsResponse#setExercise(Exercise)} + *
  • {@link QuizSubmissionsResponse#setStudent(User)} + *
  • {@link QuizSubmissionsResponse#setSubmissions(QuizSubmission)} + *
  • {@link QuizSubmissionsResponse#getExercise()} + *
  • {@link QuizSubmissionsResponse#getStudent()} + *
  • {@link QuizSubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + QuizSubmissionsResponse actualQuizSubmissionsResponse = new QuizSubmissionsResponse(); + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + actualQuizSubmissionsResponse.setExercise(exercise); + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + actualQuizSubmissionsResponse.setStudent(student); + QuizSubmission submissions = new QuizSubmission(); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setExerciseId("42"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setStudentId("42"); + submissions.setSubmission(new ArrayList<>()); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + actualQuizSubmissionsResponse.setSubmissions(submissions); + Exercise actualExercise = actualQuizSubmissionsResponse.getExercise(); + User actualStudent = actualQuizSubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(exercise, actualExercise); + assertSame(submissions, actualQuizSubmissionsResponse.getSubmissions()); + assertSame(student, actualStudent); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link QuizSubmissionsResponse#QuizSubmissionsResponse(QuizSubmission, User, Exercise)} + *
  • {@link QuizSubmissionsResponse#setExercise(Exercise)} + *
  • {@link QuizSubmissionsResponse#setStudent(User)} + *
  • {@link QuizSubmissionsResponse#setSubmissions(QuizSubmission)} + *
  • {@link QuizSubmissionsResponse#getExercise()} + *
  • {@link QuizSubmissionsResponse#getStudent()} + *
  • {@link QuizSubmissionsResponse#getSubmissions()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + QuizSubmission submissions = new QuizSubmission(); + submissions.setDateGrade("2020-03-01"); + submissions.setDateSubmit("2020-03-01"); + submissions.setExerciseId("42"); + submissions.setReviewable(true); + submissions.setScore(10.0f); + submissions.setStudentId("42"); + submissions.setSubmission(new ArrayList<>()); + submissions.setSubmissionId("42"); + submissions.setTeacherComment("Teacher Comment"); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act + QuizSubmissionsResponse actualQuizSubmissionsResponse = new QuizSubmissionsResponse(submissions, student, exercise); + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + actualQuizSubmissionsResponse.setExercise(exercise2); + User student2 = new User(); + student2.setCourseStudents(new ArrayList<>()); + student2.setCourseTeachers(new ArrayList<>()); + student2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setEmail("jane.doe@example.org"); + student2.setGroupStudents(new ArrayList<>()); + student2.setName("Name"); + student2.setPassword("iloveyou"); + student2.setRole("Role"); + student2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student2.setUserId("42"); + student2.setUsername("janedoe"); + actualQuizSubmissionsResponse.setStudent(student2); + QuizSubmission submissions2 = new QuizSubmission(); + submissions2.setDateGrade("2020-03-01"); + submissions2.setDateSubmit("2020-03-01"); + submissions2.setExerciseId("42"); + submissions2.setReviewable(true); + submissions2.setScore(10.0f); + submissions2.setStudentId("42"); + submissions2.setSubmission(new ArrayList<>()); + submissions2.setSubmissionId("42"); + submissions2.setTeacherComment("Teacher Comment"); + actualQuizSubmissionsResponse.setSubmissions(submissions2); + Exercise actualExercise = actualQuizSubmissionsResponse.getExercise(); + User actualStudent = actualQuizSubmissionsResponse.getStudent(); + + // Assert that nothing has changed + assertSame(exercise2, actualExercise); + assertSame(submissions2, actualQuizSubmissionsResponse.getSubmissions()); + assertSame(student2, actualStudent); + } +} diff --git a/src/test/java/com/example/codeE/request/exercise/quiz/UpdateQuizExerciseRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/exercise/quiz/UpdateQuizExerciseRequestDiffblueTest.java new file mode 100644 index 00000000..3a55dce7 --- /dev/null +++ b/src/test/java/com/example/codeE/request/exercise/quiz/UpdateQuizExerciseRequestDiffblueTest.java @@ -0,0 +1,158 @@ +package com.example.codeE.request.exercise.quiz; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.exercise.common.QuizQuestion; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class UpdateQuizExerciseRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateQuizExerciseRequest#UpdateQuizExerciseRequest()} + *
  • {@link UpdateQuizExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateQuizExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateQuizExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateQuizExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateQuizExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateQuizExerciseRequest#setKey(String)} + *
  • {@link UpdateQuizExerciseRequest#setQuestions(List)} + *
  • {@link UpdateQuizExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateQuizExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateQuizExerciseRequest#setTopicId(String)} + *
  • {@link UpdateQuizExerciseRequest#getDurationTime()} + *
  • {@link UpdateQuizExerciseRequest#getEndTime()} + *
  • {@link UpdateQuizExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateQuizExerciseRequest#getExerciseId()} + *
  • {@link UpdateQuizExerciseRequest#getExerciseName()} + *
  • {@link UpdateQuizExerciseRequest#getKey()} + *
  • {@link UpdateQuizExerciseRequest#getQuestions()} + *
  • {@link UpdateQuizExerciseRequest#getReAttempt()} + *
  • {@link UpdateQuizExerciseRequest#getStartTime()} + *
  • {@link UpdateQuizExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateQuizExerciseRequest actualUpdateQuizExerciseRequest = new UpdateQuizExerciseRequest(); + actualUpdateQuizExerciseRequest.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateQuizExerciseRequest.setEndTime(endTime); + actualUpdateQuizExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateQuizExerciseRequest.setExerciseId("42"); + actualUpdateQuizExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateQuizExerciseRequest.setKey("Key"); + ArrayList questions = new ArrayList<>(); + actualUpdateQuizExerciseRequest.setQuestions(questions); + actualUpdateQuizExerciseRequest.setReAttempt(1); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateQuizExerciseRequest.setStartTime(startTime); + actualUpdateQuizExerciseRequest.setTopicId("42"); + int actualDurationTime = actualUpdateQuizExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateQuizExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateQuizExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateQuizExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateQuizExerciseRequest.getExerciseName(); + String actualKey = actualUpdateQuizExerciseRequest.getKey(); + List actualQuestions = actualUpdateQuizExerciseRequest.getQuestions(); + int actualReAttempt = actualUpdateQuizExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateQuizExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualUpdateQuizExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertSame(questions, actualQuestions); + assertSame(endTime, actualEndTime); + assertSame(startTime, actualStartTime); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateQuizExerciseRequest#UpdateQuizExerciseRequest(String, String, String, String, Date, Date, int, int, String, List)} + *
  • {@link UpdateQuizExerciseRequest#setDurationTime(int)} + *
  • {@link UpdateQuizExerciseRequest#setEndTime(Date)} + *
  • {@link UpdateQuizExerciseRequest#setExerciseDescription(String)} + *
  • {@link UpdateQuizExerciseRequest#setExerciseId(String)} + *
  • {@link UpdateQuizExerciseRequest#setExerciseName(String)} + *
  • {@link UpdateQuizExerciseRequest#setKey(String)} + *
  • {@link UpdateQuizExerciseRequest#setQuestions(List)} + *
  • {@link UpdateQuizExerciseRequest#setReAttempt(int)} + *
  • {@link UpdateQuizExerciseRequest#setStartTime(Date)} + *
  • {@link UpdateQuizExerciseRequest#setTopicId(String)} + *
  • {@link UpdateQuizExerciseRequest#getDurationTime()} + *
  • {@link UpdateQuizExerciseRequest#getEndTime()} + *
  • {@link UpdateQuizExerciseRequest#getExerciseDescription()} + *
  • {@link UpdateQuizExerciseRequest#getExerciseId()} + *
  • {@link UpdateQuizExerciseRequest#getExerciseName()} + *
  • {@link UpdateQuizExerciseRequest#getKey()} + *
  • {@link UpdateQuizExerciseRequest#getQuestions()} + *
  • {@link UpdateQuizExerciseRequest#getReAttempt()} + *
  • {@link UpdateQuizExerciseRequest#getStartTime()} + *
  • {@link UpdateQuizExerciseRequest#getTopicId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + ArrayList questions = new ArrayList<>(); + + // Act + UpdateQuizExerciseRequest actualUpdateQuizExerciseRequest = new UpdateQuizExerciseRequest("42", "42", + "Exercise Name", "Key", startTime, endTime, 1, 1, "Exercise Description", questions); + actualUpdateQuizExerciseRequest.setDurationTime(1); + Date endTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateQuizExerciseRequest.setEndTime(endTime2); + actualUpdateQuizExerciseRequest.setExerciseDescription("Exercise Description"); + actualUpdateQuizExerciseRequest.setExerciseId("42"); + actualUpdateQuizExerciseRequest.setExerciseName("Exercise Name"); + actualUpdateQuizExerciseRequest.setKey("Key"); + ArrayList questions2 = new ArrayList<>(); + actualUpdateQuizExerciseRequest.setQuestions(questions2); + actualUpdateQuizExerciseRequest.setReAttempt(1); + Date startTime2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + actualUpdateQuizExerciseRequest.setStartTime(startTime2); + actualUpdateQuizExerciseRequest.setTopicId("42"); + int actualDurationTime = actualUpdateQuizExerciseRequest.getDurationTime(); + Date actualEndTime = actualUpdateQuizExerciseRequest.getEndTime(); + String actualExerciseDescription = actualUpdateQuizExerciseRequest.getExerciseDescription(); + String actualExerciseId = actualUpdateQuizExerciseRequest.getExerciseId(); + String actualExerciseName = actualUpdateQuizExerciseRequest.getExerciseName(); + String actualKey = actualUpdateQuizExerciseRequest.getKey(); + List actualQuestions = actualUpdateQuizExerciseRequest.getQuestions(); + int actualReAttempt = actualUpdateQuizExerciseRequest.getReAttempt(); + Date actualStartTime = actualUpdateQuizExerciseRequest.getStartTime(); + + // Assert that nothing has changed + assertEquals("42", actualExerciseId); + assertEquals("42", actualUpdateQuizExerciseRequest.getTopicId()); + assertEquals("Exercise Description", actualExerciseDescription); + assertEquals("Exercise Name", actualExerciseName); + assertEquals("Key", actualKey); + assertEquals(1, actualDurationTime); + assertEquals(1, actualReAttempt); + assertEquals(questions, actualQuestions); + assertSame(questions2, actualQuestions); + assertSame(endTime2, actualEndTime); + assertSame(startTime2, actualStartTime); + } +} diff --git a/src/test/java/com/example/codeE/request/group/CreateGroupRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/group/CreateGroupRequestDiffblueTest.java new file mode 100644 index 00000000..7b1c16f0 --- /dev/null +++ b/src/test/java/com/example/codeE/request/group/CreateGroupRequestDiffblueTest.java @@ -0,0 +1,55 @@ +package com.example.codeE.request.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CreateGroupRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateGroupRequest#CreateGroupRequest()} + *
  • {@link CreateGroupRequest#setCourseId(String)} + *
  • {@link CreateGroupRequest#setGroupName(String)} + *
  • {@link CreateGroupRequest#getCourseId()} + *
  • {@link CreateGroupRequest#getGroupName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateGroupRequest actualCreateGroupRequest = new CreateGroupRequest(); + actualCreateGroupRequest.setCourseId("42"); + actualCreateGroupRequest.setGroupName("Group Name"); + String actualCourseId = actualCreateGroupRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("Group Name", actualCreateGroupRequest.getGroupName()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link CreateGroupRequest#CreateGroupRequest(String, String)} + *
  • {@link CreateGroupRequest#setCourseId(String)} + *
  • {@link CreateGroupRequest#setGroupName(String)} + *
  • {@link CreateGroupRequest#getCourseId()} + *
  • {@link CreateGroupRequest#getGroupName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CreateGroupRequest actualCreateGroupRequest = new CreateGroupRequest("42", "Group Name"); + actualCreateGroupRequest.setCourseId("42"); + actualCreateGroupRequest.setGroupName("Group Name"); + String actualCourseId = actualCreateGroupRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("Group Name", actualCreateGroupRequest.getGroupName()); + } +} diff --git a/src/test/java/com/example/codeE/request/group/CreateGroupStudentRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/group/CreateGroupStudentRequestDiffblueTest.java new file mode 100644 index 00000000..1e05b6ea --- /dev/null +++ b/src/test/java/com/example/codeE/request/group/CreateGroupStudentRequestDiffblueTest.java @@ -0,0 +1,42 @@ +package com.example.codeE.request.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CreateGroupStudentRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateGroupStudentRequest#setDescription(String)} + *
  • {@link CreateGroupStudentRequest#setGroupId(String)} + *
  • {@link CreateGroupStudentRequest#setStudentIds(List)} + *
  • {@link CreateGroupStudentRequest#getDescription()} + *
  • {@link CreateGroupStudentRequest#getGroupId()} + *
  • {@link CreateGroupStudentRequest#getStudentIds()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange + CreateGroupStudentRequest createGroupStudentRequest = new CreateGroupStudentRequest(); + + // Act + createGroupStudentRequest.setDescription("The characteristics of someone or something"); + createGroupStudentRequest.setGroupId("42"); + ArrayList studentIds = new ArrayList<>(); + createGroupStudentRequest.setStudentIds(studentIds); + String actualDescription = createGroupStudentRequest.getDescription(); + String actualGroupId = createGroupStudentRequest.getGroupId(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals("The characteristics of someone or something", actualDescription); + assertSame(studentIds, createGroupStudentRequest.getStudentIds()); + } +} diff --git a/src/test/java/com/example/codeE/request/group/DeleteStudentInGroupRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/group/DeleteStudentInGroupRequestDiffblueTest.java new file mode 100644 index 00000000..e54ab39f --- /dev/null +++ b/src/test/java/com/example/codeE/request/group/DeleteStudentInGroupRequestDiffblueTest.java @@ -0,0 +1,67 @@ +package com.example.codeE.request.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class DeleteStudentInGroupRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link DeleteStudentInGroupRequest#DeleteStudentInGroupRequest()} + *
  • {@link DeleteStudentInGroupRequest#setGroupId(String)} + *
  • {@link DeleteStudentInGroupRequest#setStudentIds(List)} + *
  • {@link DeleteStudentInGroupRequest#getGroupId()} + *
  • {@link DeleteStudentInGroupRequest#getStudentIds()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + DeleteStudentInGroupRequest actualDeleteStudentInGroupRequest = new DeleteStudentInGroupRequest(); + actualDeleteStudentInGroupRequest.setGroupId("42"); + ArrayList studentIds = new ArrayList<>(); + actualDeleteStudentInGroupRequest.setStudentIds(studentIds); + String actualGroupId = actualDeleteStudentInGroupRequest.getGroupId(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertSame(studentIds, actualDeleteStudentInGroupRequest.getStudentIds()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link DeleteStudentInGroupRequest#DeleteStudentInGroupRequest(List, String)} + *
  • {@link DeleteStudentInGroupRequest#setGroupId(String)} + *
  • {@link DeleteStudentInGroupRequest#setStudentIds(List)} + *
  • {@link DeleteStudentInGroupRequest#getGroupId()} + *
  • {@link DeleteStudentInGroupRequest#getStudentIds()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList studentIds = new ArrayList<>(); + + // Act + DeleteStudentInGroupRequest actualDeleteStudentInGroupRequest = new DeleteStudentInGroupRequest(studentIds, "42"); + actualDeleteStudentInGroupRequest.setGroupId("42"); + ArrayList studentIds2 = new ArrayList<>(); + actualDeleteStudentInGroupRequest.setStudentIds(studentIds2); + String actualGroupId = actualDeleteStudentInGroupRequest.getGroupId(); + List actualStudentIds = actualDeleteStudentInGroupRequest.getStudentIds(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals(studentIds, actualStudentIds); + assertSame(studentIds2, actualStudentIds); + } +} diff --git a/src/test/java/com/example/codeE/request/group/GroupTopicResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/group/GroupTopicResponseDiffblueTest.java new file mode 100644 index 00000000..084e3187 --- /dev/null +++ b/src/test/java/com/example/codeE/request/group/GroupTopicResponseDiffblueTest.java @@ -0,0 +1,55 @@ +package com.example.codeE.request.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class GroupTopicResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link GroupTopicResponse#GroupTopicResponse()} + *
  • {@link GroupTopicResponse#setGroupId(String)} + *
  • {@link GroupTopicResponse#setGroupName(String)} + *
  • {@link GroupTopicResponse#getGroupId()} + *
  • {@link GroupTopicResponse#getGroupName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + GroupTopicResponse actualGroupTopicResponse = new GroupTopicResponse(); + actualGroupTopicResponse.setGroupId("42"); + actualGroupTopicResponse.setGroupName("Group Name"); + String actualGroupId = actualGroupTopicResponse.getGroupId(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals("Group Name", actualGroupTopicResponse.getGroupName()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link GroupTopicResponse#GroupTopicResponse(String, String)} + *
  • {@link GroupTopicResponse#setGroupId(String)} + *
  • {@link GroupTopicResponse#setGroupName(String)} + *
  • {@link GroupTopicResponse#getGroupId()} + *
  • {@link GroupTopicResponse#getGroupName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + GroupTopicResponse actualGroupTopicResponse = new GroupTopicResponse("Group Name", "42"); + actualGroupTopicResponse.setGroupId("42"); + actualGroupTopicResponse.setGroupName("Group Name"); + String actualGroupId = actualGroupTopicResponse.getGroupId(); + + // Assert that nothing has changed + assertEquals("42", actualGroupId); + assertEquals("Group Name", actualGroupTopicResponse.getGroupName()); + } +} diff --git a/src/test/java/com/example/codeE/request/group/UpdateGroupRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/group/UpdateGroupRequestDiffblueTest.java new file mode 100644 index 00000000..20fb7237 --- /dev/null +++ b/src/test/java/com/example/codeE/request/group/UpdateGroupRequestDiffblueTest.java @@ -0,0 +1,45 @@ +package com.example.codeE.request.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class UpdateGroupRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateGroupRequest#UpdateGroupRequest()} + *
  • {@link UpdateGroupRequest#setGroupId(String)} + *
  • {@link UpdateGroupRequest#getGroupId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateGroupRequest actualUpdateGroupRequest = new UpdateGroupRequest(); + actualUpdateGroupRequest.setGroupId("42"); + + // Assert that nothing has changed + assertEquals("42", actualUpdateGroupRequest.getGroupId()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link UpdateGroupRequest#UpdateGroupRequest(String)} + *
  • {@link UpdateGroupRequest#setGroupId(String)} + *
  • {@link UpdateGroupRequest#getGroupId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + UpdateGroupRequest actualUpdateGroupRequest = new UpdateGroupRequest("42"); + actualUpdateGroupRequest.setGroupId("42"); + + // Assert that nothing has changed + assertEquals("42", actualUpdateGroupRequest.getGroupId()); + } +} diff --git a/src/test/java/com/example/codeE/request/material/CreateMaterialRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/material/CreateMaterialRequestDiffblueTest.java new file mode 100644 index 00000000..df51b81e --- /dev/null +++ b/src/test/java/com/example/codeE/request/material/CreateMaterialRequestDiffblueTest.java @@ -0,0 +1,108 @@ +package com.example.codeE.request.material; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +import org.junit.jupiter.api.Test; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.web.multipart.MultipartFile; + +class CreateMaterialRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateMaterialRequest#CreateMaterialRequest()} + *
  • {@link CreateMaterialRequest#setDescription(String)} + *
  • {@link CreateMaterialRequest#setFile(MultipartFile)} + *
  • {@link CreateMaterialRequest#setMaterialName(String)} + *
  • {@link CreateMaterialRequest#setMaterialType(String)} + *
  • {@link CreateMaterialRequest#setTopicId(String)} + *
  • {@link CreateMaterialRequest#setUrl(String)} + *
  • {@link CreateMaterialRequest#getDescription()} + *
  • {@link CreateMaterialRequest#getFile()} + *
  • {@link CreateMaterialRequest#getMaterialName()} + *
  • {@link CreateMaterialRequest#getMaterialType()} + *
  • {@link CreateMaterialRequest#getTopicId()} + *
  • {@link CreateMaterialRequest#getUrl()} + *
+ */ + @Test + void testGettersAndSetters() throws IOException { + // Arrange and Act + CreateMaterialRequest actualCreateMaterialRequest = new CreateMaterialRequest(); + actualCreateMaterialRequest.setDescription("The characteristics of someone or something"); + MockMultipartFile file = new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))); + + actualCreateMaterialRequest.setFile(file); + actualCreateMaterialRequest.setMaterialName("Material Name"); + actualCreateMaterialRequest.setMaterialType("Material Type"); + actualCreateMaterialRequest.setTopicId("42"); + actualCreateMaterialRequest.setUrl("https://example.org/example"); + String actualDescription = actualCreateMaterialRequest.getDescription(); + MultipartFile actualFile = actualCreateMaterialRequest.getFile(); + String actualMaterialName = actualCreateMaterialRequest.getMaterialName(); + String actualMaterialType = actualCreateMaterialRequest.getMaterialType(); + String actualTopicId = actualCreateMaterialRequest.getTopicId(); + + // Assert that nothing has changed + assertEquals("42", actualTopicId); + assertEquals("Material Name", actualMaterialName); + assertEquals("Material Type", actualMaterialType); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("https://example.org/example", actualCreateMaterialRequest.getUrl()); + assertSame(file, actualFile); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateMaterialRequest#CreateMaterialRequest(String, String, String, String, String, MultipartFile)} + *
  • {@link CreateMaterialRequest#setDescription(String)} + *
  • {@link CreateMaterialRequest#setFile(MultipartFile)} + *
  • {@link CreateMaterialRequest#setMaterialName(String)} + *
  • {@link CreateMaterialRequest#setMaterialType(String)} + *
  • {@link CreateMaterialRequest#setTopicId(String)} + *
  • {@link CreateMaterialRequest#setUrl(String)} + *
  • {@link CreateMaterialRequest#getDescription()} + *
  • {@link CreateMaterialRequest#getFile()} + *
  • {@link CreateMaterialRequest#getMaterialName()} + *
  • {@link CreateMaterialRequest#getMaterialType()} + *
  • {@link CreateMaterialRequest#getTopicId()} + *
  • {@link CreateMaterialRequest#getUrl()} + *
+ */ + @Test + void testGettersAndSetters2() throws IOException { + // Arrange and Act + CreateMaterialRequest actualCreateMaterialRequest = new CreateMaterialRequest("Material Name", "Material Type", + "42", "https://example.org/example", "The characteristics of someone or something", + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + actualCreateMaterialRequest.setDescription("The characteristics of someone or something"); + MockMultipartFile file = new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))); + + actualCreateMaterialRequest.setFile(file); + actualCreateMaterialRequest.setMaterialName("Material Name"); + actualCreateMaterialRequest.setMaterialType("Material Type"); + actualCreateMaterialRequest.setTopicId("42"); + actualCreateMaterialRequest.setUrl("https://example.org/example"); + String actualDescription = actualCreateMaterialRequest.getDescription(); + MultipartFile actualFile = actualCreateMaterialRequest.getFile(); + String actualMaterialName = actualCreateMaterialRequest.getMaterialName(); + String actualMaterialType = actualCreateMaterialRequest.getMaterialType(); + String actualTopicId = actualCreateMaterialRequest.getTopicId(); + + // Assert that nothing has changed + assertEquals("42", actualTopicId); + assertEquals("Material Name", actualMaterialName); + assertEquals("Material Type", actualMaterialType); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("https://example.org/example", actualCreateMaterialRequest.getUrl()); + assertSame(file, actualFile); + } +} diff --git a/src/test/java/com/example/codeE/request/material/CreatePermissionMaterialRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/material/CreatePermissionMaterialRequestDiffblueTest.java new file mode 100644 index 00000000..60faffbf --- /dev/null +++ b/src/test/java/com/example/codeE/request/material/CreatePermissionMaterialRequestDiffblueTest.java @@ -0,0 +1,78 @@ +package com.example.codeE.request.material; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CreatePermissionMaterialRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreatePermissionMaterialRequest#CreatePermissionMaterialRequest()} + *
  • {@link CreatePermissionMaterialRequest#setGroupIds(List)} + *
  • {@link CreatePermissionMaterialRequest#setMaterialId(String)} + *
  • {@link CreatePermissionMaterialRequest#setShowAll(boolean)} + *
  • {@link CreatePermissionMaterialRequest#getGroupIds()} + *
  • {@link CreatePermissionMaterialRequest#getMaterialId()} + *
  • {@link CreatePermissionMaterialRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreatePermissionMaterialRequest actualCreatePermissionMaterialRequest = new CreatePermissionMaterialRequest(); + ArrayList groupIds = new ArrayList<>(); + actualCreatePermissionMaterialRequest.setGroupIds(groupIds); + actualCreatePermissionMaterialRequest.setMaterialId("42"); + actualCreatePermissionMaterialRequest.setShowAll(true); + List actualGroupIds = actualCreatePermissionMaterialRequest.getGroupIds(); + String actualMaterialId = actualCreatePermissionMaterialRequest.getMaterialId(); + + // Assert that nothing has changed + assertEquals("42", actualMaterialId); + assertTrue(actualCreatePermissionMaterialRequest.isShowAll()); + assertSame(groupIds, actualGroupIds); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreatePermissionMaterialRequest#CreatePermissionMaterialRequest(String, List, boolean)} + *
  • {@link CreatePermissionMaterialRequest#setGroupIds(List)} + *
  • {@link CreatePermissionMaterialRequest#setMaterialId(String)} + *
  • {@link CreatePermissionMaterialRequest#setShowAll(boolean)} + *
  • {@link CreatePermissionMaterialRequest#getGroupIds()} + *
  • {@link CreatePermissionMaterialRequest#getMaterialId()} + *
  • {@link CreatePermissionMaterialRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList groupIds = new ArrayList<>(); + + // Act + CreatePermissionMaterialRequest actualCreatePermissionMaterialRequest = new CreatePermissionMaterialRequest("42", + groupIds, true); + ArrayList groupIds2 = new ArrayList<>(); + actualCreatePermissionMaterialRequest.setGroupIds(groupIds2); + actualCreatePermissionMaterialRequest.setMaterialId("42"); + actualCreatePermissionMaterialRequest.setShowAll(true); + List actualGroupIds = actualCreatePermissionMaterialRequest.getGroupIds(); + String actualMaterialId = actualCreatePermissionMaterialRequest.getMaterialId(); + + // Assert that nothing has changed + assertEquals("42", actualMaterialId); + assertTrue(actualCreatePermissionMaterialRequest.isShowAll()); + assertEquals(groupIds, actualGroupIds); + assertSame(groupIds2, actualGroupIds); + } +} diff --git a/src/test/java/com/example/codeE/request/material/UpdateMaterialRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/material/UpdateMaterialRequestDiffblueTest.java new file mode 100644 index 00000000..51a9bdfd --- /dev/null +++ b/src/test/java/com/example/codeE/request/material/UpdateMaterialRequestDiffblueTest.java @@ -0,0 +1,68 @@ +package com.example.codeE.request.material; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class UpdateMaterialRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateMaterialRequest#UpdateMaterialRequest()} + *
  • {@link UpdateMaterialRequest#setCheckAll(boolean)} + *
  • {@link UpdateMaterialRequest#setDescription(String)} + *
  • {@link UpdateMaterialRequest#setMaterialId(String)} + *
  • {@link UpdateMaterialRequest#getDescription()} + *
  • {@link UpdateMaterialRequest#getMaterialId()} + *
  • {@link UpdateMaterialRequest#isCheckAll()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateMaterialRequest actualUpdateMaterialRequest = new UpdateMaterialRequest(); + actualUpdateMaterialRequest.setCheckAll(true); + actualUpdateMaterialRequest.setDescription("The characteristics of someone or something"); + actualUpdateMaterialRequest.setMaterialId("42"); + String actualDescription = actualUpdateMaterialRequest.getDescription(); + String actualMaterialId = actualUpdateMaterialRequest.getMaterialId(); + + // Assert that nothing has changed + assertEquals("42", actualMaterialId); + assertEquals("The characteristics of someone or something", actualDescription); + assertTrue(actualUpdateMaterialRequest.isCheckAll()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateMaterialRequest#UpdateMaterialRequest(String, String, boolean)} + *
  • {@link UpdateMaterialRequest#setCheckAll(boolean)} + *
  • {@link UpdateMaterialRequest#setDescription(String)} + *
  • {@link UpdateMaterialRequest#setMaterialId(String)} + *
  • {@link UpdateMaterialRequest#getDescription()} + *
  • {@link UpdateMaterialRequest#getMaterialId()} + *
  • {@link UpdateMaterialRequest#isCheckAll()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + UpdateMaterialRequest actualUpdateMaterialRequest = new UpdateMaterialRequest("42", + "The characteristics of someone or something", true); + actualUpdateMaterialRequest.setCheckAll(true); + actualUpdateMaterialRequest.setDescription("The characteristics of someone or something"); + actualUpdateMaterialRequest.setMaterialId("42"); + String actualDescription = actualUpdateMaterialRequest.getDescription(); + String actualMaterialId = actualUpdateMaterialRequest.getMaterialId(); + + // Assert that nothing has changed + assertEquals("42", actualMaterialId); + assertEquals("The characteristics of someone or something", actualDescription); + assertTrue(actualUpdateMaterialRequest.isCheckAll()); + } +} diff --git a/src/test/java/com/example/codeE/request/topic/CreatePermissionTopicRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/topic/CreatePermissionTopicRequestDiffblueTest.java new file mode 100644 index 00000000..b6945f2b --- /dev/null +++ b/src/test/java/com/example/codeE/request/topic/CreatePermissionTopicRequestDiffblueTest.java @@ -0,0 +1,78 @@ +package com.example.codeE.request.topic; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class CreatePermissionTopicRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreatePermissionTopicRequest#CreatePermissionTopicRequest()} + *
  • {@link CreatePermissionTopicRequest#setGroupIds(List)} + *
  • {@link CreatePermissionTopicRequest#setShowAll(boolean)} + *
  • {@link CreatePermissionTopicRequest#setTopicId(String)} + *
  • {@link CreatePermissionTopicRequest#getGroupIds()} + *
  • {@link CreatePermissionTopicRequest#getTopicId()} + *
  • {@link CreatePermissionTopicRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreatePermissionTopicRequest actualCreatePermissionTopicRequest = new CreatePermissionTopicRequest(); + ArrayList groupIds = new ArrayList<>(); + actualCreatePermissionTopicRequest.setGroupIds(groupIds); + actualCreatePermissionTopicRequest.setShowAll(true); + actualCreatePermissionTopicRequest.setTopicId("42"); + List actualGroupIds = actualCreatePermissionTopicRequest.getGroupIds(); + String actualTopicId = actualCreatePermissionTopicRequest.getTopicId(); + + // Assert that nothing has changed + assertEquals("42", actualTopicId); + assertTrue(actualCreatePermissionTopicRequest.isShowAll()); + assertSame(groupIds, actualGroupIds); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreatePermissionTopicRequest#CreatePermissionTopicRequest(String, List, boolean)} + *
  • {@link CreatePermissionTopicRequest#setGroupIds(List)} + *
  • {@link CreatePermissionTopicRequest#setShowAll(boolean)} + *
  • {@link CreatePermissionTopicRequest#setTopicId(String)} + *
  • {@link CreatePermissionTopicRequest#getGroupIds()} + *
  • {@link CreatePermissionTopicRequest#getTopicId()} + *
  • {@link CreatePermissionTopicRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + ArrayList groupIds = new ArrayList<>(); + + // Act + CreatePermissionTopicRequest actualCreatePermissionTopicRequest = new CreatePermissionTopicRequest("42", groupIds, + true); + ArrayList groupIds2 = new ArrayList<>(); + actualCreatePermissionTopicRequest.setGroupIds(groupIds2); + actualCreatePermissionTopicRequest.setShowAll(true); + actualCreatePermissionTopicRequest.setTopicId("42"); + List actualGroupIds = actualCreatePermissionTopicRequest.getGroupIds(); + String actualTopicId = actualCreatePermissionTopicRequest.getTopicId(); + + // Assert that nothing has changed + assertEquals("42", actualTopicId); + assertTrue(actualCreatePermissionTopicRequest.isShowAll()); + assertEquals(groupIds, actualGroupIds); + assertSame(groupIds2, actualGroupIds); + } +} diff --git a/src/test/java/com/example/codeE/request/topic/CreateTopicRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/topic/CreateTopicRequestDiffblueTest.java new file mode 100644 index 00000000..40cb7c99 --- /dev/null +++ b/src/test/java/com/example/codeE/request/topic/CreateTopicRequestDiffblueTest.java @@ -0,0 +1,66 @@ +package com.example.codeE.request.topic; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CreateTopicRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateTopicRequest#CreateTopicRequest()} + *
  • {@link CreateTopicRequest#setCourseId(String)} + *
  • {@link CreateTopicRequest#setDescription(String)} + *
  • {@link CreateTopicRequest#setTopicName(String)} + *
  • {@link CreateTopicRequest#getCourseId()} + *
  • {@link CreateTopicRequest#getDescription()} + *
  • {@link CreateTopicRequest#getTopicName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateTopicRequest actualCreateTopicRequest = new CreateTopicRequest(); + actualCreateTopicRequest.setCourseId("42"); + actualCreateTopicRequest.setDescription("The characteristics of someone or something"); + actualCreateTopicRequest.setTopicName("Topic Name"); + String actualCourseId = actualCreateTopicRequest.getCourseId(); + String actualDescription = actualCreateTopicRequest.getDescription(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("Topic Name", actualCreateTopicRequest.getTopicName()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link CreateTopicRequest#CreateTopicRequest(String, String, String)} + *
  • {@link CreateTopicRequest#setCourseId(String)} + *
  • {@link CreateTopicRequest#setDescription(String)} + *
  • {@link CreateTopicRequest#setTopicName(String)} + *
  • {@link CreateTopicRequest#getCourseId()} + *
  • {@link CreateTopicRequest#getDescription()} + *
  • {@link CreateTopicRequest#getTopicName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CreateTopicRequest actualCreateTopicRequest = new CreateTopicRequest("42", "Topic Name", + "The characteristics of someone or something"); + actualCreateTopicRequest.setCourseId("42"); + actualCreateTopicRequest.setDescription("The characteristics of someone or something"); + actualCreateTopicRequest.setTopicName("Topic Name"); + String actualCourseId = actualCreateTopicRequest.getCourseId(); + String actualDescription = actualCreateTopicRequest.getDescription(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("Topic Name", actualCreateTopicRequest.getTopicName()); + } +} diff --git a/src/test/java/com/example/codeE/request/topic/TopicByUserResponseDiffblueTest.java b/src/test/java/com/example/codeE/request/topic/TopicByUserResponseDiffblueTest.java new file mode 100644 index 00000000..9f31fa11 --- /dev/null +++ b/src/test/java/com/example/codeE/request/topic/TopicByUserResponseDiffblueTest.java @@ -0,0 +1,141 @@ +package com.example.codeE.request.topic; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.course.CourseStudent; +import com.example.codeE.model.material.Material; +import com.example.codeE.model.topic.Topic; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class TopicByUserResponseDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link TopicByUserResponse#TopicByUserResponse()} + *
  • {@link TopicByUserResponse#setMaterials(List)} + *
  • {@link TopicByUserResponse#setTopic(Topic)} + *
  • {@link TopicByUserResponse#getMaterials()} + *
  • {@link TopicByUserResponse#getTopic()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + TopicByUserResponse actualTopicByUserResponse = new TopicByUserResponse(); + ArrayList materials = new ArrayList<>(); + actualTopicByUserResponse.setMaterials(materials); + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + actualTopicByUserResponse.setTopic(topic); + List actualMaterials = actualTopicByUserResponse.getMaterials(); + + // Assert that nothing has changed + assertSame(topic, actualTopicByUserResponse.getTopic()); + assertSame(materials, actualMaterials); + } + + /** + * Methods under test: + * + *
    + *
  • {@link TopicByUserResponse#TopicByUserResponse(Topic, List)} + *
  • {@link TopicByUserResponse#setMaterials(List)} + *
  • {@link TopicByUserResponse#setTopic(Topic)} + *
  • {@link TopicByUserResponse#getMaterials()} + *
  • {@link TopicByUserResponse#getTopic()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + ArrayList courseStudents = new ArrayList<>(); + course.setCourseStudents(courseStudents); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + // Act + TopicByUserResponse actualTopicByUserResponse = new TopicByUserResponse(topic, new ArrayList<>()); + ArrayList materials = new ArrayList<>(); + actualTopicByUserResponse.setMaterials(materials); + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + actualTopicByUserResponse.setTopic(topic2); + List actualMaterials = actualTopicByUserResponse.getMaterials(); + + // Assert that nothing has changed + assertEquals(courseStudents, actualMaterials); + assertSame(topic2, actualTopicByUserResponse.getTopic()); + assertSame(materials, actualMaterials); + } +} diff --git a/src/test/java/com/example/codeE/request/topic/UpdateTopicRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/topic/UpdateTopicRequestDiffblueTest.java new file mode 100644 index 00000000..7eb043ae --- /dev/null +++ b/src/test/java/com/example/codeE/request/topic/UpdateTopicRequestDiffblueTest.java @@ -0,0 +1,78 @@ +package com.example.codeE.request.topic; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class UpdateTopicRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateTopicRequest#UpdateTopicRequest()} + *
  • {@link UpdateTopicRequest#setDescription(String)} + *
  • {@link UpdateTopicRequest#setShowAll(boolean)} + *
  • {@link UpdateTopicRequest#setTopicId(String)} + *
  • {@link UpdateTopicRequest#setTopicName(String)} + *
  • {@link UpdateTopicRequest#getDescription()} + *
  • {@link UpdateTopicRequest#getTopicId()} + *
  • {@link UpdateTopicRequest#getTopicName()} + *
  • {@link UpdateTopicRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateTopicRequest actualUpdateTopicRequest = new UpdateTopicRequest(); + actualUpdateTopicRequest.setDescription("The characteristics of someone or something"); + actualUpdateTopicRequest.setShowAll(true); + actualUpdateTopicRequest.setTopicId("42"); + actualUpdateTopicRequest.setTopicName("Topic Name"); + String actualDescription = actualUpdateTopicRequest.getDescription(); + String actualTopicId = actualUpdateTopicRequest.getTopicId(); + String actualTopicName = actualUpdateTopicRequest.getTopicName(); + + // Assert that nothing has changed + assertEquals("42", actualTopicId); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("Topic Name", actualTopicName); + assertTrue(actualUpdateTopicRequest.isShowAll()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateTopicRequest#UpdateTopicRequest(String, String, String, boolean)} + *
  • {@link UpdateTopicRequest#setDescription(String)} + *
  • {@link UpdateTopicRequest#setShowAll(boolean)} + *
  • {@link UpdateTopicRequest#setTopicId(String)} + *
  • {@link UpdateTopicRequest#setTopicName(String)} + *
  • {@link UpdateTopicRequest#getDescription()} + *
  • {@link UpdateTopicRequest#getTopicId()} + *
  • {@link UpdateTopicRequest#getTopicName()} + *
  • {@link UpdateTopicRequest#isShowAll()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + UpdateTopicRequest actualUpdateTopicRequest = new UpdateTopicRequest("42", "Topic Name", + "The characteristics of someone or something", true); + actualUpdateTopicRequest.setDescription("The characteristics of someone or something"); + actualUpdateTopicRequest.setShowAll(true); + actualUpdateTopicRequest.setTopicId("42"); + actualUpdateTopicRequest.setTopicName("Topic Name"); + String actualDescription = actualUpdateTopicRequest.getDescription(); + String actualTopicId = actualUpdateTopicRequest.getTopicId(); + String actualTopicName = actualUpdateTopicRequest.getTopicName(); + + // Assert that nothing has changed + assertEquals("42", actualTopicId); + assertEquals("The characteristics of someone or something", actualDescription); + assertEquals("Topic Name", actualTopicName); + assertTrue(actualUpdateTopicRequest.isShowAll()); + } +} diff --git a/src/test/java/com/example/codeE/request/user/ChangePasswordRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/user/ChangePasswordRequestDiffblueTest.java new file mode 100644 index 00000000..6ad60c19 --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/ChangePasswordRequestDiffblueTest.java @@ -0,0 +1,66 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class ChangePasswordRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ChangePasswordRequest#ChangePasswordRequest()} + *
  • {@link ChangePasswordRequest#setNewPassword(String)} + *
  • {@link ChangePasswordRequest#setOldPassword(String)} + *
  • {@link ChangePasswordRequest#setUserId(String)} + *
  • {@link ChangePasswordRequest#getNewPassword()} + *
  • {@link ChangePasswordRequest#getOldPassword()} + *
  • {@link ChangePasswordRequest#getUserId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ChangePasswordRequest actualChangePasswordRequest = new ChangePasswordRequest(); + actualChangePasswordRequest.setNewPassword("iloveyou"); + actualChangePasswordRequest.setOldPassword("iloveyou"); + actualChangePasswordRequest.setUserId("42"); + String actualNewPassword = actualChangePasswordRequest.getNewPassword(); + String actualOldPassword = actualChangePasswordRequest.getOldPassword(); + + // Assert that nothing has changed + assertEquals("42", actualChangePasswordRequest.getUserId()); + assertEquals("iloveyou", actualNewPassword); + assertEquals("iloveyou", actualOldPassword); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link ChangePasswordRequest#ChangePasswordRequest(String, String, String)} + *
  • {@link ChangePasswordRequest#setNewPassword(String)} + *
  • {@link ChangePasswordRequest#setOldPassword(String)} + *
  • {@link ChangePasswordRequest#setUserId(String)} + *
  • {@link ChangePasswordRequest#getNewPassword()} + *
  • {@link ChangePasswordRequest#getOldPassword()} + *
  • {@link ChangePasswordRequest#getUserId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + ChangePasswordRequest actualChangePasswordRequest = new ChangePasswordRequest("42", "iloveyou", "iloveyou"); + actualChangePasswordRequest.setNewPassword("iloveyou"); + actualChangePasswordRequest.setOldPassword("iloveyou"); + actualChangePasswordRequest.setUserId("42"); + String actualNewPassword = actualChangePasswordRequest.getNewPassword(); + String actualOldPassword = actualChangePasswordRequest.getOldPassword(); + + // Assert that nothing has changed + assertEquals("42", actualChangePasswordRequest.getUserId()); + assertEquals("iloveyou", actualNewPassword); + assertEquals("iloveyou", actualOldPassword); + } +} diff --git a/src/test/java/com/example/codeE/request/user/CreateUserRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/user/CreateUserRequestDiffblueTest.java new file mode 100644 index 00000000..7720258d --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/CreateUserRequestDiffblueTest.java @@ -0,0 +1,77 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class CreateUserRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link CreateUserRequest#CreateUserRequest()} + *
  • {@link CreateUserRequest#setEmail(String)} + *
  • {@link CreateUserRequest#setName(String)} + *
  • {@link CreateUserRequest#setRole(String)} + *
  • {@link CreateUserRequest#setUsername(String)} + *
  • {@link CreateUserRequest#getEmail()} + *
  • {@link CreateUserRequest#getName()} + *
  • {@link CreateUserRequest#getRole()} + *
  • {@link CreateUserRequest#getUsername()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + CreateUserRequest actualCreateUserRequest = new CreateUserRequest(); + actualCreateUserRequest.setEmail("jane.doe@example.org"); + actualCreateUserRequest.setName("Name"); + actualCreateUserRequest.setRole("Role"); + actualCreateUserRequest.setUsername("janedoe"); + String actualEmail = actualCreateUserRequest.getEmail(); + String actualName = actualCreateUserRequest.getName(); + String actualRole = actualCreateUserRequest.getRole(); + + // Assert that nothing has changed + assertEquals("Name", actualName); + assertEquals("Role", actualRole); + assertEquals("jane.doe@example.org", actualEmail); + assertEquals("janedoe", actualCreateUserRequest.getUsername()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link CreateUserRequest#CreateUserRequest(String, String, String, String)} + *
  • {@link CreateUserRequest#setEmail(String)} + *
  • {@link CreateUserRequest#setName(String)} + *
  • {@link CreateUserRequest#setRole(String)} + *
  • {@link CreateUserRequest#setUsername(String)} + *
  • {@link CreateUserRequest#getEmail()} + *
  • {@link CreateUserRequest#getName()} + *
  • {@link CreateUserRequest#getRole()} + *
  • {@link CreateUserRequest#getUsername()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + CreateUserRequest actualCreateUserRequest = new CreateUserRequest("Name", "jane.doe@example.org", "janedoe", + "Role"); + actualCreateUserRequest.setEmail("jane.doe@example.org"); + actualCreateUserRequest.setName("Name"); + actualCreateUserRequest.setRole("Role"); + actualCreateUserRequest.setUsername("janedoe"); + String actualEmail = actualCreateUserRequest.getEmail(); + String actualName = actualCreateUserRequest.getName(); + String actualRole = actualCreateUserRequest.getRole(); + + // Assert that nothing has changed + assertEquals("Name", actualName); + assertEquals("Role", actualRole); + assertEquals("jane.doe@example.org", actualEmail); + assertEquals("janedoe", actualCreateUserRequest.getUsername()); + } +} diff --git a/src/test/java/com/example/codeE/request/user/ExportExcelRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/user/ExportExcelRequestDiffblueTest.java new file mode 100644 index 00000000..52fce006 --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/ExportExcelRequestDiffblueTest.java @@ -0,0 +1,55 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class ExportExcelRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link ExportExcelRequest#ExportExcelRequest()} + *
  • {@link ExportExcelRequest#setCourseId(String)} + *
  • {@link ExportExcelRequest#setFileName(String)} + *
  • {@link ExportExcelRequest#getCourseId()} + *
  • {@link ExportExcelRequest#getFileName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + ExportExcelRequest actualExportExcelRequest = new ExportExcelRequest(); + actualExportExcelRequest.setCourseId("42"); + actualExportExcelRequest.setFileName("foo.txt"); + String actualCourseId = actualExportExcelRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("foo.txt", actualExportExcelRequest.getFileName()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link ExportExcelRequest#ExportExcelRequest(String, String)} + *
  • {@link ExportExcelRequest#setCourseId(String)} + *
  • {@link ExportExcelRequest#setFileName(String)} + *
  • {@link ExportExcelRequest#getCourseId()} + *
  • {@link ExportExcelRequest#getFileName()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + ExportExcelRequest actualExportExcelRequest = new ExportExcelRequest("foo.txt", "42"); + actualExportExcelRequest.setCourseId("42"); + actualExportExcelRequest.setFileName("foo.txt"); + String actualCourseId = actualExportExcelRequest.getCourseId(); + + // Assert that nothing has changed + assertEquals("42", actualCourseId); + assertEquals("foo.txt", actualExportExcelRequest.getFileName()); + } +} diff --git a/src/test/java/com/example/codeE/request/user/GetUsersRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/user/GetUsersRequestDiffblueTest.java new file mode 100644 index 00000000..dc4de3eb --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/GetUsersRequestDiffblueTest.java @@ -0,0 +1,25 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; + +class GetUsersRequestDiffblueTest { + /** + * Method under test: + * {@link GetUsersRequest#GetUsersRequest(String, String, int, int)} + */ + @Test + void testNewGetUsersRequest() { + // Arrange and Act + GetUsersRequest actualGetUsersRequest = new GetUsersRequest("Role", "Search Keyword", 10, 3); + + // Assert + assertEquals("Role", actualGetUsersRequest.getRole()); + assertEquals("Search Keyword", actualGetUsersRequest.getSearchKeyword()); + assertNull(actualGetUsersRequest.getPageable()); + assertEquals(10, actualGetUsersRequest.getPageNumber()); + assertEquals(3, actualGetUsersRequest.getPageSize()); + } +} diff --git a/src/test/java/com/example/codeE/request/user/LoginRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/user/LoginRequestDiffblueTest.java new file mode 100644 index 00000000..d9d34077 --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/LoginRequestDiffblueTest.java @@ -0,0 +1,32 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class LoginRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link LoginRequest#setPassword(String)} + *
  • {@link LoginRequest#setUserName(String)} + *
  • {@link LoginRequest#getPassword()} + *
  • {@link LoginRequest#getUserName()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange + LoginRequest loginRequest = new LoginRequest(); + + // Act + loginRequest.setPassword("iloveyou"); + loginRequest.setUserName("janedoe"); + String actualPassword = loginRequest.getPassword(); + + // Assert that nothing has changed + assertEquals("iloveyou", actualPassword); + assertEquals("janedoe", loginRequest.getUserName()); + } +} diff --git a/src/test/java/com/example/codeE/request/user/StudentSubmissionInformationDiffblueTest.java b/src/test/java/com/example/codeE/request/user/StudentSubmissionInformationDiffblueTest.java new file mode 100644 index 00000000..96f878fe --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/StudentSubmissionInformationDiffblueTest.java @@ -0,0 +1,88 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class StudentSubmissionInformationDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link StudentSubmissionInformation#StudentSubmissionInformation()} + *
  • {@link StudentSubmissionInformation#setDateSubmit(String)} + *
  • {@link StudentSubmissionInformation#setGrade(float)} + *
  • {@link StudentSubmissionInformation#setReviewable(boolean)} + *
  • {@link StudentSubmissionInformation#setUserId(String)} + *
  • {@link StudentSubmissionInformation#setUserName(String)} + *
  • {@link StudentSubmissionInformation#getDateSubmit()} + *
  • {@link StudentSubmissionInformation#getGrade()} + *
  • {@link StudentSubmissionInformation#getUserId()} + *
  • {@link StudentSubmissionInformation#getUserName()} + *
  • {@link StudentSubmissionInformation#isReviewable()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + StudentSubmissionInformation actualStudentSubmissionInformation = new StudentSubmissionInformation(); + actualStudentSubmissionInformation.setDateSubmit("2020-03-01"); + actualStudentSubmissionInformation.setGrade(10.0f); + actualStudentSubmissionInformation.setReviewable(true); + actualStudentSubmissionInformation.setUserId("42"); + actualStudentSubmissionInformation.setUserName("janedoe"); + String actualDateSubmit = actualStudentSubmissionInformation.getDateSubmit(); + float actualGrade = actualStudentSubmissionInformation.getGrade(); + String actualUserId = actualStudentSubmissionInformation.getUserId(); + String actualUserName = actualStudentSubmissionInformation.getUserName(); + + // Assert that nothing has changed + assertEquals("2020-03-01", actualDateSubmit); + assertEquals("42", actualUserId); + assertEquals("janedoe", actualUserName); + assertEquals(10.0f, actualGrade); + assertTrue(actualStudentSubmissionInformation.isReviewable()); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link StudentSubmissionInformation#StudentSubmissionInformation(String, String, String, float, boolean)} + *
  • {@link StudentSubmissionInformation#setDateSubmit(String)} + *
  • {@link StudentSubmissionInformation#setGrade(float)} + *
  • {@link StudentSubmissionInformation#setReviewable(boolean)} + *
  • {@link StudentSubmissionInformation#setUserId(String)} + *
  • {@link StudentSubmissionInformation#setUserName(String)} + *
  • {@link StudentSubmissionInformation#getDateSubmit()} + *
  • {@link StudentSubmissionInformation#getGrade()} + *
  • {@link StudentSubmissionInformation#getUserId()} + *
  • {@link StudentSubmissionInformation#getUserName()} + *
  • {@link StudentSubmissionInformation#isReviewable()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + StudentSubmissionInformation actualStudentSubmissionInformation = new StudentSubmissionInformation("42", "janedoe", + "2020-03-01", 10.0f, true); + actualStudentSubmissionInformation.setDateSubmit("2020-03-01"); + actualStudentSubmissionInformation.setGrade(10.0f); + actualStudentSubmissionInformation.setReviewable(true); + actualStudentSubmissionInformation.setUserId("42"); + actualStudentSubmissionInformation.setUserName("janedoe"); + String actualDateSubmit = actualStudentSubmissionInformation.getDateSubmit(); + float actualGrade = actualStudentSubmissionInformation.getGrade(); + String actualUserId = actualStudentSubmissionInformation.getUserId(); + String actualUserName = actualStudentSubmissionInformation.getUserName(); + + // Assert that nothing has changed + assertEquals("2020-03-01", actualDateSubmit); + assertEquals("42", actualUserId); + assertEquals("janedoe", actualUserName); + assertEquals(10.0f, actualGrade); + assertTrue(actualStudentSubmissionInformation.isReviewable()); + } +} diff --git a/src/test/java/com/example/codeE/request/user/UpdateUserRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/user/UpdateUserRequestDiffblueTest.java new file mode 100644 index 00000000..58aecae8 --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/UpdateUserRequestDiffblueTest.java @@ -0,0 +1,113 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +import org.junit.jupiter.api.Test; + +class UpdateUserRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link UpdateUserRequest#UpdateUserRequest()} + *
  • {@link UpdateUserRequest#setCreatedDate(LocalDateTime)} + *
  • {@link UpdateUserRequest#setUpdatedEmail(String)} + *
  • {@link UpdateUserRequest#setUpdatedName(String)} + *
  • {@link UpdateUserRequest#setUpdatedPassword(String)} + *
  • {@link UpdateUserRequest#setUpdatedRole(String)} + *
  • {@link UpdateUserRequest#setUpdatedUsername(String)} + *
  • {@link UpdateUserRequest#setUserId(String)} + *
  • {@link UpdateUserRequest#getCreatedDate()} + *
  • {@link UpdateUserRequest#getUpdatedEmail()} + *
  • {@link UpdateUserRequest#getUpdatedName()} + *
  • {@link UpdateUserRequest#getUpdatedPassword()} + *
  • {@link UpdateUserRequest#getUpdatedRole()} + *
  • {@link UpdateUserRequest#getUpdatedUsername()} + *
  • {@link UpdateUserRequest#getUserId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + UpdateUserRequest actualUpdateUserRequest = new UpdateUserRequest(); + LocalDateTime createdDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualUpdateUserRequest.setCreatedDate(createdDate); + actualUpdateUserRequest.setUpdatedEmail("2020-03-01"); + actualUpdateUserRequest.setUpdatedName("2020-03-01"); + actualUpdateUserRequest.setUpdatedPassword("2020-03-01"); + actualUpdateUserRequest.setUpdatedRole("2020-03-01"); + actualUpdateUserRequest.setUpdatedUsername("janedoe"); + actualUpdateUserRequest.setUserId("42"); + LocalDateTime actualCreatedDate = actualUpdateUserRequest.getCreatedDate(); + String actualUpdatedEmail = actualUpdateUserRequest.getUpdatedEmail(); + String actualUpdatedName = actualUpdateUserRequest.getUpdatedName(); + String actualUpdatedPassword = actualUpdateUserRequest.getUpdatedPassword(); + String actualUpdatedRole = actualUpdateUserRequest.getUpdatedRole(); + String actualUpdatedUsername = actualUpdateUserRequest.getUpdatedUsername(); + + // Assert that nothing has changed + assertEquals("2020-03-01", actualUpdatedEmail); + assertEquals("2020-03-01", actualUpdatedName); + assertEquals("2020-03-01", actualUpdatedPassword); + assertEquals("2020-03-01", actualUpdatedRole); + assertEquals("42", actualUpdateUserRequest.getUserId()); + assertEquals("janedoe", actualUpdatedUsername); + assertSame(createdDate, actualCreatedDate); + } + + /** + * Methods under test: + * + *
    + *
  • + * {@link UpdateUserRequest#UpdateUserRequest(String, String, String, String, String, String, LocalDateTime)} + *
  • {@link UpdateUserRequest#setCreatedDate(LocalDateTime)} + *
  • {@link UpdateUserRequest#setUpdatedEmail(String)} + *
  • {@link UpdateUserRequest#setUpdatedName(String)} + *
  • {@link UpdateUserRequest#setUpdatedPassword(String)} + *
  • {@link UpdateUserRequest#setUpdatedRole(String)} + *
  • {@link UpdateUserRequest#setUpdatedUsername(String)} + *
  • {@link UpdateUserRequest#setUserId(String)} + *
  • {@link UpdateUserRequest#getCreatedDate()} + *
  • {@link UpdateUserRequest#getUpdatedEmail()} + *
  • {@link UpdateUserRequest#getUpdatedName()} + *
  • {@link UpdateUserRequest#getUpdatedPassword()} + *
  • {@link UpdateUserRequest#getUpdatedRole()} + *
  • {@link UpdateUserRequest#getUpdatedUsername()} + *
  • {@link UpdateUserRequest#getUserId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + UpdateUserRequest actualUpdateUserRequest = new UpdateUserRequest("42", "2020-03-01", "2020-03-01", "janedoe", + "2020-03-01", "2020-03-01", LocalDate.of(1970, 1, 1).atStartOfDay()); + LocalDateTime createdDate = LocalDate.of(1970, 1, 1).atStartOfDay(); + actualUpdateUserRequest.setCreatedDate(createdDate); + actualUpdateUserRequest.setUpdatedEmail("2020-03-01"); + actualUpdateUserRequest.setUpdatedName("2020-03-01"); + actualUpdateUserRequest.setUpdatedPassword("2020-03-01"); + actualUpdateUserRequest.setUpdatedRole("2020-03-01"); + actualUpdateUserRequest.setUpdatedUsername("janedoe"); + actualUpdateUserRequest.setUserId("42"); + LocalDateTime actualCreatedDate = actualUpdateUserRequest.getCreatedDate(); + String actualUpdatedEmail = actualUpdateUserRequest.getUpdatedEmail(); + String actualUpdatedName = actualUpdateUserRequest.getUpdatedName(); + String actualUpdatedPassword = actualUpdateUserRequest.getUpdatedPassword(); + String actualUpdatedRole = actualUpdateUserRequest.getUpdatedRole(); + String actualUpdatedUsername = actualUpdateUserRequest.getUpdatedUsername(); + + // Assert that nothing has changed + assertEquals("2020-03-01", actualUpdatedEmail); + assertEquals("2020-03-01", actualUpdatedName); + assertEquals("2020-03-01", actualUpdatedPassword); + assertEquals("2020-03-01", actualUpdatedRole); + assertEquals("42", actualUpdateUserRequest.getUserId()); + assertEquals("janedoe", actualUpdatedUsername); + assertSame(createdDate, actualCreatedDate); + } +} diff --git a/src/test/java/com/example/codeE/request/user/forgetPasswordRequestDiffblueTest.java b/src/test/java/com/example/codeE/request/user/forgetPasswordRequestDiffblueTest.java new file mode 100644 index 00000000..203a5c6c --- /dev/null +++ b/src/test/java/com/example/codeE/request/user/forgetPasswordRequestDiffblueTest.java @@ -0,0 +1,55 @@ +package com.example.codeE.request.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class forgetPasswordRequestDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link forgetPasswordRequest#forgetPasswordRequest()} + *
  • {@link forgetPasswordRequest#setPassword(String)} + *
  • {@link forgetPasswordRequest#setUserId(String)} + *
  • {@link forgetPasswordRequest#getPassword()} + *
  • {@link forgetPasswordRequest#getUserId()} + *
+ */ + @Test + void testGettersAndSetters() { + // Arrange and Act + forgetPasswordRequest actualForgetPasswordRequest = new forgetPasswordRequest(); + actualForgetPasswordRequest.setPassword("iloveyou"); + actualForgetPasswordRequest.setUserId("42"); + String actualPassword = actualForgetPasswordRequest.getPassword(); + + // Assert that nothing has changed + assertEquals("42", actualForgetPasswordRequest.getUserId()); + assertEquals("iloveyou", actualPassword); + } + + /** + * Methods under test: + * + *
    + *
  • {@link forgetPasswordRequest#forgetPasswordRequest(String, String)} + *
  • {@link forgetPasswordRequest#setPassword(String)} + *
  • {@link forgetPasswordRequest#setUserId(String)} + *
  • {@link forgetPasswordRequest#getPassword()} + *
  • {@link forgetPasswordRequest#getUserId()} + *
+ */ + @Test + void testGettersAndSetters2() { + // Arrange and Act + forgetPasswordRequest actualForgetPasswordRequest = new forgetPasswordRequest("42", "iloveyou"); + actualForgetPasswordRequest.setPassword("iloveyou"); + actualForgetPasswordRequest.setUserId("42"); + String actualPassword = actualForgetPasswordRequest.getPassword(); + + // Assert that nothing has changed + assertEquals("42", actualForgetPasswordRequest.getUserId()); + assertEquals("iloveyou", actualPassword); + } +} diff --git a/src/test/java/com/example/codeE/security/JWTAuthFilterDiffblueTest.java b/src/test/java/com/example/codeE/security/JWTAuthFilterDiffblueTest.java new file mode 100644 index 00000000..bde68d45 --- /dev/null +++ b/src/test/java/com/example/codeE/security/JWTAuthFilterDiffblueTest.java @@ -0,0 +1,83 @@ +package com.example.codeE.security; + +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.service.user.UserImpl; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +import org.apache.catalina.connector.Response; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.context.web.WebAppConfiguration; + +@ContextConfiguration(classes = {JWTAuthFilter.class}) +@WebAppConfiguration +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class JWTAuthFilterDiffblueTest { + @Autowired + private JWTAuthFilter jWTAuthFilter; + + @MockBean + private UserImpl userImpl; + + /** + * Method under test: + * {@link JWTAuthFilter#doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain)} + */ + @Test + void testDoFilterInternal() throws ServletException, IOException { + // Arrange + MockHttpServletRequest request = new MockHttpServletRequest(); + Response response = new Response(); + FilterChain filterChain = mock(FilterChain.class); + doNothing().when(filterChain).doFilter(Mockito.any(), Mockito.any()); + + // Act + jWTAuthFilter.doFilterInternal(request, response, filterChain); + + // Assert + verify(filterChain).doFilter(isA(ServletRequest.class), isA(ServletResponse.class)); + } + + /** + * Method under test: + * {@link JWTAuthFilter#doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain)} + */ + @Test + void testDoFilterInternal2() throws ServletException, IOException { + // Arrange + HttpServletRequestWrapper request = mock(HttpServletRequestWrapper.class); + when(request.getHeader(Mockito.any())).thenReturn(""); + Response response = new Response(); + FilterChain filterChain = mock(FilterChain.class); + doNothing().when(filterChain).doFilter(Mockito.any(), Mockito.any()); + + // Act + jWTAuthFilter.doFilterInternal(request, response, filterChain); + + // Assert + verify(filterChain).doFilter(isA(ServletRequest.class), isA(ServletResponse.class)); + verify(request).getHeader(eq("Authorization")); + } +} diff --git a/src/test/java/com/example/codeE/security/SecurityConfigDiffblueTest.java b/src/test/java/com/example/codeE/security/SecurityConfigDiffblueTest.java new file mode 100644 index 00000000..929c3c04 --- /dev/null +++ b/src/test/java/com/example/codeE/security/SecurityConfigDiffblueTest.java @@ -0,0 +1,115 @@ +package com.example.codeE.security; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mock; + +import com.example.codeE.service.user.UserImpl; + +import java.util.HashMap; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.security.authentication.ProviderManager; +import org.springframework.security.authentication.dao.DaoAuthenticationProvider; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.core.userdetails.cache.NullUserCache; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; + +@ContextConfiguration(classes = {SecurityConfig.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class SecurityConfigDiffblueTest { + @MockBean + private JWTAuthFilter jWTAuthFilter; + + @Autowired + private SecurityConfig securityConfig; + + @MockBean + private UserImpl userImpl; + + /** + * Method under test: {@link SecurityConfig#securityFilterChain(HttpSecurity)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSecurityFilterChain() throws Exception { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // java.lang.IllegalArgumentException: objectPostProcessor cannot be null + // See https://diff.blue/R013 to resolve this issue. + + // Arrange + AuthenticationManagerBuilder authenticationBuilder = new AuthenticationManagerBuilder(null); + + // Act + securityConfig.securityFilterChain(new HttpSecurity(null, authenticationBuilder, new HashMap<>())); + } + + /** + * Method under test: {@link SecurityConfig#corsConfigurationSource()} + */ + @Test + void testCorsConfigurationSource() { + // Arrange, Act and Assert + assertTrue(securityConfig.corsConfigurationSource() instanceof UrlBasedCorsConfigurationSource); + } + + /** + * Method under test: {@link SecurityConfig#authenticationProvider()} + */ + @Test + void testAuthenticationProvider() { + // Arrange, Act and Assert + assertTrue( + ((DaoAuthenticationProvider) securityConfig.authenticationProvider()).getUserCache() instanceof NullUserCache); + } + + /** + * Method under test: {@link SecurityConfig#passwordEncoder()} + */ + @Test + void testPasswordEncoder() { + // Arrange, Act and Assert + assertTrue(securityConfig.passwordEncoder() instanceof BCryptPasswordEncoder); + } + + /** + * Method under test: + * {@link SecurityConfig#authenticationManager(AuthenticationConfiguration)} + */ + @Test + void testAuthenticationManager() throws Exception { + // Arrange, Act and Assert + assertTrue( + ((ProviderManager) securityConfig.authenticationManager(new AuthenticationConfiguration())).getProviders() + .get(0) instanceof DaoAuthenticationProvider); + } + + /** + * Method under test: + * {@link SecurityConfig#authenticationManager(AuthenticationConfiguration)} + */ + @Test + void testAuthenticationManager2() throws Exception { + // Arrange + AuthenticationConfiguration authenticationConfiguration = new AuthenticationConfiguration(); + authenticationConfiguration.setApplicationContext(mock(AnnotationConfigApplicationContext.class)); + + // Act and Assert + assertTrue(((ProviderManager) securityConfig.authenticationManager(authenticationConfiguration)).getProviders() + .get(0) instanceof DaoAuthenticationProvider); + } +} diff --git a/src/test/java/com/example/codeE/security/WebConfigDiffblueTest.java b/src/test/java/com/example/codeE/security/WebConfigDiffblueTest.java new file mode 100644 index 00000000..24d5333c --- /dev/null +++ b/src/test/java/com/example/codeE/security/WebConfigDiffblueTest.java @@ -0,0 +1,61 @@ +package com.example.codeE.security; + +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.servlet.config.annotation.CorsRegistration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; + +@ContextConfiguration(classes = {WebConfig.class}) +@ExtendWith(SpringExtension.class) +class WebConfigDiffblueTest { + @Autowired + private WebConfig webConfig; + + /** + * Method under test: {@link WebConfig#addCorsMappings(CorsRegistry)} + */ + @Test + void testAddCorsMappings() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + WebConfig webConfig = new WebConfig(); + CorsRegistry registry = mock(CorsRegistry.class); + when(registry.addMapping(Mockito.any())).thenReturn(new CorsRegistration("Path Pattern")); + + // Act + webConfig.addCorsMappings(registry); + + // Assert + verify(registry).addMapping(eq("/**")); + } + + /** + * Method under test: {@link WebConfig#addCorsMappings(CorsRegistry)} + */ + @Test + @Disabled("TODO: Complete this test") + void testAddCorsMappings2() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@70dd251a testClass = com.example.codeE.security.DiffblueFakeClass811, locations = [], classes = [com.example.codeE.security.WebConfig], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1e1ce717, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4bed107, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4afef7d6], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange and Act + webConfig.addCorsMappings(new CorsRegistry()); + } +} diff --git a/src/test/java/com/example/codeE/service/authentication/AuthenImplDiffblueTest.java b/src/test/java/com/example/codeE/service/authentication/AuthenImplDiffblueTest.java new file mode 100644 index 00000000..1afaa83b --- /dev/null +++ b/src/test/java/com/example/codeE/service/authentication/AuthenImplDiffblueTest.java @@ -0,0 +1,406 @@ +package com.example.codeE.service.authentication; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.user.LoginRequest; +import com.example.codeE.request.user.UserAuthenRequest; +import com.example.codeE.service.course.CourseService; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponseWrapper; +import org.apache.catalina.connector.Response; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {AuthenImpl.class, AuthenticationManager.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class AuthenImplDiffblueTest { + @Autowired + private AuthenImpl authenImpl; + + @MockBean + private AuthenticationManager authenticationManager; + + @MockBean + private CourseService courseService; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: + * {@link AuthenImpl#signIn(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignIn() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + AuthenImpl authenImpl = new AuthenImpl(); + + LoginRequest signInRequest = new LoginRequest(); + signInRequest.setPassword("iloveyou"); + signInRequest.setUserName("janedoe"); + + // Act + UserAuthenRequest actualSignInResult = authenImpl.signIn(signInRequest, new Response()); + + // Assert + assertEquals("Cannot invoke \"com.example.codeE.repository.UserRepository.findUserByUserName(String)\" because" + + " \"this.userRepository\" is null", actualSignInResult.getError()); + assertEquals("Something wrong when login", actualSignInResult.getMessage()); + assertEquals(500, actualSignInResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#signIn(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignIn2() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + AuthenImpl authenImpl = new AuthenImpl(); + LoginRequest signInRequest = mock(LoginRequest.class); + when(signInRequest.getUserName()).thenReturn("janedoe"); + doNothing().when(signInRequest).setPassword(Mockito.any()); + doNothing().when(signInRequest).setUserName(Mockito.any()); + signInRequest.setPassword("iloveyou"); + signInRequest.setUserName("janedoe"); + + // Act + UserAuthenRequest actualSignInResult = authenImpl.signIn(signInRequest, new Response()); + + // Assert + verify(signInRequest).getUserName(); + verify(signInRequest).setPassword(eq("iloveyou")); + verify(signInRequest).setUserName(eq("janedoe")); + assertEquals("Cannot invoke \"com.example.codeE.repository.UserRepository.findUserByUserName(String)\" because" + + " \"this.userRepository\" is null", actualSignInResult.getError()); + assertEquals("Something wrong when login", actualSignInResult.getMessage()); + assertEquals(500, actualSignInResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#signIn(LoginRequest, HttpServletResponse)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSignIn3() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@4502e8ed testClass = com.example.codeE.service.authentication.DiffblueFakeClass1162, locations = [], classes = [com.example.codeE.service.authentication.AuthenImpl, org.springframework.security.authentication.AuthenticationManager], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1e1ce717, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4bed107, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@4f965cfa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4afef7d6], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + LoginRequest signInRequest = new LoginRequest(); + signInRequest.setPassword("iloveyou"); + signInRequest.setUserName("janedoe"); + + // Act + authenImpl.signIn(signInRequest, new Response()); + } + + /** + * Method under test: + * {@link AuthenImpl#createNewSessionAdmin(String, HttpServletResponse)} + */ + @Test + void testCreateNewSessionAdmin() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + AuthenImpl authenImpl = new AuthenImpl(); + + // Act + UserAuthenRequest actualCreateNewSessionAdminResult = authenImpl.createNewSessionAdmin("ABC123", new Response()); + + // Assert + assertEquals("Invalid compact JWT string: Compact JWSs must contain exactly 2 period characters, and compact JWEs" + + " must contain exactly 4. Found: 0", actualCreateNewSessionAdminResult.getError()); + assertEquals("Something wrong when get new session", actualCreateNewSessionAdminResult.getMessage()); + assertEquals(500, actualCreateNewSessionAdminResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#createNewSessionAdmin(String, HttpServletResponse)} + */ + @Test + void testCreateNewSessionAdmin2() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + UserAuthenRequest actualCreateNewSessionAdminResult = (new AuthenImpl()).createNewSessionAdmin("ABC123", + mock(HttpServletResponseWrapper.class)); + + // Assert + assertEquals("Invalid compact JWT string: Compact JWSs must contain exactly 2 period characters, and compact JWEs" + + " must contain exactly 4. Found: 0", actualCreateNewSessionAdminResult.getError()); + assertEquals("Something wrong when get new session", actualCreateNewSessionAdminResult.getMessage()); + assertEquals(500, actualCreateNewSessionAdminResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#createNewSessionAdmin(String, HttpServletResponse)} + */ + @Test + @Disabled("TODO: Complete this test") + void testCreateNewSessionAdmin3() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@5cf2ea2a testClass = com.example.codeE.service.authentication.DiffblueFakeClass1076, locations = [], classes = [com.example.codeE.service.authentication.AuthenImpl, org.springframework.security.authentication.AuthenticationManager], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1e1ce717, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4bed107, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@4f965cfa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4afef7d6], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange and Act + authenImpl.createNewSessionAdmin("ABC123", new Response()); + } + + /** + * Method under test: + * {@link AuthenImpl#createNewSessionUser(String, HttpServletResponse)} + */ + @Test + void testCreateNewSessionUser() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + AuthenImpl authenImpl = new AuthenImpl(); + + // Act + UserAuthenRequest actualCreateNewSessionUserResult = authenImpl.createNewSessionUser("ABC123", new Response()); + + // Assert + assertEquals("Invalid compact JWT string: Compact JWSs must contain exactly 2 period characters, and compact JWEs" + + " must contain exactly 4. Found: 0", actualCreateNewSessionUserResult.getError()); + assertEquals("Something wrong when get new session", actualCreateNewSessionUserResult.getMessage()); + assertEquals(500, actualCreateNewSessionUserResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#createNewSessionUser(String, HttpServletResponse)} + */ + @Test + void testCreateNewSessionUser2() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange and Act + UserAuthenRequest actualCreateNewSessionUserResult = (new AuthenImpl()).createNewSessionUser("ABC123", + mock(HttpServletResponseWrapper.class)); + + // Assert + assertEquals("Invalid compact JWT string: Compact JWSs must contain exactly 2 period characters, and compact JWEs" + + " must contain exactly 4. Found: 0", actualCreateNewSessionUserResult.getError()); + assertEquals("Something wrong when get new session", actualCreateNewSessionUserResult.getMessage()); + assertEquals(500, actualCreateNewSessionUserResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#createNewSessionUser(String, HttpServletResponse)} + */ + @Test + @Disabled("TODO: Complete this test") + void testCreateNewSessionUser3() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@174f55c testClass = com.example.codeE.service.authentication.DiffblueFakeClass1119, locations = [], classes = [com.example.codeE.service.authentication.AuthenImpl, org.springframework.security.authentication.AuthenticationManager], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1e1ce717, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4bed107, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@4f965cfa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4afef7d6], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange and Act + authenImpl.createNewSessionUser("ABC123", new Response()); + } + + /** + * Method under test: + * {@link AuthenImpl#SendForgetPasswordOTP(String, HttpServletResponse)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSendForgetPasswordOTP() throws NoSuchMethodException { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@3c16fcbb testClass = com.example.codeE.service.authentication.DiffblueFakeClass1033, locations = [], classes = [com.example.codeE.service.authentication.AuthenImpl, org.springframework.security.authentication.AuthenticationManager], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1e1ce717, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4bed107, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@4f965cfa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4afef7d6], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange and Act + authenImpl.SendForgetPasswordOTP("janedoe", new Response()); + } + + /** + * Method under test: + * {@link AuthenImpl#CheckOTP(String, String, HttpServletRequest)} + */ + @Test + void testCheckOTP() { + // Arrange, Act and Assert + assertFalse(authenImpl.CheckOTP("OTP", "42", new MockHttpServletRequest())); + } + + /** + * Method under test: + * {@link AuthenImpl#CheckOTP(String, String, HttpServletRequest)} + */ + @Test + void testCheckOTP2() { + // Arrange + HttpServletRequestWrapper request = mock(HttpServletRequestWrapper.class); + when(request.getCookies()).thenReturn(new Cookie[]{new Cookie("Name", "https://example.org/example")}); + + // Act + boolean actualCheckOTPResult = authenImpl.CheckOTP("OTP", "42", request); + + // Assert + verify(request).getCookies(); + assertFalse(actualCheckOTPResult); + } + + /** + * Method under test: {@link AuthenImpl#updatePassword(String, String)} + */ + @Test + void testUpdatePassword() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange, Act and Assert + assertFalse((new AuthenImpl()).updatePassword("42", "iloveyou")); + } + + /** + * Method under test: {@link AuthenImpl#updatePassword(String, String)} + */ + @Test + @Disabled("TODO: Complete this test") + void testUpdatePassword2() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@e613b11 testClass = com.example.codeE.service.authentication.DiffblueFakeClass1396, locations = [], classes = [com.example.codeE.service.authentication.AuthenImpl, org.springframework.security.authentication.AuthenticationManager], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1e1ce717, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4bed107, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@4f965cfa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4afef7d6], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange and Act + authenImpl.updatePassword("42", "iloveyou"); + } + + /** + * Method under test: + * {@link AuthenImpl#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInAdmin() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + AuthenImpl authenImpl = new AuthenImpl(); + + LoginRequest signInRequest = new LoginRequest(); + signInRequest.setPassword("iloveyou"); + signInRequest.setUserName("janedoe"); + + // Act + UserAuthenRequest actualSignInAdminResult = authenImpl.signInAdmin(signInRequest, new Response()); + + // Assert + assertEquals("Cannot invoke \"com.example.codeE.repository.UserRepository.findUserByUserName(String)\" because" + + " \"this.userRepository\" is null", actualSignInAdminResult.getError()); + assertEquals("Something wrong when login", actualSignInAdminResult.getMessage()); + assertEquals(500, actualSignInAdminResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + void testSignInAdmin2() { + // Diffblue Cover was unable to create a Spring-specific test for this Spring method. + + // Arrange + AuthenImpl authenImpl = new AuthenImpl(); + LoginRequest signInRequest = mock(LoginRequest.class); + when(signInRequest.getUserName()).thenReturn("janedoe"); + doNothing().when(signInRequest).setPassword(Mockito.any()); + doNothing().when(signInRequest).setUserName(Mockito.any()); + signInRequest.setPassword("iloveyou"); + signInRequest.setUserName("janedoe"); + + // Act + UserAuthenRequest actualSignInAdminResult = authenImpl.signInAdmin(signInRequest, new Response()); + + // Assert + verify(signInRequest).getUserName(); + verify(signInRequest).setPassword(eq("iloveyou")); + verify(signInRequest).setUserName(eq("janedoe")); + assertEquals("Cannot invoke \"com.example.codeE.repository.UserRepository.findUserByUserName(String)\" because" + + " \"this.userRepository\" is null", actualSignInAdminResult.getError()); + assertEquals("Something wrong when login", actualSignInAdminResult.getMessage()); + assertEquals(500, actualSignInAdminResult.getStatusCode()); + } + + /** + * Method under test: + * {@link AuthenImpl#signInAdmin(LoginRequest, HttpServletResponse)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSignInAdmin3() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: Failed to create Spring context. + // Attempt to initialize test context failed with + // java.lang.IllegalStateException: ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@1bf564dd testClass = com.example.codeE.service.authentication.DiffblueFakeClass1279, locations = [], classes = [com.example.codeE.service.authentication.AuthenImpl, org.springframework.security.authentication.AuthenticationManager], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = [], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1e1ce717, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4bed107, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@4f965cfa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4afef7d6], contextLoader = org.springframework.test.context.support.DelegatingSmartContextLoader, parent = null] + // at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:145) + // at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + // at java.base/java.util.Optional.map(Optional.java:260) + // See https://diff.blue/R026 to resolve this issue. + + // Arrange + LoginRequest signInRequest = new LoginRequest(); + signInRequest.setPassword("iloveyou"); + signInRequest.setUserName("janedoe"); + + // Act + authenImpl.signInAdmin(signInRequest, new Response()); + } +} diff --git a/src/test/java/com/example/codeE/service/course/CourseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/course/CourseImplDiffblueTest.java new file mode 100644 index 00000000..50bc73cf --- /dev/null +++ b/src/test/java/com/example/codeE/service/course/CourseImplDiffblueTest.java @@ -0,0 +1,1697 @@ +package com.example.codeE.service.course; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.course.CourseStudent; +import com.example.codeE.model.course.CourseTeacher; +import com.example.codeE.model.group.Group; +import com.example.codeE.model.topic.Topic; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.CourseRepository; +import com.example.codeE.repository.CourseStudentRepository; +import com.example.codeE.repository.CourseTeacherRepository; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.course.CourseEnrollmentRequest; +import com.example.codeE.request.course.CourseEnrollmentResponse; +import com.example.codeE.request.course.CourseResponse; +import com.example.codeE.request.course.CourseTeacherResponse; +import com.example.codeE.request.course.CreateCourseRequest; +import com.example.codeE.request.course.UpdateCourseRequest; +import com.example.codeE.service.courseStudent.CourseStudentService; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.FileDescriptor; +import java.io.FileInputStream; +import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.ResponseEntity; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {CourseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class CourseImplDiffblueTest { + @Autowired + private CourseImpl courseImpl; + + @MockBean + private CourseRepository courseRepository; + + @MockBean + private CourseStudentRepository courseStudentRepository; + + @MockBean + private CourseStudentService courseStudentService; + + @MockBean + private CourseTeacherRepository courseTeacherRepository; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: {@link CourseImpl#createOne(CreateCourseRequest)} + */ + @Test + void testCreateOne() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(courseRepository.save(Mockito.any())).thenReturn(course); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + User teacher = new User(); + teacher.setCourseStudents(new ArrayList<>()); + teacher.setCourseTeachers(new ArrayList<>()); + teacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setEmail("jane.doe@example.org"); + teacher.setGroupStudents(new ArrayList<>()); + teacher.setName("Name"); + teacher.setPassword("iloveyou"); + teacher.setRole("Role"); + teacher.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setUserId("42"); + teacher.setUsername("janedoe"); + + CourseTeacher courseTeacher = new CourseTeacher(); + courseTeacher.setCourse(course2); + courseTeacher.setCourseId("42"); + courseTeacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + courseTeacher.setIsMain(true); + courseTeacher.setTeacher(teacher); + courseTeacher.setTeacherId("42"); + when(courseTeacherRepository.save(Mockito.any())).thenReturn(courseTeacher); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CourseResponse actualCreateOneResult = courseImpl.createOne( + new CreateCourseRequest("Course Name", "Semester", "The characteristics of someone or something", "42")); + + // Assert + verify(userRepository).findById(eq("42")); + verify(courseRepository).save(isA(Course.class)); + verify(courseTeacherRepository).save(isA(CourseTeacher.class)); + LocalTime expectedToLocalTimeResult = actualCreateOneResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualCreateOneResult.getTeacher().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: {@link CourseImpl#createOne(CreateCourseRequest)} + */ + @Test + void testCreateOne2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(courseRepository.save(Mockito.any())).thenReturn(course); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + User teacher = new User(); + teacher.setCourseStudents(new ArrayList<>()); + teacher.setCourseTeachers(new ArrayList<>()); + teacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setEmail("jane.doe@example.org"); + teacher.setGroupStudents(new ArrayList<>()); + teacher.setName("Name"); + teacher.setPassword("iloveyou"); + teacher.setRole("Role"); + teacher.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setUserId("42"); + teacher.setUsername("janedoe"); + + CourseTeacher courseTeacher = new CourseTeacher(); + courseTeacher.setCourse(course2); + courseTeacher.setCourseId("42"); + courseTeacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + courseTeacher.setIsMain(true); + courseTeacher.setTeacher(teacher); + courseTeacher.setTeacherId("42"); + when(courseTeacherRepository.save(Mockito.any())).thenReturn(courseTeacher); + when(userRepository.findById(Mockito.any())) + .thenThrow(new NoSuchElementException("abcdefghijklmnopqrstuvwxyz")); + + // Act + CourseResponse actualCreateOneResult = courseImpl.createOne( + new CreateCourseRequest("Course Name", "Semester", "The characteristics of someone or something", "42")); + + // Assert + verify(userRepository).findById(eq("42")); + verify(courseRepository).save(isA(Course.class)); + verify(courseTeacherRepository).save(isA(CourseTeacher.class)); + assertNull(actualCreateOneResult); + } + + /** + * Method under test: {@link CourseImpl#createOne(CreateCourseRequest)} + */ + @Test + void testCreateOne3() { + // Arrange + Course course = mock(Course.class); + when(course.getCourseId()).thenReturn("42"); + when(course.getCourseName()).thenReturn("Course Name"); + when(course.getDescription()).thenReturn("The characteristics of someone or something"); + when(course.getEnrollKey()).thenReturn("Enroll Key"); + when(course.getSemester()).thenReturn("Semester"); + when(course.getCreatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(course.getUpdatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + doNothing().when(course).setCourseId(Mockito.any()); + doNothing().when(course).setCourseName(Mockito.any()); + doNothing().when(course).setCourseStudents(Mockito.>any()); + doNothing().when(course).setCourseTeachers(Mockito.>any()); + doNothing().when(course).setCreatedDate(Mockito.any()); + doNothing().when(course).setDescription(Mockito.any()); + doNothing().when(course).setEnrollKey(Mockito.any()); + doNothing().when(course).setGroups(Mockito.>any()); + doNothing().when(course).setSemester(Mockito.any()); + doNothing().when(course).setTopics(Mockito.>any()); + doNothing().when(course).setUpdatedDate(Mockito.any()); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(courseRepository.save(Mockito.any())).thenReturn(course); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + User teacher = new User(); + teacher.setCourseStudents(new ArrayList<>()); + teacher.setCourseTeachers(new ArrayList<>()); + teacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setEmail("jane.doe@example.org"); + teacher.setGroupStudents(new ArrayList<>()); + teacher.setName("Name"); + teacher.setPassword("iloveyou"); + teacher.setRole("Role"); + teacher.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setUserId("42"); + teacher.setUsername("janedoe"); + + CourseTeacher courseTeacher = new CourseTeacher(); + courseTeacher.setCourse(course2); + courseTeacher.setCourseId("42"); + courseTeacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + courseTeacher.setIsMain(true); + courseTeacher.setTeacher(teacher); + courseTeacher.setTeacherId("42"); + when(courseTeacherRepository.save(Mockito.any())).thenReturn(courseTeacher); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CourseResponse actualCreateOneResult = courseImpl.createOne( + new CreateCourseRequest("Course Name", "Semester", "The characteristics of someone or something", "42")); + + // Assert + verify(course, atLeast(1)).getCourseId(); + verify(course).getCourseName(); + verify(course).getCreatedDate(); + verify(course).getDescription(); + verify(course).getEnrollKey(); + verify(course).getSemester(); + verify(course).getUpdatedDate(); + verify(course).setCourseId(eq("42")); + verify(course).setCourseName(eq("Course Name")); + verify(course).setCourseStudents(isA(List.class)); + verify(course).setCourseTeachers(isA(List.class)); + verify(course).setCreatedDate(isA(LocalDateTime.class)); + verify(course).setDescription(eq("The characteristics of someone or something")); + verify(course).setEnrollKey(eq("Enroll Key")); + verify(course).setGroups(isA(List.class)); + verify(course).setSemester(eq("Semester")); + verify(course).setTopics(isA(List.class)); + verify(course).setUpdatedDate(isA(LocalDateTime.class)); + verify(userRepository).findById(eq("42")); + verify(courseRepository).save(isA(Course.class)); + verify(courseTeacherRepository).save(isA(CourseTeacher.class)); + LocalTime expectedToLocalTimeResult = actualCreateOneResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualCreateOneResult.getTeacher().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: {@link CourseImpl#getById(String)} + */ + @Test + void testGetById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.getTeacherInCourse(Mockito.any())).thenReturn(user); + when(userRepository.getUserInCourse(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + CourseResponse actualById = courseImpl.getById("42"); + + // Assert + verify(userRepository).getTeacherInCourse(eq("42")); + verify(userRepository).getUserInCourse(eq("42")); + verify(courseRepository).findById(eq("42")); + LocalTime expectedToLocalTimeResult = actualById.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualById.getTeacher().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: {@link CourseImpl#getById(String)} + */ + @Test + void testGetById2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(userRepository.getUserInCourse(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> courseImpl.getById("42")); + verify(userRepository).getUserInCourse(eq("42")); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getById(String)} + */ + @Test + void testGetById3() { + // Arrange + Course course = mock(Course.class); + when(course.getCourseId()).thenReturn("42"); + when(course.getCourseName()).thenReturn("Course Name"); + when(course.getDescription()).thenReturn("The characteristics of someone or something"); + when(course.getEnrollKey()).thenReturn("Enroll Key"); + when(course.getSemester()).thenReturn("Semester"); + when(course.getCreatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(course.getUpdatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + doNothing().when(course).setCourseId(Mockito.any()); + doNothing().when(course).setCourseName(Mockito.any()); + doNothing().when(course).setCourseStudents(Mockito.>any()); + doNothing().when(course).setCourseTeachers(Mockito.>any()); + doNothing().when(course).setCreatedDate(Mockito.any()); + doNothing().when(course).setDescription(Mockito.any()); + doNothing().when(course).setEnrollKey(Mockito.any()); + doNothing().when(course).setGroups(Mockito.>any()); + doNothing().when(course).setSemester(Mockito.any()); + doNothing().when(course).setTopics(Mockito.>any()); + doNothing().when(course).setUpdatedDate(Mockito.any()); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.getTeacherInCourse(Mockito.any())).thenReturn(user); + when(userRepository.getUserInCourse(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + CourseResponse actualById = courseImpl.getById("42"); + + // Assert + verify(course).getCourseId(); + verify(course).getCourseName(); + verify(course).getCreatedDate(); + verify(course).getDescription(); + verify(course).getEnrollKey(); + verify(course).getSemester(); + verify(course).getUpdatedDate(); + verify(course).setCourseId(eq("42")); + verify(course).setCourseName(eq("Course Name")); + verify(course).setCourseStudents(isA(List.class)); + verify(course).setCourseTeachers(isA(List.class)); + verify(course).setCreatedDate(isA(LocalDateTime.class)); + verify(course).setDescription(eq("The characteristics of someone or something")); + verify(course).setEnrollKey(eq("Enroll Key")); + verify(course).setGroups(isA(List.class)); + verify(course).setSemester(eq("Semester")); + verify(course).setTopics(isA(List.class)); + verify(course).setUpdatedDate(isA(LocalDateTime.class)); + verify(userRepository).getTeacherInCourse(eq("42")); + verify(userRepository).getUserInCourse(eq("42")); + verify(courseRepository).findById(eq("42")); + LocalTime expectedToLocalTimeResult = actualById.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualById.getTeacher().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: {@link CourseImpl#getById(String)} + */ + @Test + void testGetById4() { + // Arrange + Optional emptyResult = Optional.empty(); + when(courseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.getById("42")); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getAll()} + */ + @Test + void testGetAll() { + // Arrange + when(courseRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualAll = courseImpl.getAll(); + + // Assert + verify(courseRepository).findAll(); + assertTrue(actualAll.isEmpty()); + } + + /** + * Method under test: {@link CourseImpl#getAll()} + */ + @Test + void testGetAll2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + ArrayList courseList = new ArrayList<>(); + courseList.add(course); + when(courseRepository.findAll()).thenReturn(courseList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.getTeacherInCourse(Mockito.any())).thenReturn(user); + when(userRepository.getUserInCourse(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAll = courseImpl.getAll(); + + // Assert + verify(userRepository).getTeacherInCourse(eq("42")); + verify(userRepository).getUserInCourse(eq("42")); + verify(courseRepository).findAll(); + assertEquals(1, actualAll.size()); + } + + /** + * Method under test: {@link CourseImpl#getAll()} + */ + @Test + void testGetAll3() { + // Arrange + Course course = mock(Course.class); + when(course.getCourseId()).thenReturn("42"); + when(course.getCourseName()).thenReturn("Course Name"); + when(course.getDescription()).thenReturn("The characteristics of someone or something"); + when(course.getEnrollKey()).thenReturn("Enroll Key"); + when(course.getSemester()).thenReturn("Semester"); + when(course.getCreatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(course.getUpdatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + doNothing().when(course).setCourseId(Mockito.any()); + doNothing().when(course).setCourseName(Mockito.any()); + doNothing().when(course).setCourseStudents(Mockito.>any()); + doNothing().when(course).setCourseTeachers(Mockito.>any()); + doNothing().when(course).setCreatedDate(Mockito.any()); + doNothing().when(course).setDescription(Mockito.any()); + doNothing().when(course).setEnrollKey(Mockito.any()); + doNothing().when(course).setGroups(Mockito.>any()); + doNothing().when(course).setSemester(Mockito.any()); + doNothing().when(course).setTopics(Mockito.>any()); + doNothing().when(course).setUpdatedDate(Mockito.any()); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + ArrayList courseList = new ArrayList<>(); + courseList.add(course); + when(courseRepository.findAll()).thenReturn(courseList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.getTeacherInCourse(Mockito.any())).thenReturn(user); + when(userRepository.getUserInCourse(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAll = courseImpl.getAll(); + + // Assert + verify(course, atLeast(1)).getCourseId(); + verify(course).getCourseName(); + verify(course).getCreatedDate(); + verify(course).getDescription(); + verify(course).getEnrollKey(); + verify(course).getSemester(); + verify(course).getUpdatedDate(); + verify(course).setCourseId(eq("42")); + verify(course).setCourseName(eq("Course Name")); + verify(course).setCourseStudents(isA(List.class)); + verify(course).setCourseTeachers(isA(List.class)); + verify(course).setCreatedDate(isA(LocalDateTime.class)); + verify(course).setDescription(eq("The characteristics of someone or something")); + verify(course).setEnrollKey(eq("Enroll Key")); + verify(course).setGroups(isA(List.class)); + verify(course).setSemester(eq("Semester")); + verify(course).setTopics(isA(List.class)); + verify(course).setUpdatedDate(isA(LocalDateTime.class)); + verify(userRepository).getTeacherInCourse(eq("42")); + verify(userRepository).getUserInCourse(eq("42")); + verify(courseRepository).findAll(); + assertEquals(1, actualAll.size()); + } + + /** + * Method under test: {@link CourseImpl#deleteById(String)} + */ + @Test + void testDeleteById() { + // Arrange + doNothing().when(courseRepository).deleteById(Mockito.any()); + when(courseRepository.existsById(Mockito.any())).thenReturn(true); + + // Act + courseImpl.deleteById("42"); + + // Assert that nothing has changed + verify(courseRepository).deleteById(eq("42")); + verify(courseRepository).existsById(eq("42")); + assertTrue(courseImpl.getAll().isEmpty()); + } + + /** + * Method under test: {@link CourseImpl#deleteById(String)} + */ + @Test + void testDeleteById2() { + // Arrange + doThrow(new NoSuchElementException("foo")).when(courseRepository).deleteById(Mockito.any()); + when(courseRepository.existsById(Mockito.any())).thenReturn(true); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.deleteById("42")); + verify(courseRepository).deleteById(eq("42")); + verify(courseRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#deleteById(String)} + */ + @Test + void testDeleteById3() { + // Arrange + when(courseRepository.existsById(Mockito.any())).thenReturn(false); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.deleteById("42")); + verify(courseRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#updateById(String, UpdateCourseRequest)} + */ + @Test + void testUpdateById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(courseRepository.save(Mockito.any())).thenReturn(course2); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + User teacher = new User(); + teacher.setCourseStudents(new ArrayList<>()); + teacher.setCourseTeachers(new ArrayList<>()); + teacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setEmail("jane.doe@example.org"); + teacher.setGroupStudents(new ArrayList<>()); + teacher.setName("Name"); + teacher.setPassword("iloveyou"); + teacher.setRole("Role"); + teacher.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setUserId("42"); + teacher.setUsername("janedoe"); + + CourseTeacher courseTeacher = new CourseTeacher(); + courseTeacher.setCourse(course3); + courseTeacher.setCourseId("42"); + courseTeacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + courseTeacher.setIsMain(true); + courseTeacher.setTeacher(teacher); + courseTeacher.setTeacherId("42"); + when(courseTeacherRepository.save(Mockito.any())).thenReturn(courseTeacher); + doNothing().when(courseTeacherRepository).deleteTeacherInCourseByCourseId(Mockito.any()); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + Course actualUpdateByIdResult = courseImpl.updateById("42", new UpdateCourseRequest("42", "Course Name", "Semester", + "Enroll Key", "The characteristics of someone or something", "42")); + + // Assert + verify(courseTeacherRepository).deleteTeacherInCourseByCourseId(eq("42")); + verify(courseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(courseRepository).save(isA(Course.class)); + verify(courseTeacherRepository).save(isA(CourseTeacher.class)); + LocalTime expectedToLocalTimeResult = actualUpdateByIdResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualUpdateByIdResult.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link CourseImpl#updateById(String, UpdateCourseRequest)} + */ + @Test + void testUpdateById2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(courseRepository.save(Mockito.any())).thenReturn(course2); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(courseTeacherRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + doNothing().when(courseTeacherRepository).deleteTeacherInCourseByCourseId(Mockito.any()); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.updateById("42", new UpdateCourseRequest("42", + "Course Name", "Semester", "Enroll Key", "The characteristics of someone or something", "42"))); + verify(courseTeacherRepository).deleteTeacherInCourseByCourseId(eq("42")); + verify(courseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(courseTeacherRepository).save(isA(CourseTeacher.class)); + } + + /** + * Method under test: {@link CourseImpl#updateById(String, UpdateCourseRequest)} + */ + @Test + void testUpdateById3() { + // Arrange + Course course = mock(Course.class); + doNothing().when(course).setCourseId(Mockito.any()); + doNothing().when(course).setCourseName(Mockito.any()); + doNothing().when(course).setCourseStudents(Mockito.>any()); + doNothing().when(course).setCourseTeachers(Mockito.>any()); + doNothing().when(course).setCreatedDate(Mockito.any()); + doNothing().when(course).setDescription(Mockito.any()); + doNothing().when(course).setEnrollKey(Mockito.any()); + doNothing().when(course).setGroups(Mockito.>any()); + doNothing().when(course).setSemester(Mockito.any()); + doNothing().when(course).setTopics(Mockito.>any()); + doNothing().when(course).setUpdatedDate(Mockito.any()); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(courseRepository.save(Mockito.any())).thenReturn(course2); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + User teacher = new User(); + teacher.setCourseStudents(new ArrayList<>()); + teacher.setCourseTeachers(new ArrayList<>()); + teacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setEmail("jane.doe@example.org"); + teacher.setGroupStudents(new ArrayList<>()); + teacher.setName("Name"); + teacher.setPassword("iloveyou"); + teacher.setRole("Role"); + teacher.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + teacher.setUserId("42"); + teacher.setUsername("janedoe"); + + CourseTeacher courseTeacher = new CourseTeacher(); + courseTeacher.setCourse(course3); + courseTeacher.setCourseId("42"); + courseTeacher.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + courseTeacher.setIsMain(true); + courseTeacher.setTeacher(teacher); + courseTeacher.setTeacherId("42"); + when(courseTeacherRepository.save(Mockito.any())).thenReturn(courseTeacher); + doNothing().when(courseTeacherRepository).deleteTeacherInCourseByCourseId(Mockito.any()); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + Course actualUpdateByIdResult = courseImpl.updateById("42", new UpdateCourseRequest("42", "Course Name", "Semester", + "Enroll Key", "The characteristics of someone or something", "42")); + + // Assert + verify(course).setCourseId(eq("42")); + verify(course, atLeast(1)).setCourseName(eq("Course Name")); + verify(course).setCourseStudents(isA(List.class)); + verify(course).setCourseTeachers(isA(List.class)); + verify(course).setCreatedDate(isA(LocalDateTime.class)); + verify(course, atLeast(1)).setDescription(eq("The characteristics of someone or something")); + verify(course, atLeast(1)).setEnrollKey(eq("Enroll Key")); + verify(course).setGroups(isA(List.class)); + verify(course, atLeast(1)).setSemester(eq("Semester")); + verify(course).setTopics(isA(List.class)); + verify(course).setUpdatedDate(isA(LocalDateTime.class)); + verify(courseTeacherRepository).deleteTeacherInCourseByCourseId(eq("42")); + verify(courseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(courseRepository).save(isA(Course.class)); + verify(courseTeacherRepository).save(isA(CourseTeacher.class)); + LocalTime expectedToLocalTimeResult = actualUpdateByIdResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualUpdateByIdResult.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link CourseImpl#updateById(String, UpdateCourseRequest)} + */ + @Test + void testUpdateById4() { + // Arrange + Optional emptyResult = Optional.empty(); + when(courseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.updateById("42", new UpdateCourseRequest("42", + "Course Name", "Semester", "Enroll Key", "The characteristics of someone or something", "42"))); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#importByExcel(MultipartFile)} + */ + @Test + void testImportByExcel() throws IOException { + // Arrange and Act + ResponseEntity> actualImportByExcelResult = courseImpl + .importByExcel(new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Assert + assertEquals(2, actualImportByExcelResult.getBody().size()); + assertEquals(200, actualImportByExcelResult.getStatusCodeValue()); + assertTrue(actualImportByExcelResult.hasBody()); + assertTrue(actualImportByExcelResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link CourseImpl#importByExcel(MultipartFile)} + */ + @Test + void testImportByExcel2() throws IOException { + // Arrange and Act + ResponseEntity> actualImportByExcelResult = courseImpl + .importByExcel(new MockMultipartFile("message", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Assert + assertEquals(2, actualImportByExcelResult.getBody().size()); + assertEquals(200, actualImportByExcelResult.getStatusCodeValue()); + assertTrue(actualImportByExcelResult.hasBody()); + assertTrue(actualImportByExcelResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link CourseImpl#importByExcel(MultipartFile)} + */ + @Test + void testImportByExcel3() throws IOException { + // Arrange + DataInputStream contentStream = mock(DataInputStream.class); + when(contentStream.readAllBytes()).thenReturn("AXAXAXAX".getBytes("UTF-8")); + doNothing().when(contentStream).close(); + + // Act + ResponseEntity> actualImportByExcelResult = courseImpl + .importByExcel(new MockMultipartFile("Name", contentStream)); + + // Assert + verify(contentStream).close(); + verify(contentStream).readAllBytes(); + assertEquals(2, actualImportByExcelResult.getBody().size()); + assertEquals(200, actualImportByExcelResult.getStatusCodeValue()); + assertTrue(actualImportByExcelResult.hasBody()); + assertTrue(actualImportByExcelResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link CourseImpl#importByExcel(MultipartFile)} + */ + @Test + void testImportByExcel4() throws IOException { + // Arrange + MockMultipartFile file = mock(MockMultipartFile.class); + when(file.getInputStream()).thenReturn(new FileInputStream(new FileDescriptor())); + + // Act + ResponseEntity> actualImportByExcelResult = courseImpl.importByExcel(file); + + // Assert + verify(file).getInputStream(); + assertEquals(2, actualImportByExcelResult.getBody().size()); + assertEquals(200, actualImportByExcelResult.getStatusCodeValue()); + assertTrue(actualImportByExcelResult.hasBody()); + assertTrue(actualImportByExcelResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link CourseImpl#importByExcel(MultipartFile)} + */ + @Test + void testImportByExcel5() throws IOException { + // Arrange + MockMultipartFile file = mock(MockMultipartFile.class); + when(file.getInputStream()).thenThrow(new IOException("foo")); + + // Act + ResponseEntity> actualImportByExcelResult = courseImpl.importByExcel(file); + + // Assert + verify(file).getInputStream(); + assertEquals(1, actualImportByExcelResult.getBody().size()); + assertEquals(500, actualImportByExcelResult.getStatusCodeValue()); + assertTrue(actualImportByExcelResult.hasBody()); + assertTrue(actualImportByExcelResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link CourseImpl#checkCourseExistById(String)} + */ + @Test + void testCheckCourseExistById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Boolean actualCheckCourseExistByIdResult = courseImpl.checkCourseExistById("42"); + + // Assert + verify(courseRepository).findById(eq("42")); + assertTrue(actualCheckCourseExistByIdResult); + } + + /** + * Method under test: {@link CourseImpl#checkCourseExistById(String)} + */ + @Test + void testCheckCourseExistById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(courseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act + Boolean actualCheckCourseExistByIdResult = courseImpl.checkCourseExistById("42"); + + // Assert + verify(courseRepository).findById(eq("42")); + assertFalse(actualCheckCourseExistByIdResult); + } + + /** + * Method under test: {@link CourseImpl#checkCourseExistById(String)} + */ + @Test + void testCheckCourseExistById3() { + // Arrange + when(courseRepository.findById(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.checkCourseExistById("42")); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link CourseImpl#enrollStudentToCourse(CourseEnrollmentRequest)} + */ + @Test + void testEnrollStudentToCourse() { + // Arrange + when(courseStudentService.checkStudentInCourse(Mockito.any(), Mockito.any())).thenReturn(true); + + // Act + CourseEnrollmentResponse actualEnrollStudentToCourseResult = courseImpl + .enrollStudentToCourse(new CourseEnrollmentRequest("42", "42", "Enrollment Key")); + + // Assert + verify(courseStudentService).checkStudentInCourse(eq("42"), eq("42")); + assertEquals("Can not enroll in course", actualEnrollStudentToCourseResult.getError()); + assertEquals("User already enrolled in course", actualEnrollStudentToCourseResult.getMessage()); + assertEquals(409, actualEnrollStudentToCourseResult.getStatus()); + } + + /** + * Method under test: + * {@link CourseImpl#enrollStudentToCourse(CourseEnrollmentRequest)} + */ + @Test + void testEnrollStudentToCourse2() { + // Arrange + when(courseStudentService.checkStudentInCourse(Mockito.any(), Mockito.any())) + .thenThrow(new NoSuchElementException("Enroll Key")); + + // Act and Assert + assertThrows(NoSuchElementException.class, + () -> courseImpl.enrollStudentToCourse(new CourseEnrollmentRequest("42", "42", "Enrollment Key"))); + verify(courseStudentService).checkStudentInCourse(eq("42"), eq("42")); + } + + /** + * Method under test: + * {@link CourseImpl#enrollStudentToCourse(CourseEnrollmentRequest)} + */ + @Test + void testEnrollStudentToCourse3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(courseStudentService.checkStudentInCourse(Mockito.any(), Mockito.any())).thenReturn(false); + + // Act + CourseEnrollmentResponse actualEnrollStudentToCourseResult = courseImpl + .enrollStudentToCourse(new CourseEnrollmentRequest("42", "42", "Enrollment Key")); + + // Assert + verify(courseStudentService).checkStudentInCourse(eq("42"), eq("42")); + verify(courseRepository).findById(eq("42")); + assertEquals("Invalid enrollment key", actualEnrollStudentToCourseResult.getError()); + assertEquals("Your key not match, please try again", actualEnrollStudentToCourseResult.getMessage()); + assertEquals(400, actualEnrollStudentToCourseResult.getStatus()); + } + + /** + * Method under test: + * {@link CourseImpl#enrollStudentToCourse(CourseEnrollmentRequest)} + */ + @Test + void testEnrollStudentToCourse4() { + // Arrange + Course course = mock(Course.class); + when(course.getEnrollKey()).thenReturn("Enroll Key"); + doNothing().when(course).setCourseId(Mockito.any()); + doNothing().when(course).setCourseName(Mockito.any()); + doNothing().when(course).setCourseStudents(Mockito.>any()); + doNothing().when(course).setCourseTeachers(Mockito.>any()); + doNothing().when(course).setCreatedDate(Mockito.any()); + doNothing().when(course).setDescription(Mockito.any()); + doNothing().when(course).setEnrollKey(Mockito.any()); + doNothing().when(course).setGroups(Mockito.>any()); + doNothing().when(course).setSemester(Mockito.any()); + doNothing().when(course).setTopics(Mockito.>any()); + doNothing().when(course).setUpdatedDate(Mockito.any()); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(courseStudentService.checkStudentInCourse(Mockito.any(), Mockito.any())).thenReturn(false); + + // Act + CourseEnrollmentResponse actualEnrollStudentToCourseResult = courseImpl + .enrollStudentToCourse(new CourseEnrollmentRequest("42", "42", "Enrollment Key")); + + // Assert + verify(course).getEnrollKey(); + verify(course).setCourseId(eq("42")); + verify(course).setCourseName(eq("Course Name")); + verify(course).setCourseStudents(isA(List.class)); + verify(course).setCourseTeachers(isA(List.class)); + verify(course).setCreatedDate(isA(LocalDateTime.class)); + verify(course).setDescription(eq("The characteristics of someone or something")); + verify(course).setEnrollKey(eq("Enroll Key")); + verify(course).setGroups(isA(List.class)); + verify(course).setSemester(eq("Semester")); + verify(course).setTopics(isA(List.class)); + verify(course).setUpdatedDate(isA(LocalDateTime.class)); + verify(courseStudentService).checkStudentInCourse(eq("42"), eq("42")); + verify(courseRepository).findById(eq("42")); + assertEquals("Invalid enrollment key", actualEnrollStudentToCourseResult.getError()); + assertEquals("Your key not match, please try again", actualEnrollStudentToCourseResult.getMessage()); + assertEquals(400, actualEnrollStudentToCourseResult.getStatus()); + } + + /** + * Method under test: {@link CourseImpl#unEnrollUserInCourse(String, String)} + */ + @Test + void testUnEnrollUserInCourse() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + ArrayList courseStudents = new ArrayList<>(); + course.setCourseStudents(courseStudents); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + doNothing().when(courseTeacherRepository) + .deleteByStudentIdAndCourseId(Mockito.any(), Mockito.any()); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + courseImpl.unEnrollUserInCourse("42", "42"); + + // Assert that nothing has changed + verify(courseTeacherRepository).deleteByStudentIdAndCourseId(eq("42"), eq("42")); + verify(courseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + assertEquals(courseStudents, courseImpl.getAll()); + } + + /** + * Method under test: {@link CourseImpl#unEnrollUserInCourse(String, String)} + */ + @Test + void testUnEnrollUserInCourse2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + doThrow(new NoSuchElementException("student")).when(courseTeacherRepository) + .deleteByStudentIdAndCourseId(Mockito.any(), Mockito.any()); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act and Assert + assertThrows(RuntimeException.class, () -> courseImpl.unEnrollUserInCourse("42", "42")); + verify(courseTeacherRepository).deleteByStudentIdAndCourseId(eq("42"), eq("42")); + verify(courseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#unEnrollUserInCourse(String, String)} + */ + @Test + void testUnEnrollUserInCourse3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(courseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.unEnrollUserInCourse("42", "42")); + verify(courseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#unEnrollUserInCourse(String, String)} + */ + @Test + void testUnEnrollUserInCourse4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.unEnrollUserInCourse("42", "42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getCourseByUserId(String)} + */ + @Test + void testGetCourseByUserId() { + // Arrange + ArrayList courseList = new ArrayList<>(); + when(courseRepository.getCourseByTeacherId(Mockito.any())).thenReturn(courseList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualCourseByUserId = courseImpl.getCourseByUserId("42"); + + // Assert + verify(courseRepository).getCourseByTeacherId(eq("42")); + verify(userRepository).findById(eq("42")); + assertTrue(actualCourseByUserId.isEmpty()); + assertSame(courseList, actualCourseByUserId); + } + + /** + * Method under test: {@link CourseImpl#getCourseByUserId(String)} + */ + @Test + void testGetCourseByUserId2() { + // Arrange + when(courseRepository.getCourseByTeacherId(Mockito.any())).thenThrow(new NoSuchElementException("student")); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.getCourseByUserId("42")); + verify(courseRepository).getCourseByTeacherId(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getCourseByUserId(String)} + */ + @Test + void testGetCourseByUserId3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.getCourseByUserId("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getCourseByStudentId(String)} + */ + @Test + void testGetCourseByStudentId() { + // Arrange + ArrayList courseList = new ArrayList<>(); + when(courseRepository.getCourseByStudentId(Mockito.any())).thenReturn(courseList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualCourseByStudentId = courseImpl.getCourseByStudentId("42"); + + // Assert + verify(courseRepository).getCourseByStudentId(eq("42")); + verify(userRepository).findById(eq("42")); + assertTrue(actualCourseByStudentId.isEmpty()); + assertSame(courseList, actualCourseByStudentId); + } + + /** + * Method under test: {@link CourseImpl#getCourseByStudentId(String)} + */ + @Test + void testGetCourseByStudentId2() { + // Arrange + when(courseRepository.getCourseByStudentId(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.getCourseByStudentId("42")); + verify(courseRepository).getCourseByStudentId(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getCourseByStudentId(String)} + */ + @Test + void testGetCourseByStudentId3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.getCourseByStudentId("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getCourseByTeacherId(String)} + */ + @Test + void testGetCourseByTeacherId() { + // Arrange + ArrayList courseList = new ArrayList<>(); + when(courseRepository.getCourseByTeacherId(Mockito.any())).thenReturn(courseList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualCourseByTeacherId = courseImpl.getCourseByTeacherId("42"); + + // Assert + verify(courseRepository).getCourseByTeacherId(eq("42")); + verify(userRepository).findById(eq("42")); + assertTrue(actualCourseByTeacherId.isEmpty()); + assertSame(courseList, actualCourseByTeacherId); + } + + /** + * Method under test: {@link CourseImpl#getCourseByTeacherId(String)} + */ + @Test + void testGetCourseByTeacherId2() { + // Arrange + when(courseRepository.getCourseByTeacherId(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.getCourseByTeacherId("42")); + verify(courseRepository).getCourseByTeacherId(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CourseImpl#getCourseByTeacherId(String)} + */ + @Test + void testGetCourseByTeacherId3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> courseImpl.getCourseByTeacherId("42")); + verify(userRepository).findById(eq("42")); + } +} diff --git a/src/test/java/com/example/codeE/service/courseStudent/CourseStudentImplDiffblueTest.java b/src/test/java/com/example/codeE/service/courseStudent/CourseStudentImplDiffblueTest.java new file mode 100644 index 00000000..8a8f8c5d --- /dev/null +++ b/src/test/java/com/example/codeE/service/courseStudent/CourseStudentImplDiffblueTest.java @@ -0,0 +1,478 @@ +package com.example.codeE.service.courseStudent; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.ArgumentMatchers.isNull; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.course.CourseStudent; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.CourseStudentRepository; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.course.AddStudentToCourseRequest; +import com.example.codeE.request.course.ImportStudentToCourseRequest; +import com.example.codeE.request.course.RemoveStudentFromCourseRequest; +import com.example.codeE.request.course.UpdateStudentsToCourseRequest; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.time.LocalDate; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {CourseStudentImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class CourseStudentImplDiffblueTest { + @Autowired + private CourseStudentImpl courseStudentImpl; + + @MockBean + private CourseStudentRepository courseStudentRepository; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: + * {@link CourseStudentImpl#addStudentToCourse(AddStudentToCourseRequest)} + */ + @Test + void testAddStudentToCourse() { + // Arrange, Act and Assert + assertTrue(courseStudentImpl.addStudentToCourse(new AddStudentToCourseRequest()).isEmpty()); + assertTrue(courseStudentImpl.addStudentToCourse(null).isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#addStudentToCourse(AddStudentToCourseRequest)} + */ + @Test + void testAddStudentToCourse2() { + // Arrange + AddStudentToCourseRequest request = new AddStudentToCourseRequest(); + request.setStudentIds(new ArrayList<>()); + + // Act and Assert + assertTrue(courseStudentImpl.addStudentToCourse(request).isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#addStudentToCourse(AddStudentToCourseRequest)} + */ + @Test + void testAddStudentToCourse3() { + // Arrange + AddStudentToCourseRequest request = mock(AddStudentToCourseRequest.class); + when(request.getStudentIds()).thenReturn(new ArrayList<>()); + + // Act + ArrayList actualAddStudentToCourseResult = courseStudentImpl.addStudentToCourse(request); + + // Assert + verify(request).getStudentIds(); + assertTrue(actualAddStudentToCourseResult.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#addStudentToCourse(AddStudentToCourseRequest)} + */ + @Test + void testAddStudentToCourse4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + CourseStudent courseStudent = new CourseStudent(); + courseStudent.setCourse(course); + courseStudent.setCourseId("42"); + courseStudent.setJoinDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + courseStudent.setStudent(student); + courseStudent.setStudentId("42"); + when(courseStudentRepository.save(Mockito.any())).thenReturn(courseStudent); + + ArrayList stringList = new ArrayList<>(); + stringList.add("foo"); + AddStudentToCourseRequest request = mock(AddStudentToCourseRequest.class); + when(request.getCourseId()).thenReturn("42"); + when(request.getStudentIds()).thenReturn(stringList); + + // Act + ArrayList actualAddStudentToCourseResult = courseStudentImpl.addStudentToCourse(request); + + // Assert + verify(request).getCourseId(); + verify(request).getStudentIds(); + verify(courseStudentRepository).save(isA(CourseStudent.class)); + assertEquals(1, actualAddStudentToCourseResult.size()); + CourseStudent getResult = actualAddStudentToCourseResult.get(0); + LocalTime expectedToLocalTimeResult = getResult.getJoinDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, getResult.getCourse().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#updateStudentsInCourse(UpdateStudentsToCourseRequest)} + */ + @Test + void testUpdateStudentsInCourse() { + // Arrange + doNothing().when(courseStudentRepository).deleteAllStudentsByCourseId(Mockito.any()); + + // Act + List actualUpdateStudentsInCourseResult = courseStudentImpl + .updateStudentsInCourse(new UpdateStudentsToCourseRequest()); + + // Assert + verify(courseStudentRepository).deleteAllStudentsByCourseId(isNull()); + assertTrue(actualUpdateStudentsInCourseResult.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#updateStudentsInCourse(UpdateStudentsToCourseRequest)} + */ + @Test + void testUpdateStudentsInCourse2() { + // Arrange + doNothing().when(courseStudentRepository).deleteAllStudentsByCourseId(Mockito.any()); + + UpdateStudentsToCourseRequest request = new UpdateStudentsToCourseRequest(); + request.setStudentIds(new ArrayList<>()); + + // Act + List actualUpdateStudentsInCourseResult = courseStudentImpl.updateStudentsInCourse(request); + + // Assert + verify(courseStudentRepository).deleteAllStudentsByCourseId(isNull()); + assertTrue(actualUpdateStudentsInCourseResult.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#updateStudentsInCourse(UpdateStudentsToCourseRequest)} + */ + @Test + void testUpdateStudentsInCourse3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + CourseStudent courseStudent = new CourseStudent(); + courseStudent.setCourse(course); + courseStudent.setCourseId("42"); + courseStudent.setJoinDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + courseStudent.setStudent(student); + courseStudent.setStudentId("42"); + when(courseStudentRepository.save(Mockito.any())).thenReturn(courseStudent); + doNothing().when(courseStudentRepository).deleteAllStudentsByCourseId(Mockito.any()); + + ArrayList studentIds = new ArrayList<>(); + studentIds.add("foo"); + + UpdateStudentsToCourseRequest request = new UpdateStudentsToCourseRequest(); + request.setStudentIds(studentIds); + + // Act + List actualUpdateStudentsInCourseResult = courseStudentImpl.updateStudentsInCourse(request); + + // Assert + verify(courseStudentRepository).deleteAllStudentsByCourseId(isNull()); + verify(courseStudentRepository).save(isA(CourseStudent.class)); + assertEquals(1, actualUpdateStudentsInCourseResult.size()); + CourseStudent getResult = actualUpdateStudentsInCourseResult.get(0); + LocalTime expectedToLocalTimeResult = getResult.getJoinDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, getResult.getCourse().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#importStudentsToCourse(ImportStudentToCourseRequest)} + */ + @Test + void testImportStudentsToCourse() throws IOException { + // Arrange, Act and Assert + assertTrue(courseStudentImpl.importStudentsToCourse(new ImportStudentToCourseRequest("42", + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))))).isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#importStudentsToCourse(ImportStudentToCourseRequest)} + */ + @Test + void testImportStudentsToCourse2() throws IOException { + // Arrange + ImportStudentToCourseRequest request = mock(ImportStudentToCourseRequest.class); + when(request.getFile()) + .thenReturn(new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Act + List actualImportStudentsToCourseResult = courseStudentImpl.importStudentsToCourse(request); + + // Assert + verify(request).getFile(); + assertTrue(actualImportStudentsToCourseResult.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#deleteStudentInCourse(RemoveStudentFromCourseRequest)} + */ + @Test + void testDeleteStudentInCourse() { + // Arrange + doNothing().when(courseStudentRepository) + .deleteByStudentIdAndCourseId(Mockito.any(), Mockito.any()); + + // Act + Boolean actualDeleteStudentInCourseResult = courseStudentImpl + .deleteStudentInCourse(new RemoveStudentFromCourseRequest("42", "42")); + + // Assert + verify(courseStudentRepository).deleteByStudentIdAndCourseId(eq("42"), eq("42")); + assertTrue(actualDeleteStudentInCourseResult); + } + + /** + * Method under test: + * {@link CourseStudentImpl#deleteStudentInCourse(RemoveStudentFromCourseRequest)} + */ + @Test + void testDeleteStudentInCourse2() { + // Arrange, Act and Assert + assertFalse(courseStudentImpl.deleteStudentInCourse(null)); + } + + /** + * Method under test: + * {@link CourseStudentImpl#checkStudentInCourse(String, String)} + */ + @Test + void testCheckStudentInCourse() { + // Arrange + when(courseStudentRepository.existsByStudentIdAndCourseId(Mockito.any(), Mockito.any())) + .thenReturn(1L); + + // Act + Boolean actualCheckStudentInCourseResult = courseStudentImpl.checkStudentInCourse("42", "42"); + + // Assert + verify(courseStudentRepository).existsByStudentIdAndCourseId(eq("42"), eq("42")); + assertTrue(actualCheckStudentInCourseResult); + } + + /** + * Method under test: + * {@link CourseStudentImpl#checkStudentInCourse(String, String)} + */ + @Test + void testCheckStudentInCourse2() { + // Arrange + when(courseStudentRepository.existsByStudentIdAndCourseId(Mockito.any(), Mockito.any())) + .thenReturn(0L); + + // Act + Boolean actualCheckStudentInCourseResult = courseStudentImpl.checkStudentInCourse("42", "42"); + + // Assert + verify(courseStudentRepository).existsByStudentIdAndCourseId(eq("42"), eq("42")); + assertFalse(actualCheckStudentInCourseResult); + } + + /** + * Method under test: + * {@link CourseStudentImpl#getAllNamesFromExcel(InputStream)} + */ + @Test + void testGetAllNamesFromExcel() throws UnsupportedEncodingException { + // Arrange and Act + List actualAllNamesFromExcel = CourseStudentImpl + .getAllNamesFromExcel(new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))); + + // Assert + assertTrue(actualAllNamesFromExcel.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#getAllNamesFromExcel(InputStream)} + */ + @Test + void testGetAllNamesFromExcel2() { + // Arrange and Act + List actualAllNamesFromExcel = CourseStudentImpl + .getAllNamesFromExcel(new ByteArrayInputStream(new byte[]{-1, 'X', 'A', 'X', 'A', 'X', 'A', 'X'})); + + // Assert + assertTrue(actualAllNamesFromExcel.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#getAllNamesFromExcel(InputStream)} + */ + @Test + void testGetAllNamesFromExcel3() throws IOException { + // Arrange + DataInputStream inputStream = mock(DataInputStream.class); + doNothing().when(inputStream).reset(); + when(inputStream.read(Mockito.any())).thenReturn(1); + doNothing().when(inputStream).mark(anyInt()); + when(inputStream.markSupported()).thenReturn(true); + when(inputStream.read(Mockito.any(), anyInt(), anyInt())).thenReturn(1); + + // Act + List actualAllNamesFromExcel = CourseStudentImpl.getAllNamesFromExcel(inputStream); + + // Assert + verify(inputStream).read(isA(byte[].class)); + verify(inputStream, atLeast(1)).read(isA(byte[].class), eq(0), anyInt()); + verify(inputStream, atLeast(1)).mark(anyInt()); + verify(inputStream, atLeast(1)).markSupported(); + verify(inputStream, atLeast(1)).reset(); + assertTrue(actualAllNamesFromExcel.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#getAllNamesFromExcel(InputStream)} + */ + @Test + void testGetAllNamesFromExcel4() throws IOException { + // Arrange + DataInputStream inputStream = mock(DataInputStream.class); + doThrow(new IOException("foo")).when(inputStream).reset(); + when(inputStream.read(Mockito.any())).thenReturn(1); + doNothing().when(inputStream).mark(anyInt()); + when(inputStream.markSupported()).thenReturn(true); + + // Act + List actualAllNamesFromExcel = CourseStudentImpl.getAllNamesFromExcel(inputStream); + + // Assert + verify(inputStream).read(isA(byte[].class)); + verify(inputStream).mark(eq(1)); + verify(inputStream).markSupported(); + verify(inputStream).reset(); + assertTrue(actualAllNamesFromExcel.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#getAllNamesFromExcel(InputStream)} + */ + @Test + void testGetAllNamesFromExcel5() throws IOException { + // Arrange + DataInputStream inputStream = mock(DataInputStream.class); + when(inputStream.available()).thenReturn(1); + when(inputStream.markSupported()).thenReturn(false); + when(inputStream.read(Mockito.any(), anyInt(), anyInt())).thenReturn(1); + + // Act + List actualAllNamesFromExcel = CourseStudentImpl.getAllNamesFromExcel(inputStream); + + // Assert + verify(inputStream, atLeast(1)).read(isA(byte[].class), anyInt(), anyInt()); + verify(inputStream, atLeast(1)).available(); + verify(inputStream).markSupported(); + assertTrue(actualAllNamesFromExcel.isEmpty()); + } + + /** + * Method under test: + * {@link CourseStudentImpl#getAllNamesFromExcel(InputStream)} + */ + @Test + void testGetAllNamesFromExcel6() throws IOException { + // Arrange + DataInputStream inputStream = mock(DataInputStream.class); + when(inputStream.available()).thenThrow(new IOException("foo")); + when(inputStream.markSupported()).thenReturn(false); + when(inputStream.read(Mockito.any(), anyInt(), anyInt())).thenReturn(1); + + // Act + List actualAllNamesFromExcel = CourseStudentImpl.getAllNamesFromExcel(inputStream); + + // Assert + verify(inputStream).read(isA(byte[].class), eq(0), eq(8192)); + verify(inputStream).available(); + verify(inputStream).markSupported(); + assertTrue(actualAllNamesFromExcel.isEmpty()); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/CodeExerciseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/CodeExerciseImplDiffblueTest.java new file mode 100644 index 00000000..36041b60 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/CodeExerciseImplDiffblueTest.java @@ -0,0 +1,1108 @@ +package com.example.codeE.service.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.CodeExercise; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.exercise.common.problem.TestCase; +import com.example.codeE.repository.CodeExerciseRepository; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.request.exercise.code.CodeDetailResponse; +import com.example.codeE.request.exercise.code.UpdateCodeExerciseRequest; +import com.google.api.client.testing.util.TestableByteArrayOutputStream; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.file.FileVisitOption; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.OpenOption; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.attribute.FileAttribute; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {CodeExerciseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class CodeExerciseImplDiffblueTest { + @Autowired + private CodeExerciseImpl codeExerciseImpl; + + @MockBean + private CodeExerciseRepository codeExerciseRepository; + + @MockBean + private ExerciseRepository exerciseRepository; + + /** + * Method under test: {@link CodeExerciseImpl#getProblemIds(List)} + */ + @Test + void testGetProblemIds() { + // Arrange, Act and Assert + assertTrue(codeExerciseImpl.getProblemIds(new ArrayList<>()).isEmpty()); + } + + /** + * Method under test: {@link CodeExerciseImpl#getProblemIds(List)} + */ + @Test + void testGetProblemIds2() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + CodeExercise codeExercise2 = new CodeExercise(); + codeExercise2.setAllowedLanguageIds(new ArrayList<>()); + codeExercise2.setCreatedDate("2020-03-01"); + codeExercise2.setDescription("The characteristics of someone or something"); + codeExercise2.setDurationTime(1); + codeExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setExerciseDescription("Exercise Description"); + codeExercise2.setExerciseId("42"); + codeExercise2.setExerciseName("Exercise Name"); + codeExercise2.setKey("Key"); + codeExercise2.setMemoryLimit(1); + codeExercise2.setPartial(true); + codeExercise2.setPoints(10.0d); + codeExercise2.setPublicGroupIds(new ArrayList<>()); + codeExercise2.setReAttempt(1); + codeExercise2.setShortCircuit(true); + codeExercise2.setShowAll(true); + codeExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setTemplate("Template"); + codeExercise2.setTestCases(new ArrayList<>()); + codeExercise2.setTimeLimit(10.0d); + codeExercise2.setTopicId("42"); + codeExercise2.setType("Type"); + codeExercise2.setUpdatedDate("2020-03-01"); + + ArrayList problems = new ArrayList<>(); + problems.add(codeExercise2); + + // Act + List actualProblemIds = codeExerciseImpl.getProblemIds(problems); + + // Assert + verify(codeExerciseRepository).findById(eq("42")); + assertEquals(1, actualProblemIds.size()); + assertEquals("42", actualProblemIds.get(0)); + } + + /** + * Method under test: {@link CodeExerciseImpl#getProblemIds(List)} + */ + @Test + void testGetProblemIds3() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + CodeExercise codeExercise2 = new CodeExercise(); + codeExercise2.setAllowedLanguageIds(new ArrayList<>()); + codeExercise2.setCreatedDate("2020-03-01"); + codeExercise2.setDescription("The characteristics of someone or something"); + codeExercise2.setDurationTime(1); + codeExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setExerciseDescription("Exercise Description"); + codeExercise2.setExerciseId("42"); + codeExercise2.setExerciseName("Exercise Name"); + codeExercise2.setKey("Key"); + codeExercise2.setMemoryLimit(1); + codeExercise2.setPartial(true); + codeExercise2.setPoints(10.0d); + codeExercise2.setPublicGroupIds(new ArrayList<>()); + codeExercise2.setReAttempt(1); + codeExercise2.setShortCircuit(true); + codeExercise2.setShowAll(true); + codeExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setTemplate("Template"); + codeExercise2.setTestCases(new ArrayList<>()); + codeExercise2.setTimeLimit(10.0d); + codeExercise2.setTopicId("42"); + codeExercise2.setType("Type"); + codeExercise2.setUpdatedDate("2020-03-01"); + + CodeExercise codeExercise3 = new CodeExercise(); + codeExercise3.setAllowedLanguageIds(new ArrayList<>()); + codeExercise3.setCreatedDate("2020/03/01"); + codeExercise3.setDescription("Description"); + codeExercise3.setDurationTime(0); + codeExercise3.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise3.setExerciseDescription("42"); + codeExercise3.setExerciseId("Exercise Id"); + codeExercise3.setExerciseName("42"); + codeExercise3.setKey("42"); + codeExercise3.setMemoryLimit(0); + codeExercise3.setPartial(false); + codeExercise3.setPoints(0.5d); + codeExercise3.setPublicGroupIds(new ArrayList<>()); + codeExercise3.setReAttempt(0); + codeExercise3.setShortCircuit(false); + codeExercise3.setShowAll(false); + codeExercise3.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise3.setTemplate("42"); + codeExercise3.setTestCases(new ArrayList<>()); + codeExercise3.setTimeLimit(0.5d); + codeExercise3.setTopicId("Topic Id"); + codeExercise3.setType("42"); + codeExercise3.setUpdatedDate("2020/03/01"); + + ArrayList problems = new ArrayList<>(); + problems.add(codeExercise3); + problems.add(codeExercise2); + + // Act + List actualProblemIds = codeExerciseImpl.getProblemIds(problems); + + // Assert + verify(codeExerciseRepository, atLeast(1)).findById(Mockito.any()); + assertEquals(2, actualProblemIds.size()); + assertEquals("42", actualProblemIds.get(0)); + assertEquals("42", actualProblemIds.get(1)); + } + + /** + * Method under test: {@link CodeExerciseImpl#getProblemIds(List)} + */ + @Test + void testGetProblemIds4() { + // Arrange + when(codeExerciseRepository.findById(Mockito.any())).thenThrow(new RuntimeException("foo")); + + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + + ArrayList problems = new ArrayList<>(); + problems.add(codeExercise); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.getProblemIds(problems)); + verify(codeExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CodeExerciseImpl#getProblemById(String)} + */ + @Test + void testGetProblemById() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CodeExercise actualProblemById = codeExerciseImpl.getProblemById("42"); + + // Assert + verify(codeExerciseRepository).findById(eq("42")); + assertSame(codeExercise, actualProblemById); + } + + /** + * Method under test: {@link CodeExerciseImpl#getProblemById(String)} + */ + @Test + void testGetProblemById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.getProblemById("42")); + verify(codeExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CodeExerciseImpl#getProblemById(String)} + */ + @Test + void testGetProblemById3() { + // Arrange + when(codeExerciseRepository.findById(Mockito.any())).thenThrow(new RuntimeException("Problem not found")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.getProblemById("42")); + verify(codeExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CodeExerciseImpl#getCodeExerciseById(String)} + */ + @Test + void testGetCodeExerciseById() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CodeExercise actualCodeExerciseById = codeExerciseImpl.getCodeExerciseById("42"); + + // Assert + verify(codeExerciseRepository).findById(eq("42")); + assertSame(codeExercise, actualCodeExerciseById); + } + + /** + * Method under test: {@link CodeExerciseImpl#getCodeExerciseById(String)} + */ + @Test + void testGetCodeExerciseById2() { + // Arrange + when(codeExerciseRepository.findById(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.getCodeExerciseById("42")); + verify(codeExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CodeExerciseImpl#getCodeExerciseDetail(String)} + */ + @Test + void testGetCodeExerciseDetail() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + ArrayList allowedLanguageIds = new ArrayList<>(); + codeExercise.setAllowedLanguageIds(allowedLanguageIds); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + codeExercise.setEndTime(endTime); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + codeExercise.setStartTime(startTime); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CodeDetailResponse actualCodeExerciseDetail = codeExerciseImpl.getCodeExerciseDetail("42"); + + // Assert + verify(codeExerciseRepository).findById(eq("42")); + assertEquals("42", actualCodeExerciseDetail.getExerciseId()); + assertEquals("42", actualCodeExerciseDetail.getTopicId()); + assertEquals("Exercise Name", actualCodeExerciseDetail.getExerciseName()); + assertEquals("The characteristics of someone or something", actualCodeExerciseDetail.getDescription()); + assertEquals("Type", actualCodeExerciseDetail.getType()); + assertEquals(1, actualCodeExerciseDetail.getDurationTime()); + assertEquals(1, actualCodeExerciseDetail.getReAttempt()); + assertTrue(actualCodeExerciseDetail.getLanguageTemplate().isEmpty()); + assertEquals(allowedLanguageIds, actualCodeExerciseDetail.getTestCases()); + assertSame(endTime, actualCodeExerciseDetail.getEndTime()); + assertSame(startTime, actualCodeExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link CodeExerciseImpl#getCodeExerciseDetail(String)} + */ + @Test + void testGetCodeExerciseDetail2() { + // Arrange + ArrayList stringList = new ArrayList<>(); + stringList.add("foo"); + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.getDurationTime()).thenReturn(1); + when(codeExercise.getReAttempt()).thenReturn(1); + when(codeExercise.getDescription()).thenReturn("The characteristics of someone or something"); + when(codeExercise.getExerciseId()).thenReturn("42"); + when(codeExercise.getExerciseName()).thenReturn("Exercise Name"); + when(codeExercise.getTopicId()).thenReturn("42"); + when(codeExercise.getType()).thenReturn("Type"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getStartTime()).thenReturn(fromResult2); + when(codeExercise.getAllowedLanguageIds()).thenReturn(stringList); + when(codeExercise.getTestCases()).thenReturn(new ArrayList<>()); + doNothing().when(codeExercise).setAllowedLanguageIds(Mockito.>any()); + doNothing().when(codeExercise).setDescription(Mockito.any()); + doNothing().when(codeExercise).setMemoryLimit(Mockito.any()); + doNothing().when(codeExercise).setPartial(anyBoolean()); + doNothing().when(codeExercise).setPoints(Mockito.any()); + doNothing().when(codeExercise).setShortCircuit(Mockito.any()); + doNothing().when(codeExercise).setTemplate(Mockito.any()); + doNothing().when(codeExercise).setTestCases(Mockito.>any()); + doNothing().when(codeExercise).setTimeLimit(Mockito.any()); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CodeDetailResponse actualCodeExerciseDetail = codeExerciseImpl.getCodeExerciseDetail("42"); + + // Assert + verify(codeExercise).getAllowedLanguageIds(); + verify(codeExercise).getDescription(); + verify(codeExercise, atLeast(1)).getTestCases(); + verify(codeExercise).setAllowedLanguageIds(isA(List.class)); + verify(codeExercise).setDescription(eq("The characteristics of someone or something")); + verify(codeExercise).setMemoryLimit(isA(Integer.class)); + verify(codeExercise).setPartial(eq(true)); + verify(codeExercise).setPoints(isA(Double.class)); + verify(codeExercise).setShortCircuit(isA(Boolean.class)); + verify(codeExercise).setTemplate(eq("Template")); + verify(codeExercise, atLeast(1)).setTestCases(isA(List.class)); + verify(codeExercise).setTimeLimit(isA(Double.class)); + verify(codeExercise, atLeast(1)).getDurationTime(); + verify(codeExercise, atLeast(1)).getEndTime(); + verify(codeExercise).getExerciseId(); + verify(codeExercise).getExerciseName(); + verify(codeExercise).getReAttempt(); + verify(codeExercise, atLeast(1)).getStartTime(); + verify(codeExercise).getTopicId(); + verify(codeExercise).getType(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise).setPublicGroupIds(isA(List.class)); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(codeExerciseRepository).findById(eq("42")); + assertEquals("42", actualCodeExerciseDetail.getExerciseId()); + assertEquals("42", actualCodeExerciseDetail.getTopicId()); + assertEquals("Exercise Name", actualCodeExerciseDetail.getExerciseName()); + assertEquals("The characteristics of someone or something", actualCodeExerciseDetail.getDescription()); + assertEquals("Type", actualCodeExerciseDetail.getType()); + assertEquals(1, actualCodeExerciseDetail.getDurationTime()); + assertEquals(1, actualCodeExerciseDetail.getReAttempt()); + assertEquals(1, actualCodeExerciseDetail.getLanguageTemplate().size()); + assertTrue(actualCodeExerciseDetail.getTestCases().isEmpty()); + assertSame(fromResult, actualCodeExerciseDetail.getEndTime()); + assertSame(fromResult2, actualCodeExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link CodeExerciseImpl#getCodeExerciseDetail(String)} + */ + @Test + void testGetCodeExerciseDetail3() { + // Arrange + TestCase testCase = new TestCase(); + testCase.setExerciseId("42"); + testCase.setInput("Input"); + testCase.setOutput("Output"); + testCase.setPoints(1); + testCase.setTestcaseId("42"); + + ArrayList testCaseList = new ArrayList<>(); + testCaseList.add(testCase); + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.getDurationTime()).thenReturn(1); + when(codeExercise.getReAttempt()).thenReturn(1); + when(codeExercise.getDescription()).thenReturn("The characteristics of someone or something"); + when(codeExercise.getExerciseId()).thenReturn("42"); + when(codeExercise.getExerciseName()).thenReturn("Exercise Name"); + when(codeExercise.getTopicId()).thenReturn("42"); + when(codeExercise.getType()).thenReturn("Type"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getStartTime()).thenReturn(fromResult2); + when(codeExercise.getAllowedLanguageIds()).thenReturn(new ArrayList<>()); + when(codeExercise.getTestCases()).thenReturn(testCaseList); + doNothing().when(codeExercise).setAllowedLanguageIds(Mockito.>any()); + doNothing().when(codeExercise).setDescription(Mockito.any()); + doNothing().when(codeExercise).setMemoryLimit(Mockito.any()); + doNothing().when(codeExercise).setPartial(anyBoolean()); + doNothing().when(codeExercise).setPoints(Mockito.any()); + doNothing().when(codeExercise).setShortCircuit(Mockito.any()); + doNothing().when(codeExercise).setTemplate(Mockito.any()); + doNothing().when(codeExercise).setTestCases(Mockito.>any()); + doNothing().when(codeExercise).setTimeLimit(Mockito.any()); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CodeDetailResponse actualCodeExerciseDetail = codeExerciseImpl.getCodeExerciseDetail("42"); + + // Assert + verify(codeExercise).getAllowedLanguageIds(); + verify(codeExercise).getDescription(); + verify(codeExercise, atLeast(1)).getTestCases(); + verify(codeExercise).setAllowedLanguageIds(isA(List.class)); + verify(codeExercise).setDescription(eq("The characteristics of someone or something")); + verify(codeExercise).setMemoryLimit(isA(Integer.class)); + verify(codeExercise).setPartial(eq(true)); + verify(codeExercise).setPoints(isA(Double.class)); + verify(codeExercise).setShortCircuit(isA(Boolean.class)); + verify(codeExercise).setTemplate(eq("Template")); + verify(codeExercise, atLeast(1)).setTestCases(isA(List.class)); + verify(codeExercise).setTimeLimit(isA(Double.class)); + verify(codeExercise, atLeast(1)).getDurationTime(); + verify(codeExercise, atLeast(1)).getEndTime(); + verify(codeExercise).getExerciseId(); + verify(codeExercise).getExerciseName(); + verify(codeExercise).getReAttempt(); + verify(codeExercise, atLeast(1)).getStartTime(); + verify(codeExercise).getTopicId(); + verify(codeExercise).getType(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise).setPublicGroupIds(isA(List.class)); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(codeExerciseRepository).findById(eq("42")); + assertEquals("42", actualCodeExerciseDetail.getExerciseId()); + assertEquals("42", actualCodeExerciseDetail.getTopicId()); + assertEquals("Exercise Name", actualCodeExerciseDetail.getExerciseName()); + assertEquals("The characteristics of someone or something", actualCodeExerciseDetail.getDescription()); + assertEquals("Type", actualCodeExerciseDetail.getType()); + assertEquals(1, actualCodeExerciseDetail.getDurationTime()); + assertEquals(1, actualCodeExerciseDetail.getReAttempt()); + assertEquals(1, actualCodeExerciseDetail.getTestCases().size()); + assertTrue(actualCodeExerciseDetail.getLanguageTemplate().isEmpty()); + assertSame(fromResult, actualCodeExerciseDetail.getEndTime()); + assertSame(fromResult2, actualCodeExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link CodeExerciseImpl#createCodeExercise(CodeExercise)} + */ + @Test + void testCreateCodeExercise() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + when(codeExerciseRepository.save(Mockito.any())).thenReturn(codeExercise); + + CodeExercise codeExercise2 = new CodeExercise(); + codeExercise2.setAllowedLanguageIds(new ArrayList<>()); + codeExercise2.setCreatedDate("2020-03-01"); + codeExercise2.setDescription("The characteristics of someone or something"); + codeExercise2.setDurationTime(1); + codeExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setExerciseDescription("Exercise Description"); + codeExercise2.setExerciseId("42"); + codeExercise2.setExerciseName("Exercise Name"); + codeExercise2.setKey("Key"); + codeExercise2.setMemoryLimit(1); + codeExercise2.setPartial(true); + codeExercise2.setPoints(10.0d); + codeExercise2.setPublicGroupIds(new ArrayList<>()); + codeExercise2.setReAttempt(1); + codeExercise2.setShortCircuit(true); + codeExercise2.setShowAll(true); + codeExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setTemplate("Template"); + codeExercise2.setTestCases(new ArrayList<>()); + codeExercise2.setTimeLimit(10.0d); + codeExercise2.setTopicId("42"); + codeExercise2.setType("Type"); + codeExercise2.setUpdatedDate("2020-03-01"); + + // Act + CodeExercise actualCreateCodeExerciseResult = codeExerciseImpl.createCodeExercise(codeExercise2); + + // Assert + verify(codeExerciseRepository).save(isA(CodeExercise.class)); + assertSame(codeExercise, actualCreateCodeExerciseResult); + } + + /** + * Method under test: {@link CodeExerciseImpl#createCodeExercise(CodeExercise)} + */ + @Test + void testCreateCodeExercise2() { + // Arrange + when(codeExerciseRepository.save(Mockito.any())).thenThrow(new RuntimeException("foo")); + + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.createCodeExercise(codeExercise)); + verify(codeExerciseRepository).save(isA(CodeExercise.class)); + } + + /** + * Method under test: {@link CodeExerciseImpl#deleteCodeExercise(String)} + */ + @Test + void testDeleteCodeExercise() { + // Arrange + doNothing().when(codeExerciseRepository).deleteById(Mockito.any()); + + // Act + codeExerciseImpl.deleteCodeExercise("42"); + + // Assert that nothing has changed + verify(codeExerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: {@link CodeExerciseImpl#deleteCodeExercise(String)} + */ + @Test + void testDeleteCodeExercise2() { + // Arrange + doThrow(new RuntimeException("foo")).when(codeExerciseRepository).deleteById(Mockito.any()); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.deleteCodeExercise("42")); + verify(codeExerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: + * {@link CodeExerciseImpl#updateCodeExercise(String, UpdateCodeExerciseRequest)} + */ + @Test + void testUpdateCodeExercise() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + + CodeExercise codeExercise2 = new CodeExercise(); + codeExercise2.setAllowedLanguageIds(new ArrayList<>()); + codeExercise2.setCreatedDate("2020-03-01"); + codeExercise2.setDescription("The characteristics of someone or something"); + codeExercise2.setDurationTime(1); + codeExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setExerciseDescription("Exercise Description"); + codeExercise2.setExerciseId("42"); + codeExercise2.setExerciseName("Exercise Name"); + codeExercise2.setKey("Key"); + codeExercise2.setMemoryLimit(1); + codeExercise2.setPartial(true); + codeExercise2.setPoints(10.0d); + codeExercise2.setPublicGroupIds(new ArrayList<>()); + codeExercise2.setReAttempt(1); + codeExercise2.setShortCircuit(true); + codeExercise2.setShowAll(true); + codeExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setTemplate("Template"); + codeExercise2.setTestCases(new ArrayList<>()); + codeExercise2.setTimeLimit(10.0d); + codeExercise2.setTopicId("42"); + codeExercise2.setType("Type"); + codeExercise2.setUpdatedDate("2020-03-01"); + when(codeExerciseRepository.save(Mockito.any())).thenReturn(codeExercise2); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + + // Act + CodeExercise actualUpdateCodeExerciseResult = codeExerciseImpl.updateCodeExercise("42", + new UpdateCodeExerciseRequest()); + + // Assert + verify(codeExerciseRepository).findById(eq("42")); + verify(codeExerciseRepository).save(isA(CodeExercise.class)); + verify(exerciseRepository).save(isA(Exercise.class)); + assertSame(codeExercise2, actualUpdateCodeExerciseResult); + } + + /** + * Method under test: + * {@link CodeExerciseImpl#updateCodeExercise(String, UpdateCodeExerciseRequest)} + */ + @Test + void testUpdateCodeExercise2() { + // Arrange + CodeExercise codeExercise = new CodeExercise(); + codeExercise.setAllowedLanguageIds(new ArrayList<>()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDescription("The characteristics of someone or something"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setMemoryLimit(1); + codeExercise.setPartial(true); + codeExercise.setPoints(10.0d); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShortCircuit(true); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTemplate("Template"); + codeExercise.setTestCases(new ArrayList<>()); + codeExercise.setTimeLimit(10.0d); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + + CodeExercise codeExercise2 = new CodeExercise(); + codeExercise2.setAllowedLanguageIds(new ArrayList<>()); + codeExercise2.setCreatedDate("2020-03-01"); + codeExercise2.setDescription("The characteristics of someone or something"); + codeExercise2.setDurationTime(1); + codeExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setExerciseDescription("Exercise Description"); + codeExercise2.setExerciseId("42"); + codeExercise2.setExerciseName("Exercise Name"); + codeExercise2.setKey("Key"); + codeExercise2.setMemoryLimit(1); + codeExercise2.setPartial(true); + codeExercise2.setPoints(10.0d); + codeExercise2.setPublicGroupIds(new ArrayList<>()); + codeExercise2.setReAttempt(1); + codeExercise2.setShortCircuit(true); + codeExercise2.setShowAll(true); + codeExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise2.setTemplate("Template"); + codeExercise2.setTestCases(new ArrayList<>()); + codeExercise2.setTimeLimit(10.0d); + codeExercise2.setTopicId("42"); + codeExercise2.setType("Type"); + codeExercise2.setUpdatedDate("2020-03-01"); + when(codeExerciseRepository.save(Mockito.any())).thenReturn(codeExercise2); + when(codeExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(exerciseRepository.save(Mockito.any())).thenThrow(new RuntimeException("code")); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> codeExerciseImpl.updateCodeExercise("42", new UpdateCodeExerciseRequest())); + verify(codeExerciseRepository).findById(eq("42")); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: {@link CodeExerciseImpl#createProblemFolder(List, String)} + */ + @Test + void testCreateProblemFolder() throws IOException { + try (MockedStatic mockFiles = mockStatic(Files.class)) { + // Arrange + mockFiles.when(() -> Files.walk(Mockito.any(), isA(FileVisitOption[].class))) + .thenThrow(new RuntimeException("archive: iozip.zip\ntest_cases:")); + mockFiles.when(() -> Files.newOutputStream(Mockito.any(), isA(OpenOption[].class))) + .thenReturn(new ByteArrayOutputStream(1)); + mockFiles.when(() -> Files.createDirectories(Mockito.any(), isA(FileAttribute[].class))) + .thenReturn(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + mockFiles.when(() -> Files.createTempDirectory(Mockito.any(), isA(FileAttribute[].class))) + .thenReturn(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.createProblemFolder(new ArrayList<>(), "42")); + mockFiles.verify(() -> Files.createDirectories(Mockito.any(), isA(FileAttribute[].class))); + mockFiles.verify(() -> Files.createTempDirectory(Mockito.any(), isA(FileAttribute[].class))); + mockFiles.verify(() -> Files.newOutputStream(Mockito.any(), isA(OpenOption[].class))); + mockFiles.verify(() -> Files.walk(Mockito.any(), isA(FileVisitOption[].class))); + } + } + + /** + * Method under test: {@link CodeExerciseImpl#createProblemFolder(List, String)} + */ + @Test + void testCreateProblemFolder2() throws IOException { + try (MockedStatic mockFiles = mockStatic(Files.class)) { + // Arrange + ArrayList pathList = new ArrayList<>(); + pathList.add(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + Stream streamResult = pathList.stream(); + mockFiles.when(() -> Files.isDirectory(Mockito.any(), isA(LinkOption[].class))).thenReturn(false); + mockFiles.when(() -> Files.copy(Mockito.any(), Mockito.any())).thenReturn(1L); + mockFiles.when(() -> Files.walk(Mockito.any(), isA(FileVisitOption[].class))).thenReturn(streamResult); + mockFiles.when(() -> Files.newOutputStream(Mockito.any(), isA(OpenOption[].class))) + .thenReturn(mock(TestableByteArrayOutputStream.class)); + mockFiles.when(() -> Files.createDirectories(Mockito.any(), isA(FileAttribute[].class))) + .thenReturn(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + mockFiles.when(() -> Files.createTempDirectory(Mockito.any(), isA(FileAttribute[].class))) + .thenReturn(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + + TestCase testCase = new TestCase(); + testCase.setExerciseId("42"); + testCase.setInput("archive: iozip.zip\ntest_cases:"); + testCase.setOutput("archive: iozip.zip\ntest_cases:"); + testCase.setPoints(1); + testCase.setTestcaseId("42"); + + ArrayList testCaseList = new ArrayList<>(); + testCaseList.add(testCase); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.createProblemFolder(testCaseList, "42")); + mockFiles.verify(() -> Files.createDirectories(Mockito.any(), isA(FileAttribute[].class))); + mockFiles.verify(() -> Files.createTempDirectory(Mockito.any(), isA(FileAttribute[].class))); + } + } + + /** + * Method under test: {@link CodeExerciseImpl#createProblemFolder(List, String)} + */ + @Test + void testCreateProblemFolder3() throws IOException { + try (MockedStatic mockFiles = mockStatic(Files.class)) { + // Arrange + ArrayList pathList = new ArrayList<>(); + pathList.add(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + Stream streamResult = pathList.stream(); + mockFiles.when(() -> Files.isDirectory(Mockito.any(), isA(LinkOption[].class))).thenReturn(false); + mockFiles.when(() -> Files.copy(Mockito.any(), Mockito.any())).thenReturn(1L); + mockFiles.when(() -> Files.walk(Mockito.any(), isA(FileVisitOption[].class))).thenReturn(streamResult); + mockFiles.when(() -> Files.newOutputStream(Mockito.any(), isA(OpenOption[].class))) + .thenReturn(mock(TestableByteArrayOutputStream.class)); + mockFiles.when(() -> Files.createDirectories(Mockito.any(), isA(FileAttribute[].class))) + .thenReturn(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + mockFiles.when(() -> Files.createTempDirectory(Mockito.any(), isA(FileAttribute[].class))) + .thenReturn(Paths.get(System.getProperty("java.io.tmpdir"), "test.txt")); + + TestCase testCase = new TestCase(); + testCase.setExerciseId("42"); + testCase.setInput("archive: iozip.zip\ntest_cases:"); + testCase.setOutput("archive: iozip.zip\ntest_cases:"); + testCase.setPoints(1); + testCase.setTestcaseId("42"); + + TestCase testCase2 = new TestCase(); + testCase2.setExerciseId("archive: iozip.zip\ntest_cases:"); + testCase2.setInput("iozip"); + testCase2.setOutput("iozip"); + testCase2.setPoints(0); + testCase2.setTestcaseId("archive: iozip.zip\ntest_cases:"); + + ArrayList testCaseList = new ArrayList<>(); + testCaseList.add(testCase2); + testCaseList.add(testCase); + + // Act and Assert + assertThrows(RuntimeException.class, () -> codeExerciseImpl.createProblemFolder(testCaseList, "42")); + mockFiles.verify(() -> Files.createDirectories(Mockito.any(), isA(FileAttribute[].class))); + mockFiles.verify(() -> Files.createTempDirectory(Mockito.any(), isA(FileAttribute[].class))); + } + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/DataTypeImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/DataTypeImplDiffblueTest.java new file mode 100644 index 00000000..a795770a --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/DataTypeImplDiffblueTest.java @@ -0,0 +1,49 @@ +package com.example.codeE.service.exercise; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.DataType; +import com.example.codeE.repository.DataTypeRepository; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {DataTypeImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class DataTypeImplDiffblueTest { + @Autowired + private DataTypeImpl dataTypeImpl; + + @MockBean + private DataTypeRepository dataTypeRepository; + + /** + * Method under test: {@link DataTypeImpl#getAllDataTypes()} + */ + @Test + void testGetAllDataTypes() { + // Arrange + ArrayList dataTypeList = new ArrayList<>(); + when(dataTypeRepository.findAll()).thenReturn(dataTypeList); + + // Act + List actualAllDataTypes = dataTypeImpl.getAllDataTypes(); + + // Assert + verify(dataTypeRepository).findAll(); + assertTrue(actualAllDataTypes.isEmpty()); + assertSame(dataTypeList, actualAllDataTypes); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/EssayExerciseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/EssayExerciseImplDiffblueTest.java new file mode 100644 index 00000000..d2a46015 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/EssayExerciseImplDiffblueTest.java @@ -0,0 +1,685 @@ +package com.example.codeE.service.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.exercise.EssayExercise; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.group.Group; +import com.example.codeE.repository.EssayExerciseRepository; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.repository.GroupRepository; +import com.example.codeE.request.exercise.essay.EssayDetailResponse; +import com.example.codeE.request.exercise.essay.UpdateEssayExerciseRequest; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {EssayExerciseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class EssayExerciseImplDiffblueTest { + @Autowired + private EssayExerciseImpl essayExerciseImpl; + + @MockBean + private EssayExerciseRepository essayExerciseRepository; + + @MockBean + private ExerciseRepository exerciseRepository; + + @MockBean + private GroupRepository groupRepository; + + /** + * Method under test: + * {@link EssayExerciseImpl#createEssayExercise(EssayExercise)} + */ + @Test + void testCreateEssayExercise() { + // Arrange + EssayExercise essayExercise = new EssayExercise(); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + essayExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + essayExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + when(essayExerciseRepository.save(Mockito.any())).thenReturn(essayExercise); + + EssayExercise essayExercise2 = new EssayExercise(); + essayExercise2.setCreatedDate("2020-03-01"); + essayExercise2.setDurationTime(1); + essayExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setExerciseDescription("Exercise Description"); + essayExercise2.setExerciseId("42"); + essayExercise2.setExerciseName("Exercise Name"); + essayExercise2.setKey("Key"); + essayExercise2.setPublicGroupIds(new ArrayList<>()); + essayExercise2.setQuestion("Question"); + essayExercise2.setReAttempt(1); + essayExercise2.setShowAll(true); + essayExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setTopicId("42"); + essayExercise2.setType("Type"); + essayExercise2.setUpdatedDate("2020-03-01"); + + // Act + EssayExercise actualCreateEssayExerciseResult = essayExerciseImpl.createEssayExercise(essayExercise2); + + // Assert + verify(essayExerciseRepository).save(isA(EssayExercise.class)); + assertSame(essayExercise, actualCreateEssayExerciseResult); + } + + /** + * Method under test: + * {@link EssayExerciseImpl#createEssayExercise(EssayExercise)} + */ + @Test + void testCreateEssayExercise2() { + // Arrange + EssayExercise essayExercise = new EssayExercise(); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + essayExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + essayExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + when(essayExerciseRepository.save(Mockito.any())).thenReturn(essayExercise); + EssayExercise essayExercise2 = mock(EssayExercise.class); + when(essayExercise2.getReAttempt()).thenReturn(-1); + when(essayExercise2.getPublicGroupIds()).thenReturn(new ArrayList<>()); + doNothing().when(essayExercise2).setQuestion(Mockito.any()); + doNothing().when(essayExercise2).setCreatedDate(Mockito.any()); + doNothing().when(essayExercise2).setDurationTime(anyInt()); + doNothing().when(essayExercise2).setEndTime(Mockito.any()); + doNothing().when(essayExercise2).setExerciseDescription(Mockito.any()); + doNothing().when(essayExercise2).setExerciseId(Mockito.any()); + doNothing().when(essayExercise2).setExerciseName(Mockito.any()); + doNothing().when(essayExercise2).setKey(Mockito.any()); + doNothing().when(essayExercise2).setPublicGroupIds(Mockito.>any()); + doNothing().when(essayExercise2).setReAttempt(anyInt()); + doNothing().when(essayExercise2).setShowAll(anyBoolean()); + doNothing().when(essayExercise2).setStartTime(Mockito.any()); + doNothing().when(essayExercise2).setTopicId(Mockito.any()); + doNothing().when(essayExercise2).setType(Mockito.any()); + doNothing().when(essayExercise2).setUpdatedDate(Mockito.any()); + essayExercise2.setCreatedDate("2020-03-01"); + essayExercise2.setDurationTime(1); + essayExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setExerciseDescription("Exercise Description"); + essayExercise2.setExerciseId("42"); + essayExercise2.setExerciseName("Exercise Name"); + essayExercise2.setKey("Key"); + essayExercise2.setPublicGroupIds(new ArrayList<>()); + essayExercise2.setQuestion("Question"); + essayExercise2.setReAttempt(1); + essayExercise2.setShowAll(true); + essayExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setTopicId("42"); + essayExercise2.setType("Type"); + essayExercise2.setUpdatedDate("2020-03-01"); + + // Act + EssayExercise actualCreateEssayExerciseResult = essayExerciseImpl.createEssayExercise(essayExercise2); + + // Assert + verify(essayExercise2).setQuestion(eq("Question")); + verify(essayExercise2).getPublicGroupIds(); + verify(essayExercise2).getReAttempt(); + verify(essayExercise2).setCreatedDate(eq("2020-03-01")); + verify(essayExercise2).setDurationTime(eq(1)); + verify(essayExercise2).setEndTime(isA(Date.class)); + verify(essayExercise2).setExerciseDescription(eq("Exercise Description")); + verify(essayExercise2).setExerciseId(eq("42")); + verify(essayExercise2).setExerciseName(eq("Exercise Name")); + verify(essayExercise2).setKey(eq("Key")); + verify(essayExercise2).setPublicGroupIds(isA(List.class)); + verify(essayExercise2, atLeast(1)).setReAttempt(eq(1)); + verify(essayExercise2).setShowAll(eq(true)); + verify(essayExercise2).setStartTime(isA(Date.class)); + verify(essayExercise2).setTopicId(eq("42")); + verify(essayExercise2).setType(eq("Type")); + verify(essayExercise2).setUpdatedDate(eq("2020-03-01")); + verify(essayExerciseRepository).save(isA(EssayExercise.class)); + assertSame(essayExercise, actualCreateEssayExerciseResult); + } + + /** + * Method under test: + * {@link EssayExerciseImpl#createEssayExercise(EssayExercise)} + */ + @Test + void testCreateEssayExercise3() { + // Arrange + EssayExercise essayExercise = new EssayExercise(); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + essayExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + essayExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + when(essayExerciseRepository.save(Mockito.any())).thenReturn(essayExercise); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + ArrayList stringList = new ArrayList<>(); + stringList.add("foo"); + EssayExercise essayExercise2 = mock(EssayExercise.class); + when(essayExercise2.getReAttempt()).thenReturn(1); + when(essayExercise2.getPublicGroupIds()).thenReturn(stringList); + doNothing().when(essayExercise2).setQuestion(Mockito.any()); + doNothing().when(essayExercise2).setCreatedDate(Mockito.any()); + doNothing().when(essayExercise2).setDurationTime(anyInt()); + doNothing().when(essayExercise2).setEndTime(Mockito.any()); + doNothing().when(essayExercise2).setExerciseDescription(Mockito.any()); + doNothing().when(essayExercise2).setExerciseId(Mockito.any()); + doNothing().when(essayExercise2).setExerciseName(Mockito.any()); + doNothing().when(essayExercise2).setKey(Mockito.any()); + doNothing().when(essayExercise2).setPublicGroupIds(Mockito.>any()); + doNothing().when(essayExercise2).setReAttempt(anyInt()); + doNothing().when(essayExercise2).setShowAll(anyBoolean()); + doNothing().when(essayExercise2).setStartTime(Mockito.any()); + doNothing().when(essayExercise2).setTopicId(Mockito.any()); + doNothing().when(essayExercise2).setType(Mockito.any()); + doNothing().when(essayExercise2).setUpdatedDate(Mockito.any()); + essayExercise2.setCreatedDate("2020-03-01"); + essayExercise2.setDurationTime(1); + essayExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setExerciseDescription("Exercise Description"); + essayExercise2.setExerciseId("42"); + essayExercise2.setExerciseName("Exercise Name"); + essayExercise2.setKey("Key"); + essayExercise2.setPublicGroupIds(new ArrayList<>()); + essayExercise2.setQuestion("Question"); + essayExercise2.setReAttempt(1); + essayExercise2.setShowAll(true); + essayExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setTopicId("42"); + essayExercise2.setType("Type"); + essayExercise2.setUpdatedDate("2020-03-01"); + + // Act + EssayExercise actualCreateEssayExerciseResult = essayExerciseImpl.createEssayExercise(essayExercise2); + + // Assert + verify(essayExercise2).setQuestion(eq("Question")); + verify(essayExercise2).getPublicGroupIds(); + verify(essayExercise2).getReAttempt(); + verify(essayExercise2).setCreatedDate(eq("2020-03-01")); + verify(essayExercise2).setDurationTime(eq(1)); + verify(essayExercise2).setEndTime(isA(Date.class)); + verify(essayExercise2).setExerciseDescription(eq("Exercise Description")); + verify(essayExercise2).setExerciseId(eq("42")); + verify(essayExercise2).setExerciseName(eq("Exercise Name")); + verify(essayExercise2).setKey(eq("Key")); + verify(essayExercise2).setPublicGroupIds(isA(List.class)); + verify(essayExercise2).setReAttempt(eq(1)); + verify(essayExercise2).setShowAll(eq(true)); + verify(essayExercise2).setStartTime(isA(Date.class)); + verify(essayExercise2).setTopicId(eq("42")); + verify(essayExercise2).setType(eq("Type")); + verify(essayExercise2).setUpdatedDate(eq("2020-03-01")); + verify(groupRepository).findById(eq("foo")); + verify(essayExerciseRepository).save(isA(EssayExercise.class)); + assertSame(essayExercise, actualCreateEssayExerciseResult); + } + + /** + * Method under test: {@link EssayExerciseImpl#getEssayExerciseById(String)} + */ + @Test + void testGetEssayExerciseById() { + // Arrange + EssayExercise essayExercise = new EssayExercise(); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + essayExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + essayExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(essayExercise); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + EssayExercise actualEssayExerciseById = essayExerciseImpl.getEssayExerciseById("42"); + + // Assert + verify(essayExerciseRepository).findById(eq("42")); + assertSame(essayExercise, actualEssayExerciseById); + } + + /** + * Method under test: {@link EssayExerciseImpl#getEssayExerciseById(String)} + */ + @Test + void testGetEssayExerciseById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> essayExerciseImpl.getEssayExerciseById("42")); + verify(essayExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link EssayExerciseImpl#getEssayExerciseById(String)} + */ + @Test + void testGetEssayExerciseById3() { + // Arrange + when(essayExerciseRepository.findById(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> essayExerciseImpl.getEssayExerciseById("42")); + verify(essayExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link EssayExerciseImpl#getEssayExerciseDetail(String)} + */ + @Test + void testGetEssayExerciseDetail() { + // Arrange + EssayExercise essayExercise = new EssayExercise(); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + essayExercise.setEndTime(endTime); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + essayExercise.setStartTime(startTime); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(essayExercise); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + EssayDetailResponse actualEssayExerciseDetail = essayExerciseImpl.getEssayExerciseDetail("42"); + + // Assert + verify(essayExerciseRepository).findById(eq("42")); + assertEquals("42", actualEssayExerciseDetail.getExerciseId()); + assertEquals("42", actualEssayExerciseDetail.getTopicId()); + assertEquals("Exercise Description", actualEssayExerciseDetail.getExerciseDescription()); + assertEquals("Exercise Name", actualEssayExerciseDetail.getExerciseName()); + assertEquals("Question", actualEssayExerciseDetail.getQuestion()); + assertEquals("Type", actualEssayExerciseDetail.getType()); + assertEquals(1, actualEssayExerciseDetail.getDurationTime()); + assertEquals(1, actualEssayExerciseDetail.getReAttempt()); + assertSame(endTime, actualEssayExerciseDetail.getEndTime()); + assertSame(startTime, actualEssayExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link EssayExerciseImpl#getEssayExerciseDetail(String)} + */ + @Test + void testGetEssayExerciseDetail2() { + // Arrange + EssayExercise essayExercise = mock(EssayExercise.class); + when(essayExercise.getDurationTime()).thenReturn(1); + when(essayExercise.getReAttempt()).thenReturn(1); + when(essayExercise.getQuestion()).thenReturn("Question"); + when(essayExercise.getExerciseDescription()).thenReturn("Exercise Description"); + when(essayExercise.getExerciseId()).thenReturn("42"); + when(essayExercise.getExerciseName()).thenReturn("Exercise Name"); + when(essayExercise.getTopicId()).thenReturn("42"); + when(essayExercise.getType()).thenReturn("Type"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(essayExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(essayExercise.getStartTime()).thenReturn(fromResult2); + doNothing().when(essayExercise).setQuestion(Mockito.any()); + doNothing().when(essayExercise).setCreatedDate(Mockito.any()); + doNothing().when(essayExercise).setDurationTime(anyInt()); + doNothing().when(essayExercise).setEndTime(Mockito.any()); + doNothing().when(essayExercise).setExerciseDescription(Mockito.any()); + doNothing().when(essayExercise).setExerciseId(Mockito.any()); + doNothing().when(essayExercise).setExerciseName(Mockito.any()); + doNothing().when(essayExercise).setKey(Mockito.any()); + doNothing().when(essayExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(essayExercise).setReAttempt(anyInt()); + doNothing().when(essayExercise).setShowAll(anyBoolean()); + doNothing().when(essayExercise).setStartTime(Mockito.any()); + doNothing().when(essayExercise).setTopicId(Mockito.any()); + doNothing().when(essayExercise).setType(Mockito.any()); + doNothing().when(essayExercise).setUpdatedDate(Mockito.any()); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + essayExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + essayExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(essayExercise); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + EssayDetailResponse actualEssayExerciseDetail = essayExerciseImpl.getEssayExerciseDetail("42"); + + // Assert + verify(essayExercise).getQuestion(); + verify(essayExercise).setQuestion(eq("Question")); + verify(essayExercise, atLeast(1)).getDurationTime(); + verify(essayExercise, atLeast(1)).getEndTime(); + verify(essayExercise).getExerciseDescription(); + verify(essayExercise).getExerciseId(); + verify(essayExercise).getExerciseName(); + verify(essayExercise).getReAttempt(); + verify(essayExercise, atLeast(1)).getStartTime(); + verify(essayExercise).getTopicId(); + verify(essayExercise).getType(); + verify(essayExercise).setCreatedDate(eq("2020-03-01")); + verify(essayExercise).setDurationTime(eq(1)); + verify(essayExercise).setEndTime(isA(Date.class)); + verify(essayExercise).setExerciseDescription(eq("Exercise Description")); + verify(essayExercise).setExerciseId(eq("42")); + verify(essayExercise).setExerciseName(eq("Exercise Name")); + verify(essayExercise).setKey(eq("Key")); + verify(essayExercise).setPublicGroupIds(isA(List.class)); + verify(essayExercise).setReAttempt(eq(1)); + verify(essayExercise).setShowAll(eq(true)); + verify(essayExercise).setStartTime(isA(Date.class)); + verify(essayExercise).setTopicId(eq("42")); + verify(essayExercise).setType(eq("Type")); + verify(essayExercise).setUpdatedDate(eq("2020-03-01")); + verify(essayExerciseRepository).findById(eq("42")); + assertEquals("42", actualEssayExerciseDetail.getExerciseId()); + assertEquals("42", actualEssayExerciseDetail.getTopicId()); + assertEquals("Exercise Description", actualEssayExerciseDetail.getExerciseDescription()); + assertEquals("Exercise Name", actualEssayExerciseDetail.getExerciseName()); + assertEquals("Question", actualEssayExerciseDetail.getQuestion()); + assertEquals("Type", actualEssayExerciseDetail.getType()); + assertEquals(1, actualEssayExerciseDetail.getDurationTime()); + assertEquals(1, actualEssayExerciseDetail.getReAttempt()); + assertSame(fromResult, actualEssayExerciseDetail.getEndTime()); + assertSame(fromResult2, actualEssayExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link EssayExerciseImpl#getEssayExerciseDetail(String)} + */ + @Test + void testGetEssayExerciseDetail3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> essayExerciseImpl.getEssayExerciseDetail("42")); + verify(essayExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link EssayExerciseImpl#deleteEssayExerciseById(String)} + */ + @Test + void testDeleteEssayExerciseById() { + // Arrange + doNothing().when(essayExerciseRepository).deleteById(Mockito.any()); + + // Act + essayExerciseImpl.deleteEssayExerciseById("42"); + + // Assert that nothing has changed + verify(essayExerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: {@link EssayExerciseImpl#deleteEssayExerciseById(String)} + */ + @Test + void testDeleteEssayExerciseById2() { + // Arrange + doThrow(new RuntimeException("foo")).when(essayExerciseRepository).deleteById(Mockito.any()); + + // Act and Assert + assertThrows(RuntimeException.class, () -> essayExerciseImpl.deleteEssayExerciseById("42")); + verify(essayExerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: + * {@link EssayExerciseImpl#updateEssayExercise(String, UpdateEssayExerciseRequest)} + */ + @Test + void testUpdateEssayExercise() { + // Arrange + EssayExercise essayExercise = new EssayExercise(); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + essayExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + essayExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(essayExercise); + + EssayExercise essayExercise2 = new EssayExercise(); + essayExercise2.setCreatedDate("2020-03-01"); + essayExercise2.setDurationTime(1); + essayExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setExerciseDescription("Exercise Description"); + essayExercise2.setExerciseId("42"); + essayExercise2.setExerciseName("Exercise Name"); + essayExercise2.setKey("Key"); + essayExercise2.setPublicGroupIds(new ArrayList<>()); + essayExercise2.setQuestion("Question"); + essayExercise2.setReAttempt(1); + essayExercise2.setShowAll(true); + essayExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setTopicId("42"); + essayExercise2.setType("Type"); + essayExercise2.setUpdatedDate("2020-03-01"); + when(essayExerciseRepository.save(Mockito.any())).thenReturn(essayExercise2); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + + // Act + EssayExercise actualUpdateEssayExerciseResult = essayExerciseImpl.updateEssayExercise("42", + new UpdateEssayExerciseRequest()); + + // Assert + verify(essayExerciseRepository).findById(eq("42")); + verify(essayExerciseRepository).save(isA(EssayExercise.class)); + verify(exerciseRepository).save(isA(Exercise.class)); + assertSame(essayExercise2, actualUpdateEssayExerciseResult); + } + + /** + * Method under test: + * {@link EssayExerciseImpl#updateEssayExercise(String, UpdateEssayExerciseRequest)} + */ + @Test + void testUpdateEssayExercise2() { + // Arrange + EssayExercise essayExercise = new EssayExercise(); + essayExercise.setCreatedDate("2020-03-01"); + essayExercise.setDurationTime(1); + essayExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setExerciseDescription("Exercise Description"); + essayExercise.setExerciseId("42"); + essayExercise.setExerciseName("Exercise Name"); + essayExercise.setKey("Key"); + essayExercise.setPublicGroupIds(new ArrayList<>()); + essayExercise.setQuestion("Question"); + essayExercise.setReAttempt(1); + essayExercise.setShowAll(true); + essayExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise.setTopicId("42"); + essayExercise.setType("Type"); + essayExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(essayExercise); + + EssayExercise essayExercise2 = new EssayExercise(); + essayExercise2.setCreatedDate("2020-03-01"); + essayExercise2.setDurationTime(1); + essayExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setExerciseDescription("Exercise Description"); + essayExercise2.setExerciseId("42"); + essayExercise2.setExerciseName("Exercise Name"); + essayExercise2.setKey("Key"); + essayExercise2.setPublicGroupIds(new ArrayList<>()); + essayExercise2.setQuestion("Question"); + essayExercise2.setReAttempt(1); + essayExercise2.setShowAll(true); + essayExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + essayExercise2.setTopicId("42"); + essayExercise2.setType("Type"); + essayExercise2.setUpdatedDate("2020-03-01"); + when(essayExerciseRepository.save(Mockito.any())).thenReturn(essayExercise2); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(exerciseRepository.save(Mockito.any())).thenThrow(new RuntimeException("essay")); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> essayExerciseImpl.updateEssayExercise("42", new UpdateEssayExerciseRequest())); + verify(essayExerciseRepository).findById(eq("42")); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: + * {@link EssayExerciseImpl#updateEssayExercise(String, UpdateEssayExerciseRequest)} + */ + @Test + void testUpdateEssayExercise3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(essayExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> essayExerciseImpl.updateEssayExercise("42", new UpdateEssayExerciseRequest())); + verify(essayExerciseRepository).findById(eq("42")); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/ExerciseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/ExerciseImplDiffblueTest.java new file mode 100644 index 00000000..c11b558c --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/ExerciseImplDiffblueTest.java @@ -0,0 +1,2501 @@ +package com.example.codeE.service.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.ArgumentMatchers.isNull; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.exercise.CodeExercise; +import com.example.codeE.model.exercise.EssayExercise; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.exercise.FileExercise; +import com.example.codeE.model.exercise.QuizExercise; +import com.example.codeE.model.group.Group; +import com.example.codeE.model.material.Material; +import com.example.codeE.model.topic.Topic; +import com.example.codeE.model.topic.ViewPermissionTopic; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.CodeExerciseRepository; +import com.example.codeE.repository.EssayExerciseRepository; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.repository.GroupRepository; +import com.example.codeE.repository.GroupStudentRepository; +import com.example.codeE.repository.QuizExerciseRepository; +import com.example.codeE.repository.TopicRepository; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.exercise.AllStudentSubmissionResponse; +import com.example.codeE.request.exercise.CreatePermissionExerciseRequest; +import com.example.codeE.request.exercise.ExerciseResponse; +import com.example.codeE.request.exercise.ExerciseStudentResponse; +import com.example.codeE.request.group.GroupTopicResponse; +import com.example.codeE.service.exercise.submission.CodeSubmissionService; +import com.example.codeE.service.exercise.submission.EssaySubmissionService; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {ExerciseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class ExerciseImplDiffblueTest { + @MockBean + private CodeExerciseRepository codeExerciseRepository; + + @MockBean + private CodeSubmissionService codeSubmissionService; + + @MockBean + private EssayExerciseRepository essayExerciseRepository; + + @MockBean + private EssaySubmissionService essaySubmissionService; + + @Autowired + private ExerciseImpl exerciseImpl; + + @MockBean + private ExerciseRepository exerciseRepository; + + @MockBean + private GroupRepository groupRepository; + + @MockBean + private GroupStudentRepository groupStudentRepository; + + @MockBean + private QuizExerciseRepository quizExerciseRepository; + + @MockBean + private QuizSubmissionService quizSubmissionService; + + @MockBean + private TopicRepository topicRepository; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: {@link ExerciseImpl#saveQuizExercise(QuizExercise)} + */ + @Test + void testSaveQuizExercise() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + + QuizExercise exercise2 = new QuizExercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setQuestions(new ArrayList<>()); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + + // Act + Exercise actualSaveQuizExerciseResult = exerciseImpl.saveQuizExercise(exercise2); + + // Assert + verify(exerciseRepository).save(isA(Exercise.class)); + assertSame(exercise, actualSaveQuizExerciseResult); + } + + /** + * Method under test: {@link ExerciseImpl#saveQuizExercise(QuizExercise)} + */ + @Test + void testSaveQuizExercise2() { + // Arrange + when(exerciseRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + QuizExercise exercise = new QuizExercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setQuestions(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> exerciseImpl.saveQuizExercise(exercise)); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: {@link ExerciseImpl#saveEsayExercise(EssayExercise)} + */ + @Test + void testSaveEsayExercise() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + + EssayExercise exercise2 = new EssayExercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setQuestion("Question"); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + + // Act + Exercise actualSaveEsayExerciseResult = exerciseImpl.saveEsayExercise(exercise2); + + // Assert + verify(exerciseRepository).save(isA(Exercise.class)); + assertSame(exercise, actualSaveEsayExerciseResult); + } + + /** + * Method under test: {@link ExerciseImpl#saveEsayExercise(EssayExercise)} + */ + @Test + void testSaveEsayExercise2() { + // Arrange + when(exerciseRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + EssayExercise exercise = new EssayExercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setQuestion("Question"); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> exerciseImpl.saveEsayExercise(exercise)); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: {@link ExerciseImpl#saveCodeExercise(CodeExercise)} + */ + @Test + void testSaveCodeExercise() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + + CodeExercise exercise2 = new CodeExercise(); + exercise2.setAllowedLanguageIds(new ArrayList<>()); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDescription("The characteristics of someone or something"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setMemoryLimit(1); + exercise2.setPartial(true); + exercise2.setPoints(10.0d); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(1); + exercise2.setShortCircuit(true); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTemplate("Template"); + exercise2.setTestCases(new ArrayList<>()); + exercise2.setTimeLimit(10.0d); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + + // Act + Exercise actualSaveCodeExerciseResult = exerciseImpl.saveCodeExercise(exercise2); + + // Assert + verify(exerciseRepository).save(isA(Exercise.class)); + assertSame(exercise, actualSaveCodeExerciseResult); + } + + /** + * Method under test: {@link ExerciseImpl#saveCodeExercise(CodeExercise)} + */ + @Test + void testSaveCodeExercise2() { + // Arrange + when(exerciseRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + CodeExercise exercise = new CodeExercise(); + exercise.setAllowedLanguageIds(new ArrayList<>()); + exercise.setCreatedDate("2020-03-01"); + exercise.setDescription("The characteristics of someone or something"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setMemoryLimit(1); + exercise.setPartial(true); + exercise.setPoints(10.0d); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShortCircuit(true); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTemplate("Template"); + exercise.setTestCases(new ArrayList<>()); + exercise.setTimeLimit(10.0d); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> exerciseImpl.saveCodeExercise(exercise)); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: {@link ExerciseImpl#saveFileExercise(FileExercise)} + */ + @Test + void testSaveFileExercise() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + + FileExercise exercise2 = new FileExercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setQuestion("Question"); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + + // Act + Exercise actualSaveFileExerciseResult = exerciseImpl.saveFileExercise(exercise2); + + // Assert + verify(exerciseRepository).save(isA(Exercise.class)); + assertSame(exercise, actualSaveFileExerciseResult); + } + + /** + * Method under test: {@link ExerciseImpl#saveFileExercise(FileExercise)} + */ + @Test + void testSaveFileExercise2() { + // Arrange + when(exerciseRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + FileExercise exercise = new FileExercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setQuestion("Question"); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> exerciseImpl.saveFileExercise(exercise)); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: {@link ExerciseImpl#getPreviewExercise(String, String)} + */ + @Test + void testGetPreviewExercise() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + ExerciseStudentResponse actualPreviewExercise = exerciseImpl.getPreviewExercise("42", "42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + assertEquals("2020-03-01", actualPreviewExercise.getCreatedDate()); + assertEquals("2020-03-01", actualPreviewExercise.getUpdatedDate()); + assertEquals("42", actualPreviewExercise.getExerciseId()); + assertEquals("42", actualPreviewExercise.getTopicId()); + assertEquals("Exercise Name", actualPreviewExercise.getExerciseName()); + assertEquals("Type", actualPreviewExercise.getType()); + assertEquals(1, actualPreviewExercise.getDurationTime()); + assertFalse(actualPreviewExercise.isAvailable()); + } + + /** + * Method under test: {@link ExerciseImpl#getPreviewExercise(String, String)} + */ + @Test + void testGetPreviewExercise2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + new IllegalArgumentException("foo"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> exerciseImpl.getPreviewExercise("42", "42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByCourseId(String)} + */ + @Test + void testGetExercisesByCourseId() { + // Arrange + when(topicRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualExercisesByCourseId = exerciseImpl.getExercisesByCourseId("42"); + + // Assert + verify(topicRepository).findAll(); + assertTrue(actualExercisesByCourseId.isEmpty()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByCourseId(String)} + */ + @Test + void testGetExercisesByCourseId2() { + // Arrange + when(exerciseRepository.findAll()).thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + // Act + List actualExercisesByCourseId = exerciseImpl.getExercisesByCourseId("42"); + + // Assert + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertTrue(actualExercisesByCourseId.isEmpty()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByCourseId(String)} + */ + @Test + void testGetExercisesByCourseId3() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("42"); + exercise.setExerciseId("42"); + exercise.setExerciseName("42"); + exercise.setKey("42"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("42"); + exercise.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + // Act + List actualExercisesByCourseId = exerciseImpl.getExercisesByCourseId("42"); + + // Assert + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertEquals(1, actualExercisesByCourseId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByCourseId(String)} + */ + @Test + void testGetExercisesByCourseId4() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("42"); + exercise.setExerciseId("42"); + exercise.setExerciseName("42"); + exercise.setKey("42"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("42"); + exercise.setUpdatedDate("2020-03-01"); + + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020/03/01"); + exercise2.setDurationTime(3); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("Exercise Id"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(3); + exercise2.setShowAll(false); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("Topic Id"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020/03/01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise2); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + // Act + List actualExercisesByCourseId = exerciseImpl.getExercisesByCourseId("42"); + + // Assert + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertEquals(1, actualExercisesByCourseId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByCourseId(String)} + */ + @Test + void testGetExercisesByCourseId5() { + // Arrange + when(exerciseRepository.findAll()).thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("Course Id"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("42"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("Course Id"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("42"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(false); + topic2.setTopicId("Topic Id"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic2); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + // Act + List actualExercisesByCourseId = exerciseImpl.getExercisesByCourseId("42"); + + // Assert + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertTrue(actualExercisesByCourseId.isEmpty()); + } + + /** + * Method under test: {@link ExerciseImpl#getExerciseById(String)} + */ + @Test + void testGetExerciseById() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Exercise actualExerciseById = exerciseImpl.getExerciseById("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + assertSame(exercise, actualExerciseById); + } + + /** + * Method under test: {@link ExerciseImpl#getExerciseById(String)} + */ + @Test + void testGetExerciseById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> exerciseImpl.getExerciseById("42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link ExerciseImpl#getExerciseById(String)} + */ + @Test + void testGetExerciseById3() { + // Arrange + when(exerciseRepository.findById(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> exerciseImpl.getExerciseById("42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link ExerciseImpl#getDetailExercise(String, String, String)} + */ + @Test + void testGetDetailExercise() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(DataIntegrityViolationException.class, () -> exerciseImpl.getDetailExercise("42", "Key", "42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link ExerciseImpl#getDetailExercise(String, String, String)} + */ + @Test + void testGetDetailExercise2() { + // Arrange + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.getKey()).thenReturn("foo"); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> exerciseImpl.getDetailExercise("42", "Key", "42")); + verify(codeExercise).getKey(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise).setPublicGroupIds(isA(List.class)); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link ExerciseImpl#getDetailExercise(String, String, String)} + */ + @Test + void testGetDetailExercise3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> exerciseImpl.getDetailExercise("42", "Key", "42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link ExerciseImpl#deleteExerciseById(String)} + */ + @Test + void testDeleteExerciseById() { + // Arrange + doNothing().when(exerciseRepository).deleteById(Mockito.any()); + + // Act + exerciseImpl.deleteExerciseById("42"); + + // Assert that nothing has changed + verify(exerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: {@link ExerciseImpl#deleteExerciseById(String)} + */ + @Test + void testDeleteExerciseById2() { + // Arrange + doThrow(new IllegalArgumentException("foo")).when(exerciseRepository).deleteById(Mockito.any()); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> exerciseImpl.deleteExerciseById("42")); + verify(exerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: + * {@link ExerciseImpl#modifiedPermission(CreatePermissionExerciseRequest)} + */ + @Test + void testModifiedPermission() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020-03-01"); + exercise2.setDurationTime(1); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("42"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(1); + exercise2.setShowAll(true); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("42"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise2); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.modifiedPermission(new CreatePermissionExerciseRequest())); + verify(exerciseRepository).findById(isNull()); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: + * {@link ExerciseImpl#modifiedPermission(CreatePermissionExerciseRequest)} + */ + @Test + void testModifiedPermission2() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.save(Mockito.any())) + .thenThrow(new IllegalArgumentException("Something wrong when change permission.")); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.modifiedPermission(new CreatePermissionExerciseRequest())); + verify(exerciseRepository).findById(isNull()); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: + * {@link ExerciseImpl#modifiedPermission(CreatePermissionExerciseRequest)} + */ + @Test + void testModifiedPermission3() { + // Arrange + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.isShowAll()).thenReturn(true); + when(codeExercise.getDurationTime()).thenReturn(1); + when(codeExercise.getReAttempt()).thenReturn(1); + when(codeExercise.getCreatedDate()).thenReturn("2020-03-01"); + when(codeExercise.getExerciseId()).thenReturn("42"); + when(codeExercise.getExerciseName()).thenReturn("Exercise Name"); + when(codeExercise.getTopicId()).thenReturn("42"); + when(codeExercise.getUpdatedDate()).thenReturn("2020-03-01"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getStartTime()).thenReturn(fromResult2); + when(codeExercise.getPublicGroupIds()).thenReturn(new ArrayList<>()); + when(codeExercise.getType()).thenReturn("Type"); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + ArrayList publicGroupIds = new ArrayList<>(); + exercise.setPublicGroupIds(publicGroupIds); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + ExerciseResponse actualModifiedPermissionResult = exerciseImpl + .modifiedPermission(new CreatePermissionExerciseRequest()); + + // Assert + verify(codeExercise).getCreatedDate(); + verify(codeExercise).getDurationTime(); + verify(codeExercise).getEndTime(); + verify(codeExercise).getExerciseId(); + verify(codeExercise).getExerciseName(); + verify(codeExercise).getPublicGroupIds(); + verify(codeExercise).getReAttempt(); + verify(codeExercise).getStartTime(); + verify(codeExercise).getTopicId(); + verify(codeExercise, atLeast(1)).getType(); + verify(codeExercise).getUpdatedDate(); + verify(codeExercise).isShowAll(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise, atLeast(1)).setPublicGroupIds(Mockito.>any()); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise, atLeast(1)).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(exerciseRepository).findById(isNull()); + verify(exerciseRepository).save(isA(Exercise.class)); + assertEquals("2020-03-01", actualModifiedPermissionResult.getCreatedDate()); + assertEquals("2020-03-01", actualModifiedPermissionResult.getUpdatedDate()); + assertEquals("42", actualModifiedPermissionResult.getExerciseId()); + assertEquals("42", actualModifiedPermissionResult.getTopicId()); + assertEquals("Exercise Name", actualModifiedPermissionResult.getExerciseName()); + assertEquals("Type", actualModifiedPermissionResult.getType()); + assertEquals(1, actualModifiedPermissionResult.getDurationTime()); + assertEquals(1, actualModifiedPermissionResult.getReAttempt()); + assertTrue(actualModifiedPermissionResult.isShowAll()); + assertEquals(publicGroupIds, actualModifiedPermissionResult.getGroups()); + assertEquals(publicGroupIds, actualModifiedPermissionResult.getStudents()); + assertSame(fromResult, actualModifiedPermissionResult.getEndTime()); + assertSame(fromResult2, actualModifiedPermissionResult.getStartTime()); + } + + /** + * Method under test: + * {@link ExerciseImpl#modifiedPermission(CreatePermissionExerciseRequest)} + */ + @Test + void testModifiedPermission4() { + // Arrange + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.getPublicGroupIds()).thenThrow(new NoSuchElementException("foo")); + when(codeExercise.getType()).thenReturn("Type"); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.modifiedPermission(new CreatePermissionExerciseRequest())); + verify(codeExercise).getPublicGroupIds(); + verify(codeExercise).getType(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise, atLeast(1)).setPublicGroupIds(Mockito.>any()); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise, atLeast(1)).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(exerciseRepository).findById(isNull()); + verify(exerciseRepository).save(isA(Exercise.class)); + } + + /** + * Method under test: + * {@link ExerciseImpl#modifiedPermission(CreatePermissionExerciseRequest)} + */ + @Test + void testModifiedPermission5() { + // Arrange + ArrayList stringList = new ArrayList<>(); + stringList.add("foo"); + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.isShowAll()).thenReturn(true); + when(codeExercise.getDurationTime()).thenReturn(1); + when(codeExercise.getReAttempt()).thenReturn(1); + when(codeExercise.getCreatedDate()).thenReturn("2020-03-01"); + when(codeExercise.getExerciseId()).thenReturn("42"); + when(codeExercise.getExerciseName()).thenReturn("Exercise Name"); + when(codeExercise.getTopicId()).thenReturn("42"); + when(codeExercise.getUpdatedDate()).thenReturn("2020-03-01"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(codeExercise.getStartTime()).thenReturn(fromResult2); + when(codeExercise.getPublicGroupIds()).thenReturn(stringList); + when(codeExercise.getType()).thenReturn("Type"); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(codeExercise); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + ArrayList publicGroupIds = new ArrayList<>(); + exercise.setPublicGroupIds(publicGroupIds); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + ExerciseResponse actualModifiedPermissionResult = exerciseImpl + .modifiedPermission(new CreatePermissionExerciseRequest()); + + // Assert + verify(codeExercise).getCreatedDate(); + verify(codeExercise).getDurationTime(); + verify(codeExercise).getEndTime(); + verify(codeExercise).getExerciseId(); + verify(codeExercise).getExerciseName(); + verify(codeExercise).getPublicGroupIds(); + verify(codeExercise).getReAttempt(); + verify(codeExercise).getStartTime(); + verify(codeExercise).getTopicId(); + verify(codeExercise, atLeast(1)).getType(); + verify(codeExercise).getUpdatedDate(); + verify(codeExercise).isShowAll(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise, atLeast(1)).setPublicGroupIds(Mockito.>any()); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise, atLeast(1)).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(groupRepository).findById(eq("foo")); + verify(exerciseRepository).findById(isNull()); + verify(exerciseRepository).save(isA(Exercise.class)); + assertEquals("2020-03-01", actualModifiedPermissionResult.getCreatedDate()); + assertEquals("2020-03-01", actualModifiedPermissionResult.getUpdatedDate()); + assertEquals("42", actualModifiedPermissionResult.getExerciseId()); + assertEquals("42", actualModifiedPermissionResult.getTopicId()); + List groups = actualModifiedPermissionResult.getGroups(); + assertEquals(1, groups.size()); + GroupTopicResponse getResult = groups.get(0); + assertEquals("42", getResult.getGroupId()); + assertEquals("Exercise Name", actualModifiedPermissionResult.getExerciseName()); + assertEquals("Group Name", getResult.getGroupName()); + assertEquals("Type", actualModifiedPermissionResult.getType()); + assertEquals(1, actualModifiedPermissionResult.getDurationTime()); + assertEquals(1, actualModifiedPermissionResult.getReAttempt()); + assertTrue(actualModifiedPermissionResult.isShowAll()); + assertEquals(publicGroupIds, actualModifiedPermissionResult.getStudents()); + assertSame(fromResult, actualModifiedPermissionResult.getEndTime()); + assertSame(fromResult2, actualModifiedPermissionResult.getStartTime()); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission() { + // Arrange + when(topicRepository.findAll()).thenReturn(new ArrayList<>()); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualAllStudentSubmission = exerciseImpl.getAllStudentSubmission("42", "42"); + + // Assert + verify(userRepository).findById(eq("42")); + verify(topicRepository).findAll(); + assertTrue(actualAllStudentSubmission.isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission2() { + // Arrange + when(topicRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.getAllStudentSubmission("42", "42")); + verify(userRepository).findById(eq("42")); + verify(topicRepository).findAll(); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission3() { + // Arrange + when(exerciseRepository.findAll()).thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualAllStudentSubmission = exerciseImpl.getAllStudentSubmission("42", "42"); + + // Assert + verify(userRepository).findById(eq("42")); + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertTrue(actualAllStudentSubmission.isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission4() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("42"); + exercise.setExerciseId("42"); + exercise.setExerciseName("42"); + exercise.setKey("42"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("42"); + exercise.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualAllStudentSubmission = exerciseImpl.getAllStudentSubmission("42", "42"); + + // Assert + verify(userRepository).findById(eq("42")); + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertTrue(actualAllStudentSubmission.isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission5() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("42"); + exercise.setExerciseId("42"); + exercise.setExerciseName("42"); + exercise.setKey("42"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("42"); + exercise.setUpdatedDate("2020-03-01"); + + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020/03/01"); + exercise2.setDurationTime(3); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("Exercise Id"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(3); + exercise2.setShowAll(false); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("Topic Id"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020/03/01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise2); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualAllStudentSubmission = exerciseImpl.getAllStudentSubmission("42", "42"); + + // Assert + verify(userRepository).findById(eq("42")); + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertTrue(actualAllStudentSubmission.isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission6() { + // Arrange + when(exerciseRepository.findAll()).thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("Course Id"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("42"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("Course Id"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("42"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(false); + topic2.setTopicId("Topic Id"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic2); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualAllStudentSubmission = exerciseImpl.getAllStudentSubmission("42", "42"); + + // Assert + verify(userRepository).findById(eq("42")); + verify(exerciseRepository).findAll(); + verify(topicRepository).findAll(); + assertTrue(actualAllStudentSubmission.isEmpty()); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission7() { + // Arrange + when(exerciseRepository.findAll()).thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic = mock(Topic.class); + when(topic.getTopicId()).thenThrow(new IllegalArgumentException("foo")); + when(topic.getCourseId()).thenReturn("42"); + doNothing().when(topic).setCourse(Mockito.any()); + doNothing().when(topic).setCourseId(Mockito.any()); + doNothing().when(topic).setCreatedDate(Mockito.any()); + doNothing().when(topic).setDescription(Mockito.any()); + doNothing().when(topic).setMaterials(Mockito.>any()); + doNothing().when(topic).setShowAll(anyBoolean()); + doNothing().when(topic).setTopicId(Mockito.any()); + doNothing().when(topic).setTopicName(Mockito.any()); + doNothing().when(topic).setUpdatedDate(Mockito.any()); + doNothing().when(topic).setViewPermissionTopics(Mockito.>any()); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.findAll()).thenReturn(topicList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.getAllStudentSubmission("42", "42")); + verify(topic).getCourseId(); + verify(topic).getTopicId(); + verify(topic).setCourse(isA(Course.class)); + verify(topic).setCourseId(eq("42")); + verify(topic).setCreatedDate(isA(LocalDateTime.class)); + verify(topic).setDescription(eq("The characteristics of someone or something")); + verify(topic).setMaterials(isA(List.class)); + verify(topic).setShowAll(eq(true)); + verify(topic).setTopicId(eq("42")); + verify(topic).setTopicName(eq("Topic Name")); + verify(topic).setUpdatedDate(isA(LocalDateTime.class)); + verify(topic).setViewPermissionTopics(isA(List.class)); + verify(userRepository).findById(eq("42")); + verify(topicRepository).findAll(); + } + + /** + * Method under test: + * {@link ExerciseImpl#getAllStudentSubmission(String, String)} + */ + @Test + void testGetAllStudentSubmission8() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Topic topic = mock(Topic.class); + doNothing().when(topic).setCourse(Mockito.any()); + doNothing().when(topic).setCourseId(Mockito.any()); + doNothing().when(topic).setCreatedDate(Mockito.any()); + doNothing().when(topic).setDescription(Mockito.any()); + doNothing().when(topic).setMaterials(Mockito.>any()); + doNothing().when(topic).setShowAll(anyBoolean()); + doNothing().when(topic).setTopicId(Mockito.any()); + doNothing().when(topic).setTopicName(Mockito.any()); + doNothing().when(topic).setUpdatedDate(Mockito.any()); + doNothing().when(topic).setViewPermissionTopics(Mockito.>any()); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> exerciseImpl.getAllStudentSubmission("42", "42")); + verify(topic).setCourse(isA(Course.class)); + verify(topic).setCourseId(eq("42")); + verify(topic).setCreatedDate(isA(LocalDateTime.class)); + verify(topic).setDescription(eq("The characteristics of someone or something")); + verify(topic).setMaterials(isA(List.class)); + verify(topic).setShowAll(eq(true)); + verify(topic).setTopicId(eq("42")); + verify(topic).setTopicName(eq("Topic Name")); + verify(topic).setUpdatedDate(isA(LocalDateTime.class)); + verify(topic).setViewPermissionTopics(isA(List.class)); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByTopicId(String)} + */ + @Test + void testGetExercisesByTopicId() { + // Arrange + when(exerciseRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualExercisesByTopicId = exerciseImpl.getExercisesByTopicId("42"); + + // Assert + verify(exerciseRepository).findAll(); + assertTrue(actualExercisesByTopicId.isEmpty()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByTopicId(String)} + */ + @Test + void testGetExercisesByTopicId2() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act + List actualExercisesByTopicId = exerciseImpl.getExercisesByTopicId("42"); + + // Assert + verify(exerciseRepository).findAll(); + assertEquals(1, actualExercisesByTopicId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByTopicId(String)} + */ + @Test + void testGetExercisesByTopicId3() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020/03/01"); + exercise2.setDurationTime(3); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("Exercise Id"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(3); + exercise2.setShowAll(false); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("Topic Id"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020/03/01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise2); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act + List actualExercisesByTopicId = exerciseImpl.getExercisesByTopicId("42"); + + // Assert + verify(exerciseRepository).findAll(); + assertEquals(1, actualExercisesByTopicId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByTopicId(String)} + */ + @Test + void testGetExercisesByTopicId4() { + // Arrange + when(exerciseRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.getExercisesByTopicId("42")); + verify(exerciseRepository).findAll(); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByTopicId(String)} + */ + @Test + void testGetExercisesByTopicId5() { + // Arrange + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.getPublicGroupIds()).thenThrow(new NoSuchElementException("foo")); + when(codeExercise.getTopicId()).thenReturn("42"); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(codeExercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.getExercisesByTopicId("42")); + verify(codeExercise).getPublicGroupIds(); + verify(codeExercise).getTopicId(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise).setPublicGroupIds(isA(List.class)); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(exerciseRepository).findAll(); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId() { + // Arrange + when(exerciseRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualExercisesByUserId = exerciseImpl.getExercisesByUserId("42", "42"); + + // Assert + verify(exerciseRepository).findAll(); + assertTrue(actualExercisesByUserId.isEmpty()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId2() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act + List actualExercisesByUserId = exerciseImpl.getExercisesByUserId("42", "42"); + + // Assert + verify(exerciseRepository).findAll(); + assertEquals(1, actualExercisesByUserId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId3() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020/03/01"); + exercise2.setDurationTime(3); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("Exercise Id"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(3); + exercise2.setShowAll(false); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("Topic Id"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020/03/01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise2); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act + List actualExercisesByUserId = exerciseImpl.getExercisesByUserId("42", "42"); + + // Assert + verify(exerciseRepository).findAll(); + assertEquals(1, actualExercisesByUserId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId4() { + // Arrange + when(exerciseRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.getExercisesByUserId("42", "42")); + verify(exerciseRepository).findAll(); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId5() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020/03/01"); + exercise2.setDurationTime(3); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("Exercise Id"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(3); + exercise2.setShowAll(false); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("Topic Id"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020/03/01"); + + Exercise exercise3 = new Exercise(); + exercise3.setCreatedDate("Jan 1, 2020 8:00am GMT+0100"); + exercise3.setDurationTime(0); + exercise3.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise3.setExerciseDescription("Exercise Description"); + exercise3.setExerciseId("Exercise Id"); + exercise3.setExerciseName("Exercise Name"); + exercise3.setKey("Key"); + exercise3.setPublicGroupIds(new ArrayList<>()); + exercise3.setReAttempt(0); + exercise3.setShowAll(true); + exercise3.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise3.setTopicId(""); + exercise3.setType("Type"); + exercise3.setUpdatedDate("Topic Id"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise3); + exerciseList.add(exercise2); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act + List actualExercisesByUserId = exerciseImpl.getExercisesByUserId("42", "42"); + + // Assert + verify(exerciseRepository).findAll(); + assertEquals(1, actualExercisesByUserId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId6() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + + Exercise exercise2 = new Exercise(); + exercise2.setCreatedDate("2020/03/01"); + exercise2.setDurationTime(3); + exercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setExerciseDescription("Exercise Description"); + exercise2.setExerciseId("Exercise Id"); + exercise2.setExerciseName("Exercise Name"); + exercise2.setKey("Key"); + exercise2.setPublicGroupIds(new ArrayList<>()); + exercise2.setReAttempt(3); + exercise2.setShowAll(false); + exercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise2.setTopicId("Topic Id"); + exercise2.setType("Type"); + exercise2.setUpdatedDate("2020/03/01"); + + Exercise exercise3 = new Exercise(); + exercise3.setCreatedDate("Jan 1, 2020 8:00am GMT+0100"); + exercise3.setDurationTime(0); + exercise3.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise3.setExerciseDescription("Exercise Description"); + exercise3.setExerciseId("Exercise Id"); + exercise3.setExerciseName("Exercise Name"); + exercise3.setKey("Key"); + exercise3.setPublicGroupIds(new ArrayList<>()); + exercise3.setReAttempt(0); + exercise3.setShowAll(true); + exercise3.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise3.setTopicId(""); + exercise3.setType("Type"); + exercise3.setUpdatedDate("Topic Id"); + + Exercise exercise4 = new Exercise(); + exercise4.setCreatedDate("2020-03-01"); + exercise4.setDurationTime(1); + exercise4.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise4.setExerciseDescription("42"); + exercise4.setExerciseId("42"); + exercise4.setExerciseName("42"); + exercise4.setKey("42"); + exercise4.setPublicGroupIds(new ArrayList<>()); + exercise4.setReAttempt(1); + exercise4.setShowAll(false); + exercise4.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise4.setTopicId("42"); + exercise4.setType("42"); + exercise4.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(exercise4); + exerciseList.add(exercise3); + exerciseList.add(exercise2); + exerciseList.add(exercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act + List actualExercisesByUserId = exerciseImpl.getExercisesByUserId("42", "42"); + + // Assert + verify(exerciseRepository).findAll(); + assertEquals(1, actualExercisesByUserId.size()); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId7() { + // Arrange + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.getPublicGroupIds()).thenThrow(new NoSuchElementException("foo")); + when(codeExercise.isShowAll()).thenReturn(true); + when(codeExercise.getTopicId()).thenReturn("42"); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(codeExercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.getExercisesByUserId("42", "42")); + verify(codeExercise).getPublicGroupIds(); + verify(codeExercise).getTopicId(); + verify(codeExercise).isShowAll(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise).setPublicGroupIds(isA(List.class)); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(exerciseRepository).findAll(); + } + + /** + * Method under test: {@link ExerciseImpl#getExercisesByUserId(String, String)} + */ + @Test + void testGetExercisesByUserId8() { + // Arrange + CodeExercise codeExercise = mock(CodeExercise.class); + when(codeExercise.getPublicGroupIds()).thenThrow(new NoSuchElementException("foo")); + when(codeExercise.isShowAll()).thenReturn(false); + when(codeExercise.getTopicId()).thenReturn("42"); + doNothing().when(codeExercise).setCreatedDate(Mockito.any()); + doNothing().when(codeExercise).setDurationTime(anyInt()); + doNothing().when(codeExercise).setEndTime(Mockito.any()); + doNothing().when(codeExercise).setExerciseDescription(Mockito.any()); + doNothing().when(codeExercise).setExerciseId(Mockito.any()); + doNothing().when(codeExercise).setExerciseName(Mockito.any()); + doNothing().when(codeExercise).setKey(Mockito.any()); + doNothing().when(codeExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(codeExercise).setReAttempt(anyInt()); + doNothing().when(codeExercise).setShowAll(anyBoolean()); + doNothing().when(codeExercise).setStartTime(Mockito.any()); + doNothing().when(codeExercise).setTopicId(Mockito.any()); + doNothing().when(codeExercise).setType(Mockito.any()); + doNothing().when(codeExercise).setUpdatedDate(Mockito.any()); + codeExercise.setCreatedDate("2020-03-01"); + codeExercise.setDurationTime(1); + codeExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setExerciseDescription("Exercise Description"); + codeExercise.setExerciseId("42"); + codeExercise.setExerciseName("Exercise Name"); + codeExercise.setKey("Key"); + codeExercise.setPublicGroupIds(new ArrayList<>()); + codeExercise.setReAttempt(1); + codeExercise.setShowAll(true); + codeExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + codeExercise.setTopicId("42"); + codeExercise.setType("Type"); + codeExercise.setUpdatedDate("2020-03-01"); + + ArrayList exerciseList = new ArrayList<>(); + exerciseList.add(codeExercise); + when(exerciseRepository.findAll()).thenReturn(exerciseList); + + // Act and Assert + assertThrows(RuntimeException.class, () -> exerciseImpl.getExercisesByUserId("42", "42")); + verify(codeExercise).getPublicGroupIds(); + verify(codeExercise).getTopicId(); + verify(codeExercise).isShowAll(); + verify(codeExercise).setCreatedDate(eq("2020-03-01")); + verify(codeExercise).setDurationTime(eq(1)); + verify(codeExercise).setEndTime(isA(Date.class)); + verify(codeExercise).setExerciseDescription(eq("Exercise Description")); + verify(codeExercise).setExerciseId(eq("42")); + verify(codeExercise).setExerciseName(eq("Exercise Name")); + verify(codeExercise).setKey(eq("Key")); + verify(codeExercise).setPublicGroupIds(isA(List.class)); + verify(codeExercise).setReAttempt(eq(1)); + verify(codeExercise).setShowAll(eq(true)); + verify(codeExercise).setStartTime(isA(Date.class)); + verify(codeExercise).setTopicId(eq("42")); + verify(codeExercise).setType(eq("Type")); + verify(codeExercise).setUpdatedDate(eq("2020-03-01")); + verify(exerciseRepository).findAll(); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/FileExerciseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/FileExerciseImplDiffblueTest.java new file mode 100644 index 00000000..dbc2ef51 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/FileExerciseImplDiffblueTest.java @@ -0,0 +1,612 @@ +package com.example.codeE.service.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.exercise.FileExercise; +import com.example.codeE.model.group.Group; +import com.example.codeE.repository.FileExerciseRepository; +import com.example.codeE.repository.GroupRepository; +import com.example.codeE.request.exercise.file.UpdateFileExerciseRequest; +import com.example.codeE.request.exercise.file.response.FileDetailResponse; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {FileExerciseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class FileExerciseImplDiffblueTest { + @Autowired + private FileExerciseImpl fileExerciseImpl; + + @MockBean + private FileExerciseRepository fileExerciseRepository; + + @MockBean + private GroupRepository groupRepository; + + /** + * Method under test: {@link FileExerciseImpl#createFileExercise(FileExercise)} + */ + @Test + void testCreateFileExercise() { + // Arrange + FileExercise fileExercise = new FileExercise(); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + fileExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + fileExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + when(fileExerciseRepository.save(Mockito.any())).thenReturn(fileExercise); + + FileExercise fileExercise2 = new FileExercise(); + fileExercise2.setCreatedDate("2020-03-01"); + fileExercise2.setDurationTime(1); + fileExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setExerciseDescription("Exercise Description"); + fileExercise2.setExerciseId("42"); + fileExercise2.setExerciseName("Exercise Name"); + fileExercise2.setKey("Key"); + fileExercise2.setPublicGroupIds(new ArrayList<>()); + fileExercise2.setQuestion("Question"); + fileExercise2.setReAttempt(1); + fileExercise2.setShowAll(true); + fileExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setTopicId("42"); + fileExercise2.setType("Type"); + fileExercise2.setUpdatedDate("2020-03-01"); + + // Act + FileExercise actualCreateFileExerciseResult = fileExerciseImpl.createFileExercise(fileExercise2); + + // Assert + verify(fileExerciseRepository).save(isA(FileExercise.class)); + assertSame(fileExercise, actualCreateFileExerciseResult); + } + + /** + * Method under test: {@link FileExerciseImpl#createFileExercise(FileExercise)} + */ + @Test + void testCreateFileExercise2() { + // Arrange + FileExercise fileExercise = new FileExercise(); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + fileExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + fileExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + when(fileExerciseRepository.save(Mockito.any())).thenReturn(fileExercise); + FileExercise fileExercise2 = mock(FileExercise.class); + when(fileExercise2.getReAttempt()).thenReturn(-1); + when(fileExercise2.getPublicGroupIds()).thenReturn(new ArrayList<>()); + doNothing().when(fileExercise2).setCreatedDate(Mockito.any()); + doNothing().when(fileExercise2).setDurationTime(anyInt()); + doNothing().when(fileExercise2).setEndTime(Mockito.any()); + doNothing().when(fileExercise2).setExerciseDescription(Mockito.any()); + doNothing().when(fileExercise2).setExerciseId(Mockito.any()); + doNothing().when(fileExercise2).setExerciseName(Mockito.any()); + doNothing().when(fileExercise2).setKey(Mockito.any()); + doNothing().when(fileExercise2).setPublicGroupIds(Mockito.>any()); + doNothing().when(fileExercise2).setReAttempt(anyInt()); + doNothing().when(fileExercise2).setShowAll(anyBoolean()); + doNothing().when(fileExercise2).setStartTime(Mockito.any()); + doNothing().when(fileExercise2).setTopicId(Mockito.any()); + doNothing().when(fileExercise2).setType(Mockito.any()); + doNothing().when(fileExercise2).setUpdatedDate(Mockito.any()); + doNothing().when(fileExercise2).setQuestion(Mockito.any()); + fileExercise2.setCreatedDate("2020-03-01"); + fileExercise2.setDurationTime(1); + fileExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setExerciseDescription("Exercise Description"); + fileExercise2.setExerciseId("42"); + fileExercise2.setExerciseName("Exercise Name"); + fileExercise2.setKey("Key"); + fileExercise2.setPublicGroupIds(new ArrayList<>()); + fileExercise2.setQuestion("Question"); + fileExercise2.setReAttempt(1); + fileExercise2.setShowAll(true); + fileExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setTopicId("42"); + fileExercise2.setType("Type"); + fileExercise2.setUpdatedDate("2020-03-01"); + + // Act + FileExercise actualCreateFileExerciseResult = fileExerciseImpl.createFileExercise(fileExercise2); + + // Assert + verify(fileExercise2).getPublicGroupIds(); + verify(fileExercise2).getReAttempt(); + verify(fileExercise2).setCreatedDate(eq("2020-03-01")); + verify(fileExercise2).setDurationTime(eq(1)); + verify(fileExercise2).setEndTime(isA(Date.class)); + verify(fileExercise2).setExerciseDescription(eq("Exercise Description")); + verify(fileExercise2).setExerciseId(eq("42")); + verify(fileExercise2).setExerciseName(eq("Exercise Name")); + verify(fileExercise2).setKey(eq("Key")); + verify(fileExercise2).setPublicGroupIds(isA(List.class)); + verify(fileExercise2, atLeast(1)).setReAttempt(eq(1)); + verify(fileExercise2).setShowAll(eq(true)); + verify(fileExercise2).setStartTime(isA(Date.class)); + verify(fileExercise2).setTopicId(eq("42")); + verify(fileExercise2).setType(eq("Type")); + verify(fileExercise2).setUpdatedDate(eq("2020-03-01")); + verify(fileExercise2).setQuestion(eq("Question")); + verify(fileExerciseRepository).save(isA(FileExercise.class)); + assertSame(fileExercise, actualCreateFileExerciseResult); + } + + /** + * Method under test: {@link FileExerciseImpl#createFileExercise(FileExercise)} + */ + @Test + void testCreateFileExercise3() { + // Arrange + FileExercise fileExercise = new FileExercise(); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + fileExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + fileExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + when(fileExerciseRepository.save(Mockito.any())).thenReturn(fileExercise); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + ArrayList stringList = new ArrayList<>(); + stringList.add("foo"); + FileExercise fileExercise2 = mock(FileExercise.class); + when(fileExercise2.getReAttempt()).thenReturn(1); + when(fileExercise2.getPublicGroupIds()).thenReturn(stringList); + doNothing().when(fileExercise2).setCreatedDate(Mockito.any()); + doNothing().when(fileExercise2).setDurationTime(anyInt()); + doNothing().when(fileExercise2).setEndTime(Mockito.any()); + doNothing().when(fileExercise2).setExerciseDescription(Mockito.any()); + doNothing().when(fileExercise2).setExerciseId(Mockito.any()); + doNothing().when(fileExercise2).setExerciseName(Mockito.any()); + doNothing().when(fileExercise2).setKey(Mockito.any()); + doNothing().when(fileExercise2).setPublicGroupIds(Mockito.>any()); + doNothing().when(fileExercise2).setReAttempt(anyInt()); + doNothing().when(fileExercise2).setShowAll(anyBoolean()); + doNothing().when(fileExercise2).setStartTime(Mockito.any()); + doNothing().when(fileExercise2).setTopicId(Mockito.any()); + doNothing().when(fileExercise2).setType(Mockito.any()); + doNothing().when(fileExercise2).setUpdatedDate(Mockito.any()); + doNothing().when(fileExercise2).setQuestion(Mockito.any()); + fileExercise2.setCreatedDate("2020-03-01"); + fileExercise2.setDurationTime(1); + fileExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setExerciseDescription("Exercise Description"); + fileExercise2.setExerciseId("42"); + fileExercise2.setExerciseName("Exercise Name"); + fileExercise2.setKey("Key"); + fileExercise2.setPublicGroupIds(new ArrayList<>()); + fileExercise2.setQuestion("Question"); + fileExercise2.setReAttempt(1); + fileExercise2.setShowAll(true); + fileExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setTopicId("42"); + fileExercise2.setType("Type"); + fileExercise2.setUpdatedDate("2020-03-01"); + + // Act + FileExercise actualCreateFileExerciseResult = fileExerciseImpl.createFileExercise(fileExercise2); + + // Assert + verify(fileExercise2).getPublicGroupIds(); + verify(fileExercise2).getReAttempt(); + verify(fileExercise2).setCreatedDate(eq("2020-03-01")); + verify(fileExercise2).setDurationTime(eq(1)); + verify(fileExercise2).setEndTime(isA(Date.class)); + verify(fileExercise2).setExerciseDescription(eq("Exercise Description")); + verify(fileExercise2).setExerciseId(eq("42")); + verify(fileExercise2).setExerciseName(eq("Exercise Name")); + verify(fileExercise2).setKey(eq("Key")); + verify(fileExercise2).setPublicGroupIds(isA(List.class)); + verify(fileExercise2).setReAttempt(eq(1)); + verify(fileExercise2).setShowAll(eq(true)); + verify(fileExercise2).setStartTime(isA(Date.class)); + verify(fileExercise2).setTopicId(eq("42")); + verify(fileExercise2).setType(eq("Type")); + verify(fileExercise2).setUpdatedDate(eq("2020-03-01")); + verify(fileExercise2).setQuestion(eq("Question")); + verify(groupRepository).findById(eq("foo")); + verify(fileExerciseRepository).save(isA(FileExercise.class)); + assertSame(fileExercise, actualCreateFileExerciseResult); + } + + /** + * Method under test: {@link FileExerciseImpl#getFileExerciseDetail(String)} + */ + @Test + void testGetFileExerciseDetail() { + // Arrange + FileExercise fileExercise = new FileExercise(); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + fileExercise.setEndTime(endTime); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + fileExercise.setStartTime(startTime); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(fileExercise); + when(fileExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + FileDetailResponse actualFileExerciseDetail = fileExerciseImpl.getFileExerciseDetail("42"); + + // Assert + verify(fileExerciseRepository).findById(eq("42")); + assertEquals("42", actualFileExerciseDetail.getExerciseId()); + assertEquals("42", actualFileExerciseDetail.getTopicId()); + assertEquals("Exercise Description", actualFileExerciseDetail.getExerciseDescription()); + assertEquals("Exercise Name", actualFileExerciseDetail.getExerciseName()); + assertEquals("Question", actualFileExerciseDetail.getQuestion()); + assertEquals("Type", actualFileExerciseDetail.getType()); + assertEquals(1, actualFileExerciseDetail.getDurationTime()); + assertEquals(1, actualFileExerciseDetail.getReAttempt()); + assertSame(endTime, actualFileExerciseDetail.getEndTime()); + assertSame(startTime, actualFileExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link FileExerciseImpl#getFileExerciseDetail(String)} + */ + @Test + void testGetFileExerciseDetail2() { + // Arrange + FileExercise fileExercise = mock(FileExercise.class); + when(fileExercise.getDurationTime()).thenReturn(1); + when(fileExercise.getReAttempt()).thenReturn(1); + when(fileExercise.getExerciseDescription()).thenReturn("Exercise Description"); + when(fileExercise.getExerciseId()).thenReturn("42"); + when(fileExercise.getExerciseName()).thenReturn("Exercise Name"); + when(fileExercise.getTopicId()).thenReturn("42"); + when(fileExercise.getType()).thenReturn("Type"); + when(fileExercise.getQuestion()).thenReturn("Question"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(fileExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(fileExercise.getStartTime()).thenReturn(fromResult2); + doNothing().when(fileExercise).setCreatedDate(Mockito.any()); + doNothing().when(fileExercise).setDurationTime(anyInt()); + doNothing().when(fileExercise).setEndTime(Mockito.any()); + doNothing().when(fileExercise).setExerciseDescription(Mockito.any()); + doNothing().when(fileExercise).setExerciseId(Mockito.any()); + doNothing().when(fileExercise).setExerciseName(Mockito.any()); + doNothing().when(fileExercise).setKey(Mockito.any()); + doNothing().when(fileExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(fileExercise).setReAttempt(anyInt()); + doNothing().when(fileExercise).setShowAll(anyBoolean()); + doNothing().when(fileExercise).setStartTime(Mockito.any()); + doNothing().when(fileExercise).setTopicId(Mockito.any()); + doNothing().when(fileExercise).setType(Mockito.any()); + doNothing().when(fileExercise).setUpdatedDate(Mockito.any()); + doNothing().when(fileExercise).setQuestion(Mockito.any()); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + fileExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + fileExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(fileExercise); + when(fileExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + FileDetailResponse actualFileExerciseDetail = fileExerciseImpl.getFileExerciseDetail("42"); + + // Assert + verify(fileExercise, atLeast(1)).getDurationTime(); + verify(fileExercise, atLeast(1)).getEndTime(); + verify(fileExercise).getExerciseDescription(); + verify(fileExercise).getExerciseId(); + verify(fileExercise).getExerciseName(); + verify(fileExercise).getReAttempt(); + verify(fileExercise, atLeast(1)).getStartTime(); + verify(fileExercise).getTopicId(); + verify(fileExercise).getType(); + verify(fileExercise).setCreatedDate(eq("2020-03-01")); + verify(fileExercise).setDurationTime(eq(1)); + verify(fileExercise).setEndTime(isA(Date.class)); + verify(fileExercise).setExerciseDescription(eq("Exercise Description")); + verify(fileExercise).setExerciseId(eq("42")); + verify(fileExercise).setExerciseName(eq("Exercise Name")); + verify(fileExercise).setKey(eq("Key")); + verify(fileExercise).setPublicGroupIds(isA(List.class)); + verify(fileExercise).setReAttempt(eq(1)); + verify(fileExercise).setShowAll(eq(true)); + verify(fileExercise).setStartTime(isA(Date.class)); + verify(fileExercise).setTopicId(eq("42")); + verify(fileExercise).setType(eq("Type")); + verify(fileExercise).setUpdatedDate(eq("2020-03-01")); + verify(fileExercise).getQuestion(); + verify(fileExercise).setQuestion(eq("Question")); + verify(fileExerciseRepository).findById(eq("42")); + assertEquals("42", actualFileExerciseDetail.getExerciseId()); + assertEquals("42", actualFileExerciseDetail.getTopicId()); + assertEquals("Exercise Description", actualFileExerciseDetail.getExerciseDescription()); + assertEquals("Exercise Name", actualFileExerciseDetail.getExerciseName()); + assertEquals("Question", actualFileExerciseDetail.getQuestion()); + assertEquals("Type", actualFileExerciseDetail.getType()); + assertEquals(1, actualFileExerciseDetail.getDurationTime()); + assertEquals(1, actualFileExerciseDetail.getReAttempt()); + assertSame(fromResult, actualFileExerciseDetail.getEndTime()); + assertSame(fromResult2, actualFileExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link FileExerciseImpl#getFileExerciseDetail(String)} + */ + @Test + void testGetFileExerciseDetail3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(fileExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> fileExerciseImpl.getFileExerciseDetail("42")); + verify(fileExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link FileExerciseImpl#updateFileExercise(String, UpdateFileExerciseRequest)} + */ + @Test + void testUpdateFileExercise() { + // Arrange + FileExercise fileExercise = new FileExercise(); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + fileExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + fileExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(fileExercise); + + FileExercise fileExercise2 = new FileExercise(); + fileExercise2.setCreatedDate("2020-03-01"); + fileExercise2.setDurationTime(1); + fileExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setExerciseDescription("Exercise Description"); + fileExercise2.setExerciseId("42"); + fileExercise2.setExerciseName("Exercise Name"); + fileExercise2.setKey("Key"); + fileExercise2.setPublicGroupIds(new ArrayList<>()); + fileExercise2.setQuestion("Question"); + fileExercise2.setReAttempt(1); + fileExercise2.setShowAll(true); + fileExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise2.setTopicId("42"); + fileExercise2.setType("Type"); + fileExercise2.setUpdatedDate("2020-03-01"); + when(fileExerciseRepository.save(Mockito.any())).thenReturn(fileExercise2); + when(fileExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + FileExercise actualUpdateFileExerciseResult = fileExerciseImpl.updateFileExercise("42", + new UpdateFileExerciseRequest()); + + // Assert + verify(fileExerciseRepository).findById(eq("42")); + verify(fileExerciseRepository).save(isA(FileExercise.class)); + assertSame(fileExercise2, actualUpdateFileExerciseResult); + } + + /** + * Method under test: + * {@link FileExerciseImpl#updateFileExercise(String, UpdateFileExerciseRequest)} + */ + @Test + void testUpdateFileExercise2() { + // Arrange + FileExercise fileExercise = new FileExercise(); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + fileExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + fileExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(fileExercise); + when(fileExerciseRepository.save(Mockito.any())).thenThrow(new RuntimeException("file")); + when(fileExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> fileExerciseImpl.updateFileExercise("42", new UpdateFileExerciseRequest())); + verify(fileExerciseRepository).findById(eq("42")); + verify(fileExerciseRepository).save(isA(FileExercise.class)); + } + + /** + * Method under test: + * {@link FileExerciseImpl#updateFileExercise(String, UpdateFileExerciseRequest)} + */ + @Test + void testUpdateFileExercise3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(fileExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> fileExerciseImpl.updateFileExercise("42", new UpdateFileExerciseRequest())); + verify(fileExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link FileExerciseImpl#updateFileExercise(String, UpdateFileExerciseRequest)} + */ + @Test + void testUpdateFileExercise4() { + // Arrange + FileExercise fileExercise = new FileExercise(); + fileExercise.setCreatedDate("2020-03-01"); + fileExercise.setDurationTime(1); + fileExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setExerciseDescription("Exercise Description"); + fileExercise.setExerciseId("42"); + fileExercise.setExerciseName("Exercise Name"); + fileExercise.setKey("Key"); + fileExercise.setPublicGroupIds(new ArrayList<>()); + fileExercise.setQuestion("Question"); + fileExercise.setReAttempt(1); + fileExercise.setShowAll(true); + fileExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + fileExercise.setTopicId("42"); + fileExercise.setType("Type"); + fileExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(fileExercise); + when(fileExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> fileExerciseImpl.updateFileExercise("42", null)); + verify(fileExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link FileExerciseImpl#deleteFileExerciseById(String)} + */ + @Test + void testDeleteFileExerciseById() { + // Arrange + doNothing().when(fileExerciseRepository).deleteById(Mockito.any()); + + // Act + fileExerciseImpl.deleteFileExerciseById("42"); + + // Assert that nothing has changed + verify(fileExerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: {@link FileExerciseImpl#deleteFileExerciseById(String)} + */ + @Test + void testDeleteFileExerciseById2() { + // Arrange + doThrow(new RuntimeException("foo")).when(fileExerciseRepository).deleteById(Mockito.any()); + + // Act and Assert + assertThrows(RuntimeException.class, () -> fileExerciseImpl.deleteFileExerciseById("42")); + verify(fileExerciseRepository).deleteById(eq("42")); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/QuizExerciseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/QuizExerciseImplDiffblueTest.java new file mode 100644 index 00000000..51b5a01f --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/QuizExerciseImplDiffblueTest.java @@ -0,0 +1,1162 @@ +package com.example.codeE.service.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.exercise.QuizExercise; +import com.example.codeE.model.exercise.common.QuizChoice; +import com.example.codeE.model.exercise.common.QuizQuestion; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.repository.QuizChoiceRepository; +import com.example.codeE.repository.QuizExerciseRepository; +import com.example.codeE.repository.QuizQuestionRepository; +import com.example.codeE.request.exercise.quiz.QuizDetailResponse; +import com.example.codeE.request.exercise.quiz.QuizQuestionResponse; +import com.example.codeE.request.exercise.quiz.UpdateQuizExerciseRequest; + +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {QuizExerciseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class QuizExerciseImplDiffblueTest { + @MockBean + private ExerciseRepository exerciseRepository; + + @MockBean + private QuizChoiceRepository quizChoiceRepository; + + @Autowired + private QuizExerciseImpl quizExerciseImpl; + + @MockBean + private QuizExerciseRepository quizExerciseRepository; + + @MockBean + private QuizQuestionRepository quizQuestionRepository; + + /** + * Method under test: {@link QuizExerciseImpl#createQuizExercise(QuizExercise)} + */ + @Test + void testCreateQuizExercise() { + // Arrange + QuizExercise quizExercise = new QuizExercise(); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + when(quizExerciseRepository.save(Mockito.any())).thenReturn(quizExercise); + + QuizExercise quizExercise2 = new QuizExercise(); + quizExercise2.setCreatedDate("2020-03-01"); + quizExercise2.setDurationTime(1); + quizExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setExerciseDescription("Exercise Description"); + quizExercise2.setExerciseId("42"); + quizExercise2.setExerciseName("Exercise Name"); + quizExercise2.setKey("Key"); + quizExercise2.setPublicGroupIds(new ArrayList<>()); + quizExercise2.setQuestions(new ArrayList<>()); + quizExercise2.setReAttempt(1); + quizExercise2.setShowAll(true); + quizExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setTopicId("42"); + quizExercise2.setType("Type"); + quizExercise2.setUpdatedDate("2020-03-01"); + + // Act + QuizExercise actualCreateQuizExerciseResult = quizExerciseImpl.createQuizExercise(quizExercise2); + + // Assert + verify(quizExerciseRepository).save(isA(QuizExercise.class)); + assertSame(quizExercise, actualCreateQuizExerciseResult); + } + + /** + * Method under test: {@link QuizExerciseImpl#createQuizExercise(QuizExercise)} + */ + @Test + void testCreateQuizExercise2() { + // Arrange + QuizExercise quizExercise = new QuizExercise(); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + when(quizExerciseRepository.save(Mockito.any())).thenReturn(quizExercise); + QuizExercise quizExercise2 = mock(QuizExercise.class); + when(quizExercise2.getReAttempt()).thenReturn(1); + when(quizExercise2.getQuestions()).thenReturn(new ArrayList<>()); + doNothing().when(quizExercise2).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise2).setDurationTime(anyInt()); + doNothing().when(quizExercise2).setEndTime(Mockito.any()); + doNothing().when(quizExercise2).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise2).setExerciseId(Mockito.any()); + doNothing().when(quizExercise2).setExerciseName(Mockito.any()); + doNothing().when(quizExercise2).setKey(Mockito.any()); + doNothing().when(quizExercise2).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise2).setReAttempt(anyInt()); + doNothing().when(quizExercise2).setShowAll(anyBoolean()); + doNothing().when(quizExercise2).setStartTime(Mockito.any()); + doNothing().when(quizExercise2).setTopicId(Mockito.any()); + doNothing().when(quizExercise2).setType(Mockito.any()); + doNothing().when(quizExercise2).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise2).setQuestions(Mockito.>any()); + quizExercise2.setCreatedDate("2020-03-01"); + quizExercise2.setDurationTime(1); + quizExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setExerciseDescription("Exercise Description"); + quizExercise2.setExerciseId("42"); + quizExercise2.setExerciseName("Exercise Name"); + quizExercise2.setKey("Key"); + quizExercise2.setPublicGroupIds(new ArrayList<>()); + quizExercise2.setQuestions(new ArrayList<>()); + quizExercise2.setReAttempt(1); + quizExercise2.setShowAll(true); + quizExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setTopicId("42"); + quizExercise2.setType("Type"); + quizExercise2.setUpdatedDate("2020-03-01"); + + // Act + QuizExercise actualCreateQuizExerciseResult = quizExerciseImpl.createQuizExercise(quizExercise2); + + // Assert + verify(quizExercise2).getReAttempt(); + verify(quizExercise2).setCreatedDate(eq("2020-03-01")); + verify(quizExercise2).setDurationTime(eq(1)); + verify(quizExercise2).setEndTime(isA(Date.class)); + verify(quizExercise2).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise2).setExerciseId(eq("42")); + verify(quizExercise2).setExerciseName(eq("Exercise Name")); + verify(quizExercise2).setKey(eq("Key")); + verify(quizExercise2).setPublicGroupIds(isA(List.class)); + verify(quizExercise2).setReAttempt(eq(1)); + verify(quizExercise2).setShowAll(eq(true)); + verify(quizExercise2).setStartTime(isA(Date.class)); + verify(quizExercise2).setTopicId(eq("42")); + verify(quizExercise2).setType(eq("Type")); + verify(quizExercise2).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise2).getQuestions(); + verify(quizExercise2).setQuestions(isA(List.class)); + verify(quizExerciseRepository).save(isA(QuizExercise.class)); + assertSame(quizExercise, actualCreateQuizExerciseResult); + } + + /** + * Method under test: {@link QuizExerciseImpl#createQuizExercise(QuizExercise)} + */ + @Test + void testCreateQuizExercise3() { + // Arrange + QuizExercise quizExercise = new QuizExercise(); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + when(quizExerciseRepository.save(Mockito.any())).thenReturn(quizExercise); + QuizExercise quizExercise2 = mock(QuizExercise.class); + when(quizExercise2.getReAttempt()).thenReturn(0); + when(quizExercise2.getQuestions()).thenReturn(new ArrayList<>()); + doNothing().when(quizExercise2).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise2).setDurationTime(anyInt()); + doNothing().when(quizExercise2).setEndTime(Mockito.any()); + doNothing().when(quizExercise2).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise2).setExerciseId(Mockito.any()); + doNothing().when(quizExercise2).setExerciseName(Mockito.any()); + doNothing().when(quizExercise2).setKey(Mockito.any()); + doNothing().when(quizExercise2).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise2).setReAttempt(anyInt()); + doNothing().when(quizExercise2).setShowAll(anyBoolean()); + doNothing().when(quizExercise2).setStartTime(Mockito.any()); + doNothing().when(quizExercise2).setTopicId(Mockito.any()); + doNothing().when(quizExercise2).setType(Mockito.any()); + doNothing().when(quizExercise2).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise2).setQuestions(Mockito.>any()); + quizExercise2.setCreatedDate("2020-03-01"); + quizExercise2.setDurationTime(1); + quizExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setExerciseDescription("Exercise Description"); + quizExercise2.setExerciseId("42"); + quizExercise2.setExerciseName("Exercise Name"); + quizExercise2.setKey("Key"); + quizExercise2.setPublicGroupIds(new ArrayList<>()); + quizExercise2.setQuestions(new ArrayList<>()); + quizExercise2.setReAttempt(1); + quizExercise2.setShowAll(true); + quizExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setTopicId("42"); + quizExercise2.setType("Type"); + quizExercise2.setUpdatedDate("2020-03-01"); + + // Act + QuizExercise actualCreateQuizExerciseResult = quizExerciseImpl.createQuizExercise(quizExercise2); + + // Assert + verify(quizExercise2).getReAttempt(); + verify(quizExercise2).setCreatedDate(eq("2020-03-01")); + verify(quizExercise2).setDurationTime(eq(1)); + verify(quizExercise2).setEndTime(isA(Date.class)); + verify(quizExercise2).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise2).setExerciseId(eq("42")); + verify(quizExercise2).setExerciseName(eq("Exercise Name")); + verify(quizExercise2).setKey(eq("Key")); + verify(quizExercise2).setPublicGroupIds(isA(List.class)); + verify(quizExercise2, atLeast(1)).setReAttempt(eq(1)); + verify(quizExercise2).setShowAll(eq(true)); + verify(quizExercise2).setStartTime(isA(Date.class)); + verify(quizExercise2).setTopicId(eq("42")); + verify(quizExercise2).setType(eq("Type")); + verify(quizExercise2).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise2).getQuestions(); + verify(quizExercise2).setQuestions(isA(List.class)); + verify(quizExerciseRepository).save(isA(QuizExercise.class)); + assertSame(quizExercise, actualCreateQuizExerciseResult); + } + + /** + * Method under test: {@link QuizExerciseImpl#createQuizExercise(QuizExercise)} + */ + @Test + void testCreateQuizExercise4() { + // Arrange + QuizExercise quizExercise = new QuizExercise(); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + when(quizExerciseRepository.save(Mockito.any())).thenReturn(quizExercise); + + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + when(quizQuestionRepository.save(Mockito.any())).thenReturn(quizQuestion); + + QuizQuestion quizQuestion2 = new QuizQuestion(); + quizQuestion2.setAnswers(new ArrayList<>()); + quizQuestion2.setChoices(new ArrayList<>()); + quizQuestion2.setDescription("The characteristics of someone or something"); + quizQuestion2.setQuestionId("42"); + quizQuestion2.setTitle("Dr"); + + ArrayList quizQuestionList = new ArrayList<>(); + quizQuestionList.add(quizQuestion2); + QuizExercise quizExercise2 = mock(QuizExercise.class); + when(quizExercise2.getReAttempt()).thenReturn(1); + when(quizExercise2.getQuestions()).thenReturn(quizQuestionList); + doNothing().when(quizExercise2).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise2).setDurationTime(anyInt()); + doNothing().when(quizExercise2).setEndTime(Mockito.any()); + doNothing().when(quizExercise2).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise2).setExerciseId(Mockito.any()); + doNothing().when(quizExercise2).setExerciseName(Mockito.any()); + doNothing().when(quizExercise2).setKey(Mockito.any()); + doNothing().when(quizExercise2).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise2).setReAttempt(anyInt()); + doNothing().when(quizExercise2).setShowAll(anyBoolean()); + doNothing().when(quizExercise2).setStartTime(Mockito.any()); + doNothing().when(quizExercise2).setTopicId(Mockito.any()); + doNothing().when(quizExercise2).setType(Mockito.any()); + doNothing().when(quizExercise2).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise2).setQuestions(Mockito.>any()); + quizExercise2.setCreatedDate("2020-03-01"); + quizExercise2.setDurationTime(1); + quizExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setExerciseDescription("Exercise Description"); + quizExercise2.setExerciseId("42"); + quizExercise2.setExerciseName("Exercise Name"); + quizExercise2.setKey("Key"); + quizExercise2.setPublicGroupIds(new ArrayList<>()); + quizExercise2.setQuestions(new ArrayList<>()); + quizExercise2.setReAttempt(1); + quizExercise2.setShowAll(true); + quizExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setTopicId("42"); + quizExercise2.setType("Type"); + quizExercise2.setUpdatedDate("2020-03-01"); + + // Act + QuizExercise actualCreateQuizExerciseResult = quizExerciseImpl.createQuizExercise(quizExercise2); + + // Assert + verify(quizExercise2).getReAttempt(); + verify(quizExercise2).setCreatedDate(eq("2020-03-01")); + verify(quizExercise2).setDurationTime(eq(1)); + verify(quizExercise2).setEndTime(isA(Date.class)); + verify(quizExercise2).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise2).setExerciseId(eq("42")); + verify(quizExercise2).setExerciseName(eq("Exercise Name")); + verify(quizExercise2).setKey(eq("Key")); + verify(quizExercise2).setPublicGroupIds(isA(List.class)); + verify(quizExercise2).setReAttempt(eq(1)); + verify(quizExercise2).setShowAll(eq(true)); + verify(quizExercise2).setStartTime(isA(Date.class)); + verify(quizExercise2).setTopicId(eq("42")); + verify(quizExercise2).setType(eq("Type")); + verify(quizExercise2).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise2, atLeast(1)).getQuestions(); + verify(quizExercise2).setQuestions(isA(List.class)); + verify(quizExerciseRepository).save(isA(QuizExercise.class)); + verify(quizQuestionRepository).save(isA(QuizQuestion.class)); + assertSame(quizExercise, actualCreateQuizExerciseResult); + } + + /** + * Method under test: {@link QuizExerciseImpl#getQuizExerciseById(String)} + */ + @Test + void testGetQuizExerciseById() { + // Arrange + QuizExercise quizExercise = new QuizExercise(); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + QuizExercise actualQuizExerciseById = quizExerciseImpl.getQuizExerciseById("42"); + + // Assert + verify(quizExerciseRepository).findById(eq("42")); + assertSame(quizExercise, actualQuizExerciseById); + } + + /** + * Method under test: {@link QuizExerciseImpl#getQuizExerciseById(String)} + */ + @Test + void testGetQuizExerciseById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizExerciseImpl.getQuizExerciseById("42")); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link QuizExerciseImpl#getQuizExerciseById(String)} + */ + @Test + void testGetQuizExerciseById3() { + // Arrange + when(quizExerciseRepository.findById(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> quizExerciseImpl.getQuizExerciseById("42")); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link QuizExerciseImpl#getQuizExerciseDetail(String)} + */ + @Test + void testGetQuizExerciseDetail() { + // Arrange + QuizExercise quizExercise = new QuizExercise(); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + quizExercise.setEndTime(endTime); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + ArrayList publicGroupIds = new ArrayList<>(); + quizExercise.setPublicGroupIds(publicGroupIds); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + quizExercise.setStartTime(startTime); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + QuizDetailResponse actualQuizExerciseDetail = quizExerciseImpl.getQuizExerciseDetail("42"); + + // Assert + verify(quizExerciseRepository).findById(eq("42")); + assertEquals("42", actualQuizExerciseDetail.getExerciseId()); + assertEquals("42", actualQuizExerciseDetail.getTopicId()); + assertEquals("Exercise Description", actualQuizExerciseDetail.getExerciseDescription()); + assertEquals("Exercise Name", actualQuizExerciseDetail.getExerciseName()); + assertEquals("Type", actualQuizExerciseDetail.getType()); + assertEquals(1, actualQuizExerciseDetail.getDurationTime()); + assertEquals(1, actualQuizExerciseDetail.getReAttempt()); + assertEquals(publicGroupIds, actualQuizExerciseDetail.getQuestions()); + assertSame(endTime, actualQuizExerciseDetail.getEndTime()); + assertSame(startTime, actualQuizExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link QuizExerciseImpl#getQuizExerciseDetail(String)} + */ + @Test + void testGetQuizExerciseDetail2() { + // Arrange + QuizExercise quizExercise = mock(QuizExercise.class); + when(quizExercise.getDurationTime()).thenReturn(1); + when(quizExercise.getReAttempt()).thenReturn(1); + when(quizExercise.getExerciseDescription()).thenReturn("Exercise Description"); + when(quizExercise.getExerciseId()).thenReturn("42"); + when(quizExercise.getExerciseName()).thenReturn("Exercise Name"); + when(quizExercise.getTopicId()).thenReturn("42"); + when(quizExercise.getType()).thenReturn("Type"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(quizExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(quizExercise.getStartTime()).thenReturn(fromResult2); + ArrayList quizQuestionList = new ArrayList<>(); + when(quizExercise.getQuestions()).thenReturn(quizQuestionList); + doNothing().when(quizExercise).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise).setDurationTime(anyInt()); + doNothing().when(quizExercise).setEndTime(Mockito.any()); + doNothing().when(quizExercise).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise).setExerciseId(Mockito.any()); + doNothing().when(quizExercise).setExerciseName(Mockito.any()); + doNothing().when(quizExercise).setKey(Mockito.any()); + doNothing().when(quizExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise).setReAttempt(anyInt()); + doNothing().when(quizExercise).setShowAll(anyBoolean()); + doNothing().when(quizExercise).setStartTime(Mockito.any()); + doNothing().when(quizExercise).setTopicId(Mockito.any()); + doNothing().when(quizExercise).setType(Mockito.any()); + doNothing().when(quizExercise).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise).setQuestions(Mockito.>any()); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + QuizDetailResponse actualQuizExerciseDetail = quizExerciseImpl.getQuizExerciseDetail("42"); + + // Assert + verify(quizExercise, atLeast(1)).getDurationTime(); + verify(quizExercise, atLeast(1)).getEndTime(); + verify(quizExercise).getExerciseDescription(); + verify(quizExercise).getExerciseId(); + verify(quizExercise).getExerciseName(); + verify(quizExercise).getReAttempt(); + verify(quizExercise, atLeast(1)).getStartTime(); + verify(quizExercise).getTopicId(); + verify(quizExercise).getType(); + verify(quizExercise).setCreatedDate(eq("2020-03-01")); + verify(quizExercise).setDurationTime(eq(1)); + verify(quizExercise).setEndTime(isA(Date.class)); + verify(quizExercise).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise).setExerciseId(eq("42")); + verify(quizExercise).setExerciseName(eq("Exercise Name")); + verify(quizExercise).setKey(eq("Key")); + verify(quizExercise).setPublicGroupIds(isA(List.class)); + verify(quizExercise).setReAttempt(eq(1)); + verify(quizExercise).setShowAll(eq(true)); + verify(quizExercise).setStartTime(isA(Date.class)); + verify(quizExercise).setTopicId(eq("42")); + verify(quizExercise).setType(eq("Type")); + verify(quizExercise).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise).getQuestions(); + verify(quizExercise).setQuestions(isA(List.class)); + verify(quizExerciseRepository).findById(eq("42")); + assertEquals("42", actualQuizExerciseDetail.getExerciseId()); + assertEquals("42", actualQuizExerciseDetail.getTopicId()); + assertEquals("Exercise Description", actualQuizExerciseDetail.getExerciseDescription()); + assertEquals("Exercise Name", actualQuizExerciseDetail.getExerciseName()); + assertEquals("Type", actualQuizExerciseDetail.getType()); + assertEquals(1, actualQuizExerciseDetail.getDurationTime()); + assertEquals(1, actualQuizExerciseDetail.getReAttempt()); + assertEquals(quizQuestionList, actualQuizExerciseDetail.getQuestions()); + assertSame(fromResult, actualQuizExerciseDetail.getEndTime()); + assertSame(fromResult2, actualQuizExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link QuizExerciseImpl#getQuizExerciseDetail(String)} + */ + @Test + void testGetQuizExerciseDetail3() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + ArrayList answers = new ArrayList<>(); + quizQuestion.setAnswers(answers); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + + ArrayList quizQuestionList = new ArrayList<>(); + quizQuestionList.add(quizQuestion); + QuizExercise quizExercise = mock(QuizExercise.class); + when(quizExercise.getDurationTime()).thenReturn(1); + when(quizExercise.getReAttempt()).thenReturn(1); + when(quizExercise.getExerciseDescription()).thenReturn("Exercise Description"); + when(quizExercise.getExerciseId()).thenReturn("42"); + when(quizExercise.getExerciseName()).thenReturn("Exercise Name"); + when(quizExercise.getTopicId()).thenReturn("42"); + when(quizExercise.getType()).thenReturn("Type"); + Date fromResult = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(quizExercise.getEndTime()).thenReturn(fromResult); + Date fromResult2 = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + when(quizExercise.getStartTime()).thenReturn(fromResult2); + when(quizExercise.getQuestions()).thenReturn(quizQuestionList); + doNothing().when(quizExercise).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise).setDurationTime(anyInt()); + doNothing().when(quizExercise).setEndTime(Mockito.any()); + doNothing().when(quizExercise).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise).setExerciseId(Mockito.any()); + doNothing().when(quizExercise).setExerciseName(Mockito.any()); + doNothing().when(quizExercise).setKey(Mockito.any()); + doNothing().when(quizExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise).setReAttempt(anyInt()); + doNothing().when(quizExercise).setShowAll(anyBoolean()); + doNothing().when(quizExercise).setStartTime(Mockito.any()); + doNothing().when(quizExercise).setTopicId(Mockito.any()); + doNothing().when(quizExercise).setType(Mockito.any()); + doNothing().when(quizExercise).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise).setQuestions(Mockito.>any()); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + QuizDetailResponse actualQuizExerciseDetail = quizExerciseImpl.getQuizExerciseDetail("42"); + + // Assert + verify(quizExercise, atLeast(1)).getDurationTime(); + verify(quizExercise, atLeast(1)).getEndTime(); + verify(quizExercise).getExerciseDescription(); + verify(quizExercise).getExerciseId(); + verify(quizExercise).getExerciseName(); + verify(quizExercise).getReAttempt(); + verify(quizExercise, atLeast(1)).getStartTime(); + verify(quizExercise).getTopicId(); + verify(quizExercise).getType(); + verify(quizExercise).setCreatedDate(eq("2020-03-01")); + verify(quizExercise).setDurationTime(eq(1)); + verify(quizExercise).setEndTime(isA(Date.class)); + verify(quizExercise).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise).setExerciseId(eq("42")); + verify(quizExercise).setExerciseName(eq("Exercise Name")); + verify(quizExercise).setKey(eq("Key")); + verify(quizExercise).setPublicGroupIds(isA(List.class)); + verify(quizExercise).setReAttempt(eq(1)); + verify(quizExercise).setShowAll(eq(true)); + verify(quizExercise).setStartTime(isA(Date.class)); + verify(quizExercise).setTopicId(eq("42")); + verify(quizExercise).setType(eq("Type")); + verify(quizExercise).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise).getQuestions(); + verify(quizExercise).setQuestions(isA(List.class)); + verify(quizExerciseRepository).findById(eq("42")); + assertEquals("42", actualQuizExerciseDetail.getExerciseId()); + assertEquals("42", actualQuizExerciseDetail.getTopicId()); + List questions = actualQuizExerciseDetail.getQuestions(); + assertEquals(1, questions.size()); + QuizQuestionResponse getResult = questions.get(0); + assertEquals("42", getResult.getQuestionId()); + assertEquals("Dr", getResult.getTitle()); + assertEquals("Exercise Description", actualQuizExerciseDetail.getExerciseDescription()); + assertEquals("Exercise Name", actualQuizExerciseDetail.getExerciseName()); + assertEquals("The characteristics of someone or something", getResult.getDescription()); + assertEquals("Type", actualQuizExerciseDetail.getType()); + assertEquals(1, actualQuizExerciseDetail.getDurationTime()); + assertEquals(1, actualQuizExerciseDetail.getReAttempt()); + assertFalse(getResult.getIsMultipleChoice()); + assertEquals(answers, getResult.getChoices()); + assertSame(fromResult, actualQuizExerciseDetail.getEndTime()); + assertSame(fromResult2, actualQuizExerciseDetail.getStartTime()); + } + + /** + * Method under test: {@link QuizExerciseImpl#getQuizExerciseDetail(String)} + */ + @Test + void testGetQuizExerciseDetail4() { + // Arrange + Optional emptyResult = Optional.empty(); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizExerciseImpl.getQuizExerciseDetail("42")); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#getQuizQuestionByQuestionId(String)} + */ + @Test + void testGetQuizQuestionByQuestionId() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + Optional ofResult = Optional.of(quizQuestion); + when(quizQuestionRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + QuizQuestion actualQuizQuestionByQuestionId = quizExerciseImpl.getQuizQuestionByQuestionId("42"); + + // Assert + verify(quizQuestionRepository).findById(eq("42")); + assertSame(quizQuestion, actualQuizQuestionByQuestionId); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#getQuizQuestionByQuestionId(String)} + */ + @Test + void testGetQuizQuestionByQuestionId2() { + // Arrange + when(quizQuestionRepository.findById(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> quizExerciseImpl.getQuizQuestionByQuestionId("42")); + verify(quizQuestionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#updateQuizExercise(String, UpdateQuizExerciseRequest)} + */ + @Test + void testUpdateQuizExercise() { + // Arrange + QuizExercise quizExercise = new QuizExercise(); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> quizExerciseImpl.updateQuizExercise("42", new UpdateQuizExerciseRequest())); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#updateQuizExercise(String, UpdateQuizExerciseRequest)} + */ + @Test + void testUpdateQuizExercise2() { + // Arrange + QuizExercise quizExercise = mock(QuizExercise.class); + when(quizExercise.getQuestions()).thenReturn(new ArrayList<>()); + doNothing().when(quizExercise).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise).setDurationTime(anyInt()); + doNothing().when(quizExercise).setEndTime(Mockito.any()); + doNothing().when(quizExercise).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise).setExerciseId(Mockito.any()); + doNothing().when(quizExercise).setExerciseName(Mockito.any()); + doNothing().when(quizExercise).setKey(Mockito.any()); + doNothing().when(quizExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise).setReAttempt(anyInt()); + doNothing().when(quizExercise).setShowAll(anyBoolean()); + doNothing().when(quizExercise).setStartTime(Mockito.any()); + doNothing().when(quizExercise).setTopicId(Mockito.any()); + doNothing().when(quizExercise).setType(Mockito.any()); + doNothing().when(quizExercise).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise).setQuestions(Mockito.>any()); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> quizExerciseImpl.updateQuizExercise("42", new UpdateQuizExerciseRequest())); + verify(quizExercise).setCreatedDate(eq("2020-03-01")); + verify(quizExercise).setDurationTime(eq(1)); + verify(quizExercise).setEndTime(isA(Date.class)); + verify(quizExercise).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise).setExerciseId(eq("42")); + verify(quizExercise).setExerciseName(eq("Exercise Name")); + verify(quizExercise).setKey(eq("Key")); + verify(quizExercise).setPublicGroupIds(isA(List.class)); + verify(quizExercise).setReAttempt(eq(1)); + verify(quizExercise).setShowAll(eq(true)); + verify(quizExercise).setStartTime(isA(Date.class)); + verify(quizExercise).setTopicId(eq("42")); + verify(quizExercise).setType(eq("Type")); + verify(quizExercise).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise).getQuestions(); + verify(quizExercise).setQuestions(isA(List.class)); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#updateQuizExercise(String, UpdateQuizExerciseRequest)} + */ + @Test + void testUpdateQuizExercise3() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + + ArrayList quizQuestionList = new ArrayList<>(); + quizQuestionList.add(quizQuestion); + QuizExercise quizExercise = mock(QuizExercise.class); + when(quizExercise.getQuestions()).thenReturn(quizQuestionList); + doNothing().when(quizExercise).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise).setDurationTime(anyInt()); + doNothing().when(quizExercise).setEndTime(Mockito.any()); + doNothing().when(quizExercise).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise).setExerciseId(Mockito.any()); + doNothing().when(quizExercise).setExerciseName(Mockito.any()); + doNothing().when(quizExercise).setKey(Mockito.any()); + doNothing().when(quizExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise).setReAttempt(anyInt()); + doNothing().when(quizExercise).setShowAll(anyBoolean()); + doNothing().when(quizExercise).setStartTime(Mockito.any()); + doNothing().when(quizExercise).setTopicId(Mockito.any()); + doNothing().when(quizExercise).setType(Mockito.any()); + doNothing().when(quizExercise).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise).setQuestions(Mockito.>any()); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + doNothing().when(quizQuestionRepository).deleteById(Mockito.any()); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> quizExerciseImpl.updateQuizExercise("42", new UpdateQuizExerciseRequest())); + verify(quizExercise).setCreatedDate(eq("2020-03-01")); + verify(quizExercise).setDurationTime(eq(1)); + verify(quizExercise).setEndTime(isA(Date.class)); + verify(quizExercise).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise).setExerciseId(eq("42")); + verify(quizExercise).setExerciseName(eq("Exercise Name")); + verify(quizExercise).setKey(eq("Key")); + verify(quizExercise).setPublicGroupIds(isA(List.class)); + verify(quizExercise).setReAttempt(eq(1)); + verify(quizExercise).setShowAll(eq(true)); + verify(quizExercise).setStartTime(isA(Date.class)); + verify(quizExercise).setTopicId(eq("42")); + verify(quizExercise).setType(eq("Type")); + verify(quizExercise).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise).getQuestions(); + verify(quizExercise).setQuestions(isA(List.class)); + verify(quizQuestionRepository).deleteById(eq("42")); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#updateQuizExercise(String, UpdateQuizExerciseRequest)} + */ + @Test + void testUpdateQuizExercise4() { + // Arrange + Optional emptyResult = Optional.empty(); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> quizExerciseImpl.updateQuizExercise("42", new UpdateQuizExerciseRequest())); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#updateQuizExercise(String, UpdateQuizExerciseRequest)} + */ + @Test + void testUpdateQuizExercise5() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + when(exerciseRepository.save(Mockito.any())).thenReturn(exercise); + + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + + ArrayList quizQuestionList = new ArrayList<>(); + quizQuestionList.add(quizQuestion); + QuizExercise quizExercise = mock(QuizExercise.class); + when(quizExercise.isShowAll()).thenReturn(true); + when(quizExercise.getPublicGroupIds()).thenReturn(new ArrayList<>()); + when(quizExercise.getQuestions()).thenReturn(quizQuestionList); + doNothing().when(quizExercise).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise).setDurationTime(anyInt()); + doNothing().when(quizExercise).setEndTime(Mockito.any()); + doNothing().when(quizExercise).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise).setExerciseId(Mockito.any()); + doNothing().when(quizExercise).setExerciseName(Mockito.any()); + doNothing().when(quizExercise).setKey(Mockito.any()); + doNothing().when(quizExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise).setReAttempt(anyInt()); + doNothing().when(quizExercise).setShowAll(anyBoolean()); + doNothing().when(quizExercise).setStartTime(Mockito.any()); + doNothing().when(quizExercise).setTopicId(Mockito.any()); + doNothing().when(quizExercise).setType(Mockito.any()); + doNothing().when(quizExercise).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise).setQuestions(Mockito.>any()); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + + QuizExercise quizExercise2 = new QuizExercise(); + quizExercise2.setCreatedDate("2020-03-01"); + quizExercise2.setDurationTime(1); + quizExercise2.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setExerciseDescription("Exercise Description"); + quizExercise2.setExerciseId("42"); + quizExercise2.setExerciseName("Exercise Name"); + quizExercise2.setKey("Key"); + quizExercise2.setPublicGroupIds(new ArrayList<>()); + quizExercise2.setQuestions(new ArrayList<>()); + quizExercise2.setReAttempt(1); + quizExercise2.setShowAll(true); + quizExercise2.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise2.setTopicId("42"); + quizExercise2.setType("Type"); + quizExercise2.setUpdatedDate("2020-03-01"); + when(quizExerciseRepository.save(Mockito.any())).thenReturn(quizExercise2); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + doNothing().when(quizQuestionRepository).deleteById(Mockito.any()); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + QuizExercise actualUpdateQuizExerciseResult = quizExerciseImpl.updateQuizExercise("42", + new UpdateQuizExerciseRequest("42", "42", "Something wrong when update quiz exercise", + "Something wrong when update quiz exercise", startTime, endTime, 1, 1, + "Something wrong when update quiz exercise", new ArrayList<>())); + + // Assert + verify(quizExercise).getPublicGroupIds(); + verify(quizExercise).isShowAll(); + verify(quizExercise).setCreatedDate(eq("2020-03-01")); + verify(quizExercise).setDurationTime(eq(1)); + verify(quizExercise).setEndTime(isA(Date.class)); + verify(quizExercise).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise).setExerciseId(eq("42")); + verify(quizExercise).setExerciseName(eq("Exercise Name")); + verify(quizExercise).setKey(eq("Key")); + verify(quizExercise).setPublicGroupIds(isA(List.class)); + verify(quizExercise).setReAttempt(eq(1)); + verify(quizExercise).setShowAll(eq(true)); + verify(quizExercise).setStartTime(isA(Date.class)); + verify(quizExercise).setTopicId(eq("42")); + verify(quizExercise).setType(eq("Type")); + verify(quizExercise).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise).getQuestions(); + verify(quizExercise).setQuestions(isA(List.class)); + verify(quizQuestionRepository).deleteById(eq("42")); + verify(quizExerciseRepository).findById(eq("42")); + verify(exerciseRepository).save(isA(Exercise.class)); + verify(quizExerciseRepository).save(isA(QuizExercise.class)); + assertSame(quizExercise2, actualUpdateQuizExerciseResult); + } + + /** + * Method under test: + * {@link QuizExerciseImpl#updateQuizExercise(String, UpdateQuizExerciseRequest)} + */ + @Test + void testUpdateQuizExercise6() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + + ArrayList quizQuestionList = new ArrayList<>(); + quizQuestionList.add(quizQuestion); + QuizExercise quizExercise = mock(QuizExercise.class); + when(quizExercise.isShowAll()).thenThrow(new NoSuchElementException("quiz")); + when(quizExercise.getQuestions()).thenReturn(quizQuestionList); + doNothing().when(quizExercise).setCreatedDate(Mockito.any()); + doNothing().when(quizExercise).setDurationTime(anyInt()); + doNothing().when(quizExercise).setEndTime(Mockito.any()); + doNothing().when(quizExercise).setExerciseDescription(Mockito.any()); + doNothing().when(quizExercise).setExerciseId(Mockito.any()); + doNothing().when(quizExercise).setExerciseName(Mockito.any()); + doNothing().when(quizExercise).setKey(Mockito.any()); + doNothing().when(quizExercise).setPublicGroupIds(Mockito.>any()); + doNothing().when(quizExercise).setReAttempt(anyInt()); + doNothing().when(quizExercise).setShowAll(anyBoolean()); + doNothing().when(quizExercise).setStartTime(Mockito.any()); + doNothing().when(quizExercise).setTopicId(Mockito.any()); + doNothing().when(quizExercise).setType(Mockito.any()); + doNothing().when(quizExercise).setUpdatedDate(Mockito.any()); + doNothing().when(quizExercise).setQuestions(Mockito.>any()); + quizExercise.setCreatedDate("2020-03-01"); + quizExercise.setDurationTime(1); + quizExercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setExerciseDescription("Exercise Description"); + quizExercise.setExerciseId("42"); + quizExercise.setExerciseName("Exercise Name"); + quizExercise.setKey("Key"); + quizExercise.setPublicGroupIds(new ArrayList<>()); + quizExercise.setQuestions(new ArrayList<>()); + quizExercise.setReAttempt(1); + quizExercise.setShowAll(true); + quizExercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + quizExercise.setTopicId("42"); + quizExercise.setType("Type"); + quizExercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(quizExercise); + when(quizExerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + doNothing().when(quizQuestionRepository).deleteById(Mockito.any()); + Date startTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Date endTime = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertThrows(RuntimeException.class, + () -> quizExerciseImpl.updateQuizExercise("42", + new UpdateQuizExerciseRequest("42", "42", "Something wrong when update quiz exercise", + "Something wrong when update quiz exercise", startTime, endTime, 1, 1, + "Something wrong when update quiz exercise", new ArrayList<>()))); + verify(quizExercise).isShowAll(); + verify(quizExercise).setCreatedDate(eq("2020-03-01")); + verify(quizExercise).setDurationTime(eq(1)); + verify(quizExercise).setEndTime(isA(Date.class)); + verify(quizExercise).setExerciseDescription(eq("Exercise Description")); + verify(quizExercise).setExerciseId(eq("42")); + verify(quizExercise).setExerciseName(eq("Exercise Name")); + verify(quizExercise).setKey(eq("Key")); + verify(quizExercise).setPublicGroupIds(isA(List.class)); + verify(quizExercise).setReAttempt(eq(1)); + verify(quizExercise).setShowAll(eq(true)); + verify(quizExercise).setStartTime(isA(Date.class)); + verify(quizExercise).setTopicId(eq("42")); + verify(quizExercise).setType(eq("Type")); + verify(quizExercise).setUpdatedDate(eq("2020-03-01")); + verify(quizExercise).getQuestions(); + verify(quizExercise).setQuestions(isA(List.class)); + verify(quizQuestionRepository).deleteById(eq("42")); + verify(quizExerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link QuizExerciseImpl#deleteQuizExerciseById(String)} + */ + @Test + void testDeleteQuizExerciseById() { + // Arrange + doNothing().when(quizExerciseRepository).deleteById(Mockito.any()); + + // Act + quizExerciseImpl.deleteQuizExerciseById("42"); + + // Assert that nothing has changed + verify(quizExerciseRepository).deleteById(eq("42")); + } + + /** + * Method under test: {@link QuizExerciseImpl#deleteQuizExerciseById(String)} + */ + @Test + void testDeleteQuizExerciseById2() { + // Arrange + doThrow(new RuntimeException("foo")).when(quizExerciseRepository).deleteById(Mockito.any()); + + // Act and Assert + assertThrows(RuntimeException.class, () -> quizExerciseImpl.deleteQuizExerciseById("42")); + verify(quizExerciseRepository).deleteById(eq("42")); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/QuizSubmissionImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/QuizSubmissionImplDiffblueTest.java new file mode 100644 index 00000000..9a547dcb --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/QuizSubmissionImplDiffblueTest.java @@ -0,0 +1,1539 @@ +package com.example.codeE.service.exercise; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.exercise.QuizSubmission; +import com.example.codeE.model.exercise.common.QuizAnswers; +import com.example.codeE.model.exercise.common.QuizChoice; +import com.example.codeE.model.exercise.common.QuizQuestion; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.repository.QuizAnswersRepository; +import com.example.codeE.repository.QuizQuestionRepository; +import com.example.codeE.repository.QuizSubmissionRepository; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.exercise.quiz.QuizSubmissionsResponse; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {QuizSubmissionImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class QuizSubmissionImplDiffblueTest { + @MockBean + private ExerciseRepository exerciseRepository; + + @MockBean + private QuizAnswersRepository quizAnswersRepository; + + @MockBean + private QuizQuestionRepository quizQuestionRepository; + + @Autowired + private QuizSubmissionImpl quizSubmissionImpl; + + @MockBean + private QuizSubmissionRepository quizSubmissionRepository; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: + * {@link QuizSubmissionImpl#createSubmission(QuizSubmission)} + */ + @Test + void testCreateSubmission() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + when(quizSubmissionRepository.save(Mockito.any())).thenReturn(quizSubmission); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + QuizSubmission quizSubmission2 = new QuizSubmission(); + quizSubmission2.setDateGrade("2020-03-01"); + quizSubmission2.setDateSubmit("2020-03-01"); + quizSubmission2.setExerciseId("42"); + quizSubmission2.setReviewable(true); + quizSubmission2.setScore(10.0f); + quizSubmission2.setStudentId("42"); + quizSubmission2.setSubmission(new ArrayList<>()); + quizSubmission2.setSubmissionId("42"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + // Act + QuizSubmission actualCreateSubmissionResult = quizSubmissionImpl.createSubmission(quizSubmission2); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(quizSubmissionRepository).save(isA(QuizSubmission.class)); + assertSame(quizSubmission, actualCreateSubmissionResult); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#createSubmission(QuizSubmission)} + */ + @Test + void testCreateSubmission2() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(quizSubmissionRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.createSubmission(quizSubmission)); + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(quizSubmissionRepository).save(isA(QuizSubmission.class)); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#createSubmission(QuizSubmission)} + */ + @Test + void testCreateSubmission3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.createSubmission(quizSubmission)); + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#createSubmission(QuizSubmission)} + */ + @Test + void testCreateSubmission4() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.createSubmission(quizSubmission)); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#createSubmission(QuizSubmission)} + */ + @Test + void testCreateSubmission5() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizAnswers quizAnswers = new QuizAnswers(); + quizAnswers.setAnswers(new ArrayList<>()); + quizAnswers.setQuestionId("42"); + quizAnswers.setQuizAnswerId("42"); + when(quizAnswersRepository.save(Mockito.any())).thenReturn(quizAnswers); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + when(quizSubmissionRepository.save(Mockito.any())).thenReturn(quizSubmission); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + QuizAnswers quizAnswers2 = new QuizAnswers(); + quizAnswers2.setAnswers(new ArrayList<>()); + quizAnswers2.setQuestionId("42"); + quizAnswers2.setQuizAnswerId("42"); + + ArrayList submission = new ArrayList<>(); + submission.add(quizAnswers2); + + QuizSubmission quizSubmission2 = new QuizSubmission(); + quizSubmission2.setDateGrade("2020-03-01"); + quizSubmission2.setDateSubmit("2020-03-01"); + quizSubmission2.setExerciseId("42"); + quizSubmission2.setReviewable(true); + quizSubmission2.setScore(10.0f); + quizSubmission2.setStudentId("42"); + quizSubmission2.setSubmission(submission); + quizSubmission2.setSubmissionId("42"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + // Act + QuizSubmission actualCreateSubmissionResult = quizSubmissionImpl.createSubmission(quizSubmission2); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(quizSubmissionRepository).save(isA(QuizSubmission.class)); + verify(quizAnswersRepository).save(isA(QuizAnswers.class)); + assertEquals("42", quizSubmission2.getSubmission().get(0).getQuizAnswerId()); + assertSame(quizSubmission, actualCreateSubmissionResult); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionByExerciseId() { + // Arrange + when(quizSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualQuizSubmissionByExerciseId = quizSubmissionImpl.getQuizSubmissionByExerciseId("42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertTrue(actualQuizSubmissionByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionByExerciseId2() { + // Arrange + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + List actualQuizSubmissionByExerciseId = quizSubmissionImpl.getQuizSubmissionByExerciseId("42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertEquals(1, actualQuizSubmissionByExerciseId.size()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionByExerciseId3() { + // Arrange + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + QuizSubmission quizSubmission2 = new QuizSubmission(); + quizSubmission2.setDateGrade("2020/03/01"); + quizSubmission2.setDateSubmit("2020/03/01"); + quizSubmission2.setExerciseId("Exercise Id"); + quizSubmission2.setReviewable(false); + quizSubmission2.setScore(0.5f); + quizSubmission2.setStudentId("Student Id"); + quizSubmission2.setSubmission(new ArrayList<>()); + quizSubmission2.setSubmissionId("Submission Id"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission2); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + List actualQuizSubmissionByExerciseId = quizSubmissionImpl.getQuizSubmissionByExerciseId("42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertEquals(1, actualQuizSubmissionByExerciseId.size()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionByExerciseId4() { + // Arrange + when(quizSubmissionRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getQuizSubmissionByExerciseId("42")); + verify(quizSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionsByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionsByExerciseId() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(quizSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualQuizSubmissionsByExerciseId = quizSubmissionImpl + .getQuizSubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(quizSubmissionRepository).findAll(); + assertTrue(actualQuizSubmissionsByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionsByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionsByExerciseId2() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(quizSubmissionRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getQuizSubmissionsByExerciseId("42")); + verify(exerciseRepository).findById(eq("42")); + verify(quizSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionsByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionsByExerciseId3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getQuizSubmissionsByExerciseId("42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionsByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionsByExerciseId4() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + List actualQuizSubmissionsByExerciseId = quizSubmissionImpl + .getQuizSubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(quizSubmissionRepository).findAll(); + assertEquals(1, actualQuizSubmissionsByExerciseId.size()); + User student = actualQuizSubmissionsByExerciseId.get(0).getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionsByExerciseId(String)} + */ + @Test + void testGetQuizSubmissionsByExerciseId5() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + QuizSubmission quizSubmission2 = new QuizSubmission(); + quizSubmission2.setDateGrade("2020/03/01"); + quizSubmission2.setDateSubmit("2020/03/01"); + quizSubmission2.setExerciseId("Exercise Id"); + quizSubmission2.setReviewable(false); + quizSubmission2.setScore(0.5f); + quizSubmission2.setStudentId("Student Id"); + quizSubmission2.setSubmission(new ArrayList<>()); + quizSubmission2.setSubmissionId("Submission Id"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission2); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + List actualQuizSubmissionsByExerciseId = quizSubmissionImpl + .getQuizSubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(quizSubmissionRepository).findAll(); + assertEquals(1, actualQuizSubmissionsByExerciseId.size()); + User student = actualQuizSubmissionsByExerciseId.get(0).getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getStudentQuizSubmission(String)} + */ + @Test + void testGetStudentQuizSubmission() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + Optional ofResult2 = Optional.of(quizSubmission); + when(quizSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult2); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act + QuizSubmissionsResponse actualStudentQuizSubmission = quizSubmissionImpl.getStudentQuizSubmission("42"); + + // Assert + verify(userRepository).findUserByUserId(eq("42")); + verify(exerciseRepository).findById(eq("42")); + verify(quizSubmissionRepository).findById(eq("42")); + User student = actualStudentQuizSubmission.getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getStudentQuizSubmission(String)} + */ + @Test + void testGetStudentQuizSubmission2() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + Optional ofResult2 = Optional.of(quizSubmission); + when(quizSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult2); + when(userRepository.findUserByUserId(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getStudentQuizSubmission("42")); + verify(userRepository).findUserByUserId(eq("42")); + verify(quizSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getStudentQuizSubmission(String)} + */ + @Test + void testGetStudentQuizSubmission3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(quizSubmission); + when(quizSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getStudentQuizSubmission("42")); + verify(userRepository).findUserByUserId(eq("42")); + verify(exerciseRepository).findById(eq("42")); + verify(quizSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getStudentQuizSubmission(String)} + */ + @Test + void testGetStudentQuizSubmission4() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(quizSubmissionRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getStudentQuizSubmission("42")); + verify(quizSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetQuizSubmissionByUserId() { + // Arrange + when(quizSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualQuizSubmissionByUserId = quizSubmissionImpl.getQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertTrue(actualQuizSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetQuizSubmissionByUserId2() { + // Arrange + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + List actualQuizSubmissionByUserId = quizSubmissionImpl.getQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertEquals(1, actualQuizSubmissionByUserId.size()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetQuizSubmissionByUserId3() { + // Arrange + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + QuizSubmission quizSubmission2 = new QuizSubmission(); + quizSubmission2.setDateGrade("2020/03/01"); + quizSubmission2.setDateSubmit("2020/03/01"); + quizSubmission2.setExerciseId("Exercise Id"); + quizSubmission2.setReviewable(false); + quizSubmission2.setScore(0.5f); + quizSubmission2.setStudentId("Student Id"); + quizSubmission2.setSubmission(new ArrayList<>()); + quizSubmission2.setSubmissionId("Submission Id"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission2); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + List actualQuizSubmissionByUserId = quizSubmissionImpl.getQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertEquals(1, actualQuizSubmissionByUserId.size()); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetQuizSubmissionByUserId4() { + // Arrange + when(quizSubmissionRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getQuizSubmissionByUserId("42", "42")); + verify(quizSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetQuizSubmissionByUserId5() { + // Arrange + QuizSubmission quizSubmission = mock(QuizSubmission.class); + when(quizSubmission.getStudentId()).thenReturn("foo"); + when(quizSubmission.getExerciseId()).thenReturn("42"); + doNothing().when(quizSubmission).setSubmission(Mockito.>any()); + doNothing().when(quizSubmission).setDateGrade(Mockito.any()); + doNothing().when(quizSubmission).setDateSubmit(Mockito.any()); + doNothing().when(quizSubmission).setExerciseId(Mockito.any()); + doNothing().when(quizSubmission).setReviewable(anyBoolean()); + doNothing().when(quizSubmission).setScore(Mockito.any()); + doNothing().when(quizSubmission).setStudentId(Mockito.any()); + doNothing().when(quizSubmission).setSubmissionId(Mockito.any()); + doNothing().when(quizSubmission).setTeacherComment(Mockito.any()); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + List actualQuizSubmissionByUserId = quizSubmissionImpl.getQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmission).setSubmission(isA(List.class)); + verify(quizSubmission).getExerciseId(); + verify(quizSubmission).getStudentId(); + verify(quizSubmission).setDateGrade(eq("2020-03-01")); + verify(quizSubmission).setDateSubmit(eq("2020-03-01")); + verify(quizSubmission).setExerciseId(eq("42")); + verify(quizSubmission).setReviewable(eq(true)); + verify(quizSubmission).setScore(isA(Float.class)); + verify(quizSubmission).setStudentId(eq("42")); + verify(quizSubmission).setSubmissionId(eq("42")); + verify(quizSubmission).setTeacherComment(eq("Teacher Comment")); + verify(quizSubmissionRepository).findAll(); + assertTrue(actualQuizSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: {@link QuizSubmissionImpl#gradeSubmission(List, List)} + */ + @Test + void testGradeSubmission() { + // Arrange + ArrayList quizSubmission = new ArrayList<>(); + + // Act and Assert + assertEquals(Float.NaN, quizSubmissionImpl.gradeSubmission(quizSubmission, new ArrayList<>())); + } + + /** + * Method under test: {@link QuizSubmissionImpl#gradeSubmission(List, List)} + */ + @Test + void testGradeSubmission2() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + Optional ofResult = Optional.of(quizQuestion); + when(quizQuestionRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizAnswers quizAnswers = new QuizAnswers(); + quizAnswers.setAnswers(new ArrayList<>()); + quizAnswers.setQuestionId("42"); + quizAnswers.setQuizAnswerId("42"); + + ArrayList quizSubmission = new ArrayList<>(); + quizSubmission.add(quizAnswers); + + // Act + float actualGradeSubmissionResult = quizSubmissionImpl.gradeSubmission(quizSubmission, new ArrayList<>()); + + // Assert + verify(quizQuestionRepository).findById(eq("42")); + assertTrue(quizSubmission.get(0).getAnswers().isEmpty()); + assertEquals(Float.POSITIVE_INFINITY, actualGradeSubmissionResult); + } + + /** + * Method under test: {@link QuizSubmissionImpl#gradeSubmission(List, List)} + */ + @Test + void testGradeSubmission3() { + // Arrange + QuizChoice quizChoice = new QuizChoice(); + quizChoice.setChoiceId("42"); + quizChoice.setContent("Not all who wander are lost"); + + ArrayList answers = new ArrayList<>(); + answers.add(quizChoice); + + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(answers); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + Optional ofResult = Optional.of(quizQuestion); + when(quizQuestionRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizAnswers quizAnswers = new QuizAnswers(); + quizAnswers.setAnswers(new ArrayList<>()); + quizAnswers.setQuestionId("42"); + quizAnswers.setQuizAnswerId("42"); + + ArrayList quizSubmission = new ArrayList<>(); + quizSubmission.add(quizAnswers); + + // Act + float actualGradeSubmissionResult = quizSubmissionImpl.gradeSubmission(quizSubmission, new ArrayList<>()); + + // Assert + verify(quizQuestionRepository).findById(eq("42")); + assertTrue(quizSubmission.get(0).getAnswers().isEmpty()); + assertEquals(Float.NaN, actualGradeSubmissionResult); + } + + /** + * Method under test: {@link QuizSubmissionImpl#gradeSubmission(List, List)} + */ + @Test + void testGradeSubmission4() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + Optional ofResult = Optional.of(quizQuestion); + when(quizQuestionRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizAnswers quizAnswers = new QuizAnswers(); + quizAnswers.setAnswers(new ArrayList<>()); + quizAnswers.setQuestionId("42"); + quizAnswers.setQuizAnswerId("42"); + + QuizAnswers quizAnswers2 = new QuizAnswers(); + quizAnswers2.setAnswers(new ArrayList<>()); + quizAnswers2.setQuestionId("Question Id"); + quizAnswers2.setQuizAnswerId("Quiz Answer Id"); + + ArrayList quizSubmission = new ArrayList<>(); + quizSubmission.add(quizAnswers2); + quizSubmission.add(quizAnswers); + + // Act + float actualGradeSubmissionResult = quizSubmissionImpl.gradeSubmission(quizSubmission, new ArrayList<>()); + + // Assert + verify(quizQuestionRepository, atLeast(1)).findById(Mockito.any()); + assertTrue(quizSubmission.get(0).getAnswers().isEmpty()); + assertTrue(quizSubmission.get(1).getAnswers().isEmpty()); + assertEquals(Float.POSITIVE_INFINITY, actualGradeSubmissionResult); + } + + /** + * Method under test: {@link QuizSubmissionImpl#gradeSubmission(List, List)} + */ + @Test + void testGradeSubmission5() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + Optional ofResult = Optional.of(quizQuestion); + when(quizQuestionRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizAnswers quizAnswers = new QuizAnswers(); + quizAnswers.setAnswers(new ArrayList<>()); + quizAnswers.setQuestionId("42"); + quizAnswers.setQuizAnswerId("42"); + + ArrayList quizSubmission = new ArrayList<>(); + quizSubmission.add(quizAnswers); + + QuizQuestion quizQuestion2 = new QuizQuestion(); + quizQuestion2.setAnswers(new ArrayList<>()); + quizQuestion2.setChoices(new ArrayList<>()); + quizQuestion2.setDescription("The characteristics of someone or something"); + quizQuestion2.setQuestionId("42"); + quizQuestion2.setTitle("Dr"); + + ArrayList quizExercise = new ArrayList<>(); + quizExercise.add(quizQuestion2); + + // Act + float actualGradeSubmissionResult = quizSubmissionImpl.gradeSubmission(quizSubmission, quizExercise); + + // Assert + verify(quizQuestionRepository).findById(eq("42")); + assertEquals(10.0f, actualGradeSubmissionResult); + assertTrue(quizSubmission.get(0).getAnswers().isEmpty()); + } + + /** + * Method under test: {@link QuizSubmissionImpl#gradeSubmission(List, List)} + */ + @Test + void testGradeSubmission6() { + // Arrange + QuizQuestion quizQuestion = new QuizQuestion(); + quizQuestion.setAnswers(new ArrayList<>()); + quizQuestion.setChoices(new ArrayList<>()); + quizQuestion.setDescription("The characteristics of someone or something"); + quizQuestion.setQuestionId("42"); + quizQuestion.setTitle("Dr"); + Optional ofResult = Optional.of(quizQuestion); + when(quizQuestionRepository.findById(Mockito.any())).thenReturn(ofResult); + + QuizAnswers quizAnswers = new QuizAnswers(); + quizAnswers.setAnswers(new ArrayList<>()); + quizAnswers.setQuestionId("42"); + quizAnswers.setQuizAnswerId("42"); + + ArrayList quizSubmission = new ArrayList<>(); + quizSubmission.add(quizAnswers); + + QuizQuestion quizQuestion2 = new QuizQuestion(); + quizQuestion2.setAnswers(new ArrayList<>()); + quizQuestion2.setChoices(new ArrayList<>()); + quizQuestion2.setDescription("The characteristics of someone or something"); + quizQuestion2.setQuestionId("42"); + quizQuestion2.setTitle("Dr"); + + QuizQuestion quizQuestion3 = new QuizQuestion(); + quizQuestion3.setAnswers(new ArrayList<>()); + quizQuestion3.setChoices(new ArrayList<>()); + quizQuestion3.setDescription("Description"); + quizQuestion3.setQuestionId("Question Id"); + quizQuestion3.setTitle("Mr"); + + ArrayList quizExercise = new ArrayList<>(); + quizExercise.add(quizQuestion3); + quizExercise.add(quizQuestion2); + + // Act + float actualGradeSubmissionResult = quizSubmissionImpl.gradeSubmission(quizSubmission, quizExercise); + + // Assert + verify(quizQuestionRepository).findById(eq("42")); + assertEquals(5.0f, actualGradeSubmissionResult); + assertTrue(quizSubmission.get(0).getAnswers().isEmpty()); + } + + /** + * Method under test: {@link QuizSubmissionImpl#gradeSubmission(List, List)} + */ + @Test + void testGradeSubmission7() { + // Arrange + when(quizQuestionRepository.findById(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + QuizAnswers quizAnswers = new QuizAnswers(); + quizAnswers.setAnswers(new ArrayList<>()); + quizAnswers.setQuestionId("42"); + quizAnswers.setQuizAnswerId("42"); + + ArrayList quizSubmission = new ArrayList<>(); + quizSubmission.add(quizAnswers); + + // Act and Assert + assertThrows(NoSuchElementException.class, + () -> quizSubmissionImpl.gradeSubmission(quizSubmission, new ArrayList<>())); + verify(quizQuestionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getLastQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetLastQuizSubmissionByUserId() { + // Arrange + when(quizSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + QuizSubmission actualLastQuizSubmissionByUserId = quizSubmissionImpl.getLastQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertNull(actualLastQuizSubmissionByUserId); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getLastQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetLastQuizSubmissionByUserId2() { + // Arrange + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + QuizSubmission actualLastQuizSubmissionByUserId = quizSubmissionImpl.getLastQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertSame(quizSubmission, actualLastQuizSubmissionByUserId); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getLastQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetLastQuizSubmissionByUserId3() { + // Arrange + QuizSubmission quizSubmission = new QuizSubmission(); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + QuizSubmission quizSubmission2 = new QuizSubmission(); + quizSubmission2.setDateGrade("2020/03/01"); + quizSubmission2.setDateSubmit("2020/03/01"); + quizSubmission2.setExerciseId("Exercise Id"); + quizSubmission2.setReviewable(false); + quizSubmission2.setScore(0.5f); + quizSubmission2.setStudentId("Student Id"); + quizSubmission2.setSubmission(new ArrayList<>()); + quizSubmission2.setSubmissionId("Submission Id"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission2); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + QuizSubmission actualLastQuizSubmissionByUserId = quizSubmissionImpl.getLastQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmissionRepository).findAll(); + assertSame(quizSubmission, actualLastQuizSubmissionByUserId); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getLastQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetLastQuizSubmissionByUserId4() { + // Arrange + when(quizSubmissionRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> quizSubmissionImpl.getLastQuizSubmissionByUserId("42", "42")); + verify(quizSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getLastQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetLastQuizSubmissionByUserId5() { + // Arrange + QuizSubmission quizSubmission = mock(QuizSubmission.class); + when(quizSubmission.getDateSubmit()).thenReturn("2020-03-01"); + when(quizSubmission.getStudentId()).thenReturn("42"); + when(quizSubmission.getExerciseId()).thenReturn("42"); + doNothing().when(quizSubmission).setSubmission(Mockito.>any()); + doNothing().when(quizSubmission).setDateGrade(Mockito.any()); + doNothing().when(quizSubmission).setDateSubmit(Mockito.any()); + doNothing().when(quizSubmission).setExerciseId(Mockito.any()); + doNothing().when(quizSubmission).setReviewable(anyBoolean()); + doNothing().when(quizSubmission).setScore(Mockito.any()); + doNothing().when(quizSubmission).setStudentId(Mockito.any()); + doNothing().when(quizSubmission).setSubmissionId(Mockito.any()); + doNothing().when(quizSubmission).setTeacherComment(Mockito.any()); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + + QuizSubmission quizSubmission2 = new QuizSubmission(); + quizSubmission2.setDateGrade("2020-03-01"); + quizSubmission2.setDateSubmit("2020-03-01"); + quizSubmission2.setExerciseId("42"); + quizSubmission2.setReviewable(false); + quizSubmission2.setScore(10.0f); + quizSubmission2.setStudentId("42"); + quizSubmission2.setSubmission(new ArrayList<>()); + quizSubmission2.setSubmissionId("42"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission2); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + quizSubmissionImpl.getLastQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmission).setSubmission(isA(List.class)); + verify(quizSubmission).getDateSubmit(); + verify(quizSubmission).getExerciseId(); + verify(quizSubmission).getStudentId(); + verify(quizSubmission).setDateGrade(eq("2020-03-01")); + verify(quizSubmission).setDateSubmit(eq("2020-03-01")); + verify(quizSubmission).setExerciseId(eq("42")); + verify(quizSubmission).setReviewable(eq(true)); + verify(quizSubmission).setScore(isA(Float.class)); + verify(quizSubmission).setStudentId(eq("42")); + verify(quizSubmission).setSubmissionId(eq("42")); + verify(quizSubmission).setTeacherComment(eq("Teacher Comment")); + verify(quizSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link QuizSubmissionImpl#getLastQuizSubmissionByUserId(String, String)} + */ + @Test + void testGetLastQuizSubmissionByUserId6() { + // Arrange + QuizSubmission quizSubmission = mock(QuizSubmission.class); + when(quizSubmission.getStudentId()).thenReturn("42"); + when(quizSubmission.getExerciseId()).thenReturn("42"); + doNothing().when(quizSubmission).setSubmission(Mockito.>any()); + doNothing().when(quizSubmission).setDateGrade(Mockito.any()); + doNothing().when(quizSubmission).setDateSubmit(Mockito.any()); + doNothing().when(quizSubmission).setExerciseId(Mockito.any()); + doNothing().when(quizSubmission).setReviewable(anyBoolean()); + doNothing().when(quizSubmission).setScore(Mockito.any()); + doNothing().when(quizSubmission).setStudentId(Mockito.any()); + doNothing().when(quizSubmission).setSubmissionId(Mockito.any()); + doNothing().when(quizSubmission).setTeacherComment(Mockito.any()); + quizSubmission.setDateGrade("2020-03-01"); + quizSubmission.setDateSubmit("2020-03-01"); + quizSubmission.setExerciseId("42"); + quizSubmission.setReviewable(true); + quizSubmission.setScore(10.0f); + quizSubmission.setStudentId("42"); + quizSubmission.setSubmission(new ArrayList<>()); + quizSubmission.setSubmissionId("42"); + quizSubmission.setTeacherComment("Teacher Comment"); + QuizSubmission quizSubmission2 = mock(QuizSubmission.class); + when(quizSubmission2.getStudentId()).thenReturn("foo"); + when(quizSubmission2.getExerciseId()).thenReturn("42"); + doNothing().when(quizSubmission2).setSubmission(Mockito.>any()); + doNothing().when(quizSubmission2).setDateGrade(Mockito.any()); + doNothing().when(quizSubmission2).setDateSubmit(Mockito.any()); + doNothing().when(quizSubmission2).setExerciseId(Mockito.any()); + doNothing().when(quizSubmission2).setReviewable(anyBoolean()); + doNothing().when(quizSubmission2).setScore(Mockito.any()); + doNothing().when(quizSubmission2).setStudentId(Mockito.any()); + doNothing().when(quizSubmission2).setSubmissionId(Mockito.any()); + doNothing().when(quizSubmission2).setTeacherComment(Mockito.any()); + quizSubmission2.setDateGrade("2020-03-01"); + quizSubmission2.setDateSubmit("2020-03-01"); + quizSubmission2.setExerciseId("42"); + quizSubmission2.setReviewable(false); + quizSubmission2.setScore(10.0f); + quizSubmission2.setStudentId("42"); + quizSubmission2.setSubmission(new ArrayList<>()); + quizSubmission2.setSubmissionId("42"); + quizSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList quizSubmissionList = new ArrayList<>(); + quizSubmissionList.add(quizSubmission2); + quizSubmissionList.add(quizSubmission); + when(quizSubmissionRepository.findAll()).thenReturn(quizSubmissionList); + + // Act + quizSubmissionImpl.getLastQuizSubmissionByUserId("42", "42"); + + // Assert + verify(quizSubmission2).setSubmission(isA(List.class)); + verify(quizSubmission).setSubmission(isA(List.class)); + verify(quizSubmission2).getExerciseId(); + verify(quizSubmission).getExerciseId(); + verify(quizSubmission2).getStudentId(); + verify(quizSubmission).getStudentId(); + verify(quizSubmission2).setDateGrade(eq("2020-03-01")); + verify(quizSubmission).setDateGrade(eq("2020-03-01")); + verify(quizSubmission2).setDateSubmit(eq("2020-03-01")); + verify(quizSubmission).setDateSubmit(eq("2020-03-01")); + verify(quizSubmission2).setExerciseId(eq("42")); + verify(quizSubmission).setExerciseId(eq("42")); + verify(quizSubmission2).setReviewable(eq(false)); + verify(quizSubmission).setReviewable(eq(true)); + verify(quizSubmission2).setScore(isA(Float.class)); + verify(quizSubmission).setScore(isA(Float.class)); + verify(quizSubmission2).setStudentId(eq("42")); + verify(quizSubmission).setStudentId(eq("42")); + verify(quizSubmission2).setSubmissionId(eq("42")); + verify(quizSubmission).setSubmissionId(eq("42")); + verify(quizSubmission2).setTeacherComment(eq("Teacher Comment")); + verify(quizSubmission).setTeacherComment(eq("Teacher Comment")); + verify(quizSubmissionRepository).findAll(); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/common/RuntimeVersionImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/common/RuntimeVersionImplDiffblueTest.java new file mode 100644 index 00000000..6fb6feb2 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/common/RuntimeVersionImplDiffblueTest.java @@ -0,0 +1,81 @@ +package com.example.codeE.service.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.common.RuntimeVersion; +import com.example.codeE.repository.RuntimeVersionRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {RuntimeVersionImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class RuntimeVersionImplDiffblueTest { + @Autowired + private RuntimeVersionImpl runtimeVersionImpl; + + @MockBean + private RuntimeVersionRepository runtimeVersionRepository; + + /** + * Method under test: + * {@link RuntimeVersionImpl#saveRuntimeVersion(RuntimeVersion)} + */ + @Test + void testSaveRuntimeVersion() { + // Arrange + RuntimeVersion runtimeVersion = new RuntimeVersion(); + runtimeVersion.setJudgeId("42"); + runtimeVersion.setLanguageId("en"); + runtimeVersion.setName("Name"); + runtimeVersion.setPriority(1); + runtimeVersion.setRuntimeVersionId("42"); + runtimeVersion.setVersion("1.0.2"); + when(runtimeVersionRepository.save(Mockito.any())).thenReturn(runtimeVersion); + + RuntimeVersion runtimeVersion2 = new RuntimeVersion(); + runtimeVersion2.setJudgeId("42"); + runtimeVersion2.setLanguageId("en"); + runtimeVersion2.setName("Name"); + runtimeVersion2.setPriority(1); + runtimeVersion2.setRuntimeVersionId("42"); + runtimeVersion2.setVersion("1.0.2"); + + // Act + runtimeVersionImpl.saveRuntimeVersion(runtimeVersion2); + + // Assert that nothing has changed + verify(runtimeVersionRepository).save(isA(RuntimeVersion.class)); + assertEquals("1.0.2", runtimeVersion2.getVersion()); + assertEquals("42", runtimeVersion2.getJudgeId()); + assertEquals("42", runtimeVersion2.getRuntimeVersionId()); + assertEquals("Name", runtimeVersion2.getName()); + assertEquals("en", runtimeVersion2.getLanguageId()); + assertEquals(1, runtimeVersion2.getPriority()); + } + + /** + * Method under test: {@link RuntimeVersionImpl#deleteAllRuntimeVersion()} + */ + @Test + void testDeleteAllRuntimeVersion() { + // Arrange + doNothing().when(runtimeVersionRepository).deleteAll(); + + // Act + runtimeVersionImpl.deleteAllRuntimeVersion(); + + // Assert that nothing has changed + verify(runtimeVersionRepository).deleteAll(); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/common/SubmissionTestCaseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/common/SubmissionTestCaseImplDiffblueTest.java new file mode 100644 index 00000000..d0f2b9d5 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/common/SubmissionTestCaseImplDiffblueTest.java @@ -0,0 +1,381 @@ +package com.example.codeE.service.exercise.common; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.common.SubmissionTestCase; +import com.example.codeE.repository.SubmissionTestCaseRepository; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {SubmissionTestCaseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class SubmissionTestCaseImplDiffblueTest { + @Autowired + private SubmissionTestCaseImpl submissionTestCaseImpl; + + @MockBean + private SubmissionTestCaseRepository submissionTestCaseRepository; + + /** + * Method under test: + * {@link SubmissionTestCaseImpl#deleteAllTcBySubmissionId(String)} + */ + @Test + void testDeleteAllTcBySubmissionId() { + // Arrange + when(submissionTestCaseRepository.findBySubmissionId(Mockito.any())).thenReturn(new ArrayList<>()); + doNothing().when(submissionTestCaseRepository).deleteAll(Mockito.>any()); + + // Act + submissionTestCaseImpl.deleteAllTcBySubmissionId("42"); + + // Assert that nothing has changed + verify(submissionTestCaseRepository).findBySubmissionId(eq("42")); + verify(submissionTestCaseRepository).deleteAll(isA(Iterable.class)); + } + + /** + * Method under test: {@link SubmissionTestCaseImpl#getMaxPosition(List)} + */ + @Test + void testGetMaxPosition() { + // Arrange + SubmissionTestCase submissionTestCase = new SubmissionTestCase(); + submissionTestCase.setExtendedFeedback("Extended Feedback"); + submissionTestCase.setFeedback("Feedback"); + submissionTestCase.setId("42"); + submissionTestCase.setMemory(10.0d); + submissionTestCase.setOutput("Output"); + submissionTestCase.setPoints(10.0d); + submissionTestCase.setStatus("Status"); + submissionTestCase.setSubmissionId("42"); + submissionTestCase.setTestCaseId(1); + submissionTestCase.setTime(10.0d); + submissionTestCase.setTotal(10.0d); + + ArrayList testCases = new ArrayList<>(); + testCases.add(submissionTestCase); + + // Act and Assert + assertEquals(1, submissionTestCaseImpl.getMaxPosition(testCases)); + } + + /** + * Method under test: {@link SubmissionTestCaseImpl#getMaxPosition(List)} + */ + @Test + void testGetMaxPosition2() { + // Arrange + SubmissionTestCase submissionTestCase = new SubmissionTestCase(); + submissionTestCase.setExtendedFeedback("Extended Feedback"); + submissionTestCase.setFeedback("Feedback"); + submissionTestCase.setId("42"); + submissionTestCase.setMemory(10.0d); + submissionTestCase.setOutput("Output"); + submissionTestCase.setPoints(10.0d); + submissionTestCase.setStatus("Status"); + submissionTestCase.setSubmissionId("42"); + submissionTestCase.setTestCaseId(1); + submissionTestCase.setTime(10.0d); + submissionTestCase.setTotal(10.0d); + + SubmissionTestCase submissionTestCase2 = new SubmissionTestCase(); + submissionTestCase2.setExtendedFeedback("42"); + submissionTestCase2.setFeedback("42"); + submissionTestCase2.setId("Id"); + submissionTestCase2.setMemory(0.5d); + submissionTestCase2.setOutput("42"); + submissionTestCase2.setPoints(0.5d); + submissionTestCase2.setStatus("42"); + submissionTestCase2.setSubmissionId("Submission Id"); + submissionTestCase2.setTestCaseId(2); + submissionTestCase2.setTime(0.5d); + submissionTestCase2.setTotal(0.5d); + + ArrayList testCases = new ArrayList<>(); + testCases.add(submissionTestCase2); + testCases.add(submissionTestCase); + + // Act and Assert + assertEquals(2, submissionTestCaseImpl.getMaxPosition(testCases)); + } + + /** + * Method under test: {@link SubmissionTestCaseImpl#getMaxPosition(List)} + */ + @Test + void testGetMaxPosition3() { + // Arrange + SubmissionTestCase submissionTestCase = mock(SubmissionTestCase.class); + when(submissionTestCase.getTestCaseId()).thenReturn(1); + doNothing().when(submissionTestCase).setExtendedFeedback(Mockito.any()); + doNothing().when(submissionTestCase).setFeedback(Mockito.any()); + doNothing().when(submissionTestCase).setId(Mockito.any()); + doNothing().when(submissionTestCase).setMemory(Mockito.any()); + doNothing().when(submissionTestCase).setOutput(Mockito.any()); + doNothing().when(submissionTestCase).setPoints(Mockito.any()); + doNothing().when(submissionTestCase).setStatus(Mockito.any()); + doNothing().when(submissionTestCase).setSubmissionId(Mockito.any()); + doNothing().when(submissionTestCase).setTestCaseId(Mockito.any()); + doNothing().when(submissionTestCase).setTime(Mockito.any()); + doNothing().when(submissionTestCase).setTotal(Mockito.any()); + submissionTestCase.setExtendedFeedback("Extended Feedback"); + submissionTestCase.setFeedback("Feedback"); + submissionTestCase.setId("42"); + submissionTestCase.setMemory(10.0d); + submissionTestCase.setOutput("Output"); + submissionTestCase.setPoints(10.0d); + submissionTestCase.setStatus("Status"); + submissionTestCase.setSubmissionId("42"); + submissionTestCase.setTestCaseId(1); + submissionTestCase.setTime(10.0d); + submissionTestCase.setTotal(10.0d); + + ArrayList testCases = new ArrayList<>(); + testCases.add(submissionTestCase); + + // Act + int actualMaxPosition = submissionTestCaseImpl.getMaxPosition(testCases); + + // Assert + verify(submissionTestCase).getTestCaseId(); + verify(submissionTestCase).setExtendedFeedback(eq("Extended Feedback")); + verify(submissionTestCase).setFeedback(eq("Feedback")); + verify(submissionTestCase).setId(eq("42")); + verify(submissionTestCase).setMemory(isA(Double.class)); + verify(submissionTestCase).setOutput(eq("Output")); + verify(submissionTestCase).setPoints(isA(Double.class)); + verify(submissionTestCase).setStatus(eq("Status")); + verify(submissionTestCase).setSubmissionId(eq("42")); + verify(submissionTestCase).setTestCaseId(isA(Integer.class)); + verify(submissionTestCase).setTime(isA(Double.class)); + verify(submissionTestCase).setTotal(isA(Double.class)); + assertEquals(1, actualMaxPosition); + } + + /** + * Method under test: {@link SubmissionTestCaseImpl#saveAll(List)} + */ + @Test + void testSaveAll() { + // Arrange + when(submissionTestCaseRepository.saveAll(Mockito.>any())) + .thenReturn(new ArrayList<>()); + + // Act + submissionTestCaseImpl.saveAll(new ArrayList<>()); + + // Assert that nothing has changed + verify(submissionTestCaseRepository).saveAll(isA(Iterable.class)); + } + + /** + * Method under test: {@link SubmissionTestCaseImpl#saveAll(List)} + */ + @Test + void testSaveAll2() { + // Arrange + when(submissionTestCaseRepository.saveAll(Mockito.>any())) + .thenReturn(new ArrayList<>()); + + SubmissionTestCase submissionTestCase = new SubmissionTestCase(); + submissionTestCase.setExtendedFeedback("Extended Feedback"); + submissionTestCase.setFeedback("Feedback"); + submissionTestCase.setId("42"); + submissionTestCase.setMemory(10.0d); + submissionTestCase.setOutput("Output"); + submissionTestCase.setPoints(10.0d); + submissionTestCase.setStatus("Status"); + submissionTestCase.setSubmissionId("42"); + submissionTestCase.setTestCaseId(1); + submissionTestCase.setTime(10.0d); + submissionTestCase.setTotal(10.0d); + + ArrayList testCases = new ArrayList<>(); + testCases.add(submissionTestCase); + + // Act + submissionTestCaseImpl.saveAll(testCases); + + // Assert that nothing has changed + verify(submissionTestCaseRepository).saveAll(isA(Iterable.class)); + } + + /** + * Method under test: {@link SubmissionTestCaseImpl#saveAll(List)} + */ + @Test + void testSaveAll3() { + // Arrange + when(submissionTestCaseRepository.saveAll(Mockito.>any())) + .thenReturn(new ArrayList<>()); + + SubmissionTestCase submissionTestCase = new SubmissionTestCase(); + submissionTestCase.setExtendedFeedback("Extended Feedback"); + submissionTestCase.setFeedback("Feedback"); + submissionTestCase.setId("42"); + submissionTestCase.setMemory(10.0d); + submissionTestCase.setOutput("Output"); + submissionTestCase.setPoints(10.0d); + submissionTestCase.setStatus("Status"); + submissionTestCase.setSubmissionId("42"); + submissionTestCase.setTestCaseId(1); + submissionTestCase.setTime(10.0d); + submissionTestCase.setTotal(10.0d); + + SubmissionTestCase submissionTestCase2 = new SubmissionTestCase(); + submissionTestCase2.setExtendedFeedback("42"); + submissionTestCase2.setFeedback("42"); + submissionTestCase2.setId("Id"); + submissionTestCase2.setMemory(0.5d); + submissionTestCase2.setOutput("42"); + submissionTestCase2.setPoints(0.5d); + submissionTestCase2.setStatus("42"); + submissionTestCase2.setSubmissionId("Submission Id"); + submissionTestCase2.setTestCaseId(2); + submissionTestCase2.setTime(0.5d); + submissionTestCase2.setTotal(0.5d); + + ArrayList testCases = new ArrayList<>(); + testCases.add(submissionTestCase2); + testCases.add(submissionTestCase); + + // Act + submissionTestCaseImpl.saveAll(testCases); + + // Assert that nothing has changed + verify(submissionTestCaseRepository).saveAll(isA(Iterable.class)); + } + + /** + * Method under test: {@link SubmissionTestCaseImpl#findBySubmissionId(String)} + */ + @Test + void testFindBySubmissionId() { + // Arrange + ArrayList submissionTestCaseList = new ArrayList<>(); + when(submissionTestCaseRepository.findBySubmissionId(Mockito.any())).thenReturn(submissionTestCaseList); + + // Act + List actualFindBySubmissionIdResult = submissionTestCaseImpl.findBySubmissionId("42"); + + // Assert + verify(submissionTestCaseRepository).findBySubmissionId(eq("42")); + assertTrue(actualFindBySubmissionIdResult.isEmpty()); + assertSame(submissionTestCaseList, actualFindBySubmissionIdResult); + } + + /** + * Method under test: + * {@link SubmissionTestCaseImpl#getAllTcBySubmissionId(String)} + */ + @Test + void testGetAllTcBySubmissionId() { + // Arrange + when(submissionTestCaseRepository.findBySubmissionId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAllTcBySubmissionId = submissionTestCaseImpl.getAllTcBySubmissionId("42"); + + // Assert + verify(submissionTestCaseRepository).findBySubmissionId(eq("42")); + assertTrue(actualAllTcBySubmissionId.isEmpty()); + } + + /** + * Method under test: + * {@link SubmissionTestCaseImpl#getAllTcBySubmissionId(String)} + */ + @Test + void testGetAllTcBySubmissionId2() { + // Arrange + SubmissionTestCase submissionTestCase = new SubmissionTestCase(); + submissionTestCase.setExtendedFeedback("Extended Feedback"); + submissionTestCase.setFeedback("Feedback"); + submissionTestCase.setId("42"); + submissionTestCase.setMemory(10.0d); + submissionTestCase.setOutput("Output"); + submissionTestCase.setPoints(10.0d); + submissionTestCase.setStatus("Status"); + submissionTestCase.setSubmissionId("42"); + submissionTestCase.setTestCaseId(1); + submissionTestCase.setTime(10.0d); + submissionTestCase.setTotal(10.0d); + + ArrayList submissionTestCaseList = new ArrayList<>(); + submissionTestCaseList.add(submissionTestCase); + when(submissionTestCaseRepository.findBySubmissionId(Mockito.any())).thenReturn(submissionTestCaseList); + + // Act + List actualAllTcBySubmissionId = submissionTestCaseImpl.getAllTcBySubmissionId("42"); + + // Assert + verify(submissionTestCaseRepository).findBySubmissionId(eq("42")); + assertTrue(actualAllTcBySubmissionId.isEmpty()); + } + + /** + * Method under test: + * {@link SubmissionTestCaseImpl#getAllTcBySubmissionId(String)} + */ + @Test + void testGetAllTcBySubmissionId3() { + // Arrange + SubmissionTestCase submissionTestCase = new SubmissionTestCase(); + submissionTestCase.setExtendedFeedback("Extended Feedback"); + submissionTestCase.setFeedback("Feedback"); + submissionTestCase.setId("42"); + submissionTestCase.setMemory(10.0d); + submissionTestCase.setOutput("Output"); + submissionTestCase.setPoints(10.0d); + submissionTestCase.setStatus("Status"); + submissionTestCase.setSubmissionId("42"); + submissionTestCase.setTestCaseId(1); + submissionTestCase.setTime(10.0d); + submissionTestCase.setTotal(10.0d); + + SubmissionTestCase submissionTestCase2 = new SubmissionTestCase(); + submissionTestCase2.setExtendedFeedback("42"); + submissionTestCase2.setFeedback("42"); + submissionTestCase2.setId("Id"); + submissionTestCase2.setMemory(0.0d); + submissionTestCase2.setOutput("42"); + submissionTestCase2.setPoints(0.0d); + submissionTestCase2.setStatus("42"); + submissionTestCase2.setSubmissionId("Submission Id"); + submissionTestCase2.setTestCaseId(2); + submissionTestCase2.setTime(0.0d); + submissionTestCase2.setTotal(0.0d); + + ArrayList submissionTestCaseList = new ArrayList<>(); + submissionTestCaseList.add(submissionTestCase2); + submissionTestCaseList.add(submissionTestCase); + when(submissionTestCaseRepository.findBySubmissionId(Mockito.any())).thenReturn(submissionTestCaseList); + + // Act + List actualAllTcBySubmissionId = submissionTestCaseImpl.getAllTcBySubmissionId("42"); + + // Assert + verify(submissionTestCaseRepository).findBySubmissionId(eq("42")); + assertEquals(1, actualAllTcBySubmissionId.size()); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/problem/CodeExerciseTestcaseImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/problem/CodeExerciseTestcaseImplDiffblueTest.java new file mode 100644 index 00000000..b474a703 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/problem/CodeExerciseTestcaseImplDiffblueTest.java @@ -0,0 +1,100 @@ +package com.example.codeE.service.exercise.problem; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.common.problem.TestCase; +import com.example.codeE.repository.CodeExerciseTestcaseRepository; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {CodeExerciseTestcaseImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class CodeExerciseTestcaseImplDiffblueTest { + @Autowired + private CodeExerciseTestcaseImpl codeExerciseTestcaseImpl; + + @MockBean + private CodeExerciseTestcaseRepository codeExerciseTestcaseRepository; + + /** + * Method under test: {@link CodeExerciseTestcaseImpl#saveTestCase(TestCase)} + */ + @Test + void testSaveTestCase() { + // Arrange + TestCase testCase = new TestCase(); + testCase.setExerciseId("42"); + testCase.setInput("Input"); + testCase.setOutput("Output"); + testCase.setPoints(1); + testCase.setTestcaseId("42"); + when(codeExerciseTestcaseRepository.save(Mockito.any())).thenReturn(testCase); + + TestCase testCase2 = new TestCase(); + testCase2.setExerciseId("42"); + testCase2.setInput("Input"); + testCase2.setOutput("Output"); + testCase2.setPoints(1); + testCase2.setTestcaseId("42"); + + // Act + TestCase actualSaveTestCaseResult = codeExerciseTestcaseImpl.saveTestCase(testCase2); + + // Assert + verify(codeExerciseTestcaseRepository).save(isA(TestCase.class)); + assertSame(testCase, actualSaveTestCaseResult); + } + + /** + * Method under test: {@link CodeExerciseTestcaseImpl#deleteTestCase(String)} + */ + @Test + void testDeleteTestCase() { + // Arrange + doNothing().when(codeExerciseTestcaseRepository).deleteById(Mockito.any()); + + // Act + codeExerciseTestcaseImpl.deleteTestCase("42"); + + // Assert that nothing has changed + verify(codeExerciseTestcaseRepository).deleteById(eq("42")); + } + + /** + * Method under test: + * {@link CodeExerciseTestcaseImpl#getAllZeroPointTestCases(String)} + */ + @Test + void testGetAllZeroPointTestCases() { + // Arrange + ArrayList testCaseList = new ArrayList<>(); + when(codeExerciseTestcaseRepository.findByExerciseIdAndPoints(Mockito.any(), anyInt())) + .thenReturn(testCaseList); + + // Act + List actualAllZeroPointTestCases = codeExerciseTestcaseImpl.getAllZeroPointTestCases("42"); + + // Assert + verify(codeExerciseTestcaseRepository).findByExerciseIdAndPoints(eq("42"), eq(0)); + assertTrue(actualAllZeroPointTestCases.isEmpty()); + assertSame(testCaseList, actualAllZeroPointTestCases); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/submission/CodeSubmissionImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/submission/CodeSubmissionImplDiffblueTest.java new file mode 100644 index 00000000..2d3f1603 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/submission/CodeSubmissionImplDiffblueTest.java @@ -0,0 +1,2283 @@ +package com.example.codeE.service.exercise.submission; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.CodeSubmission; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.CodeSubmissionRepository; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.exercise.code.CodeSubmissionsResponse; +import com.example.codeE.service.judge.JudgeImpl; +import com.example.codeE.service.judge.JudgeService; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {CodeSubmissionImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class CodeSubmissionImplDiffblueTest { + @Autowired + private CodeSubmissionImpl codeSubmissionImpl; + + @MockBean + private CodeSubmissionRepository codeSubmissionRepository; + + @MockBean + private ExerciseRepository exerciseRepository; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: + * {@link CodeSubmissionImpl#checkStatusAndUpdate(CodeSubmission)} + */ + @Test + void testCheckStatusAndUpdate() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(10.0d); + codeSubmission2.setCaseTotal(10.0d); + codeSubmission2.setCurrentTestcase(1); + codeSubmission2.setDateGrade("2020-03-01"); + codeSubmission2.setDateSubmit("2020-03-01"); + codeSubmission2.setError("An error occurred"); + codeSubmission2.setExerciseId("42"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("Judged On"); + codeSubmission2.setLanguageId("en"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(1); + codeSubmission2.setPretested(true); + codeSubmission2.setResult("Result"); + codeSubmission2.setReviewable(true); + codeSubmission2.setScore(10.0f); + codeSubmission2.setSource("Source"); + codeSubmission2.setStatus("Status"); + codeSubmission2.setStudentId("42"); + codeSubmission2.setSubmissionId("42"); + codeSubmission2.setTeacherComment("Teacher Comment"); + codeSubmission2.setTime(10.0d); + when(codeSubmissionRepository.save(Mockito.any())).thenReturn(codeSubmission2); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + CodeSubmission codeSubmission3 = new CodeSubmission(); + codeSubmission3.setCasePoints(10.0d); + codeSubmission3.setCaseTotal(10.0d); + codeSubmission3.setCurrentTestcase(1); + codeSubmission3.setDateGrade("2020-03-01"); + codeSubmission3.setDateSubmit("2020-03-01"); + codeSubmission3.setError("An error occurred"); + codeSubmission3.setExerciseId("42"); + codeSubmission3.setJudgeService(new JudgeImpl()); + codeSubmission3.setJudgedOn("Judged On"); + codeSubmission3.setLanguageId("en"); + codeSubmission3.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission3.setMemory(1); + codeSubmission3.setPretested(true); + codeSubmission3.setResult("Result"); + codeSubmission3.setReviewable(true); + codeSubmission3.setScore(10.0f); + codeSubmission3.setSource("Source"); + codeSubmission3.setStatus("Status"); + codeSubmission3.setStudentId("42"); + codeSubmission3.setSubmissionId("42"); + codeSubmission3.setTeacherComment("Teacher Comment"); + codeSubmission3.setTime(10.0d); + + // Act + CodeSubmission actualCheckStatusAndUpdateResult = codeSubmissionImpl.checkStatusAndUpdate(codeSubmission3); + + // Assert + verify(codeSubmissionRepository).findById(eq("42")); + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + assertSame(codeSubmission2, actualCheckStatusAndUpdateResult); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#checkStatusAndUpdate(CodeSubmission)} + */ + @Test + void testCheckStatusAndUpdate2() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + when(codeSubmissionRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("P")); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(10.0d); + codeSubmission2.setCaseTotal(10.0d); + codeSubmission2.setCurrentTestcase(1); + codeSubmission2.setDateGrade("2020-03-01"); + codeSubmission2.setDateSubmit("2020-03-01"); + codeSubmission2.setError("An error occurred"); + codeSubmission2.setExerciseId("42"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("Judged On"); + codeSubmission2.setLanguageId("en"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(1); + codeSubmission2.setPretested(true); + codeSubmission2.setResult("Result"); + codeSubmission2.setReviewable(true); + codeSubmission2.setScore(10.0f); + codeSubmission2.setSource("Source"); + codeSubmission2.setStatus("Status"); + codeSubmission2.setStudentId("42"); + codeSubmission2.setSubmissionId("42"); + codeSubmission2.setTeacherComment("Teacher Comment"); + codeSubmission2.setTime(10.0d); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.checkStatusAndUpdate(codeSubmission2)); + verify(codeSubmissionRepository).findById(eq("42")); + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#updateStatusAndResult(String, String, String)} + */ + @Test + void testUpdateStatusAndResult() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(10.0d); + codeSubmission2.setCaseTotal(10.0d); + codeSubmission2.setCurrentTestcase(1); + codeSubmission2.setDateGrade("2020-03-01"); + codeSubmission2.setDateSubmit("2020-03-01"); + codeSubmission2.setError("An error occurred"); + codeSubmission2.setExerciseId("42"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("Judged On"); + codeSubmission2.setLanguageId("en"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(1); + codeSubmission2.setPretested(true); + codeSubmission2.setResult("Result"); + codeSubmission2.setReviewable(true); + codeSubmission2.setScore(10.0f); + codeSubmission2.setSource("Source"); + codeSubmission2.setStatus("Status"); + codeSubmission2.setStudentId("42"); + codeSubmission2.setSubmissionId("42"); + codeSubmission2.setTeacherComment("Teacher Comment"); + codeSubmission2.setTime(10.0d); + when(codeSubmissionRepository.save(Mockito.any())).thenReturn(codeSubmission2); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + codeSubmissionImpl.updateStatusAndResult("42", "Status", "Result"); + + // Assert + verify(codeSubmissionRepository).findById(eq("42")); + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#updateStatusAndResult(String, String, String)} + */ + @Test + void testUpdateStatusAndResult2() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + when(codeSubmissionRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("AB")); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, + () -> codeSubmissionImpl.updateStatusAndResult("42", "Status", "Result")); + verify(codeSubmissionRepository).findById(eq("42")); + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#updateStatusAndResultBySubmissionIdAndStatus(String, String, String, String)} + */ + @Test + void testUpdateStatusAndResultBySubmissionIdAndStatus() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + codeSubmissionImpl.updateStatusAndResultBySubmissionIdAndStatus("42", "Searched Status", "Status", "Result"); + + // Assert that nothing has changed + verify(codeSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CodeSubmissionImpl#getCodeSubmissionById(String)} + */ + @Test + void testGetCodeSubmissionById() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + CodeSubmission actualCodeSubmissionById = codeSubmissionImpl.getCodeSubmissionById("42"); + + // Assert + verify(codeSubmissionRepository).findById(eq("42")); + assertSame(codeSubmission, actualCodeSubmissionById); + } + + /** + * Method under test: {@link CodeSubmissionImpl#getCodeSubmissionById(String)} + */ + @Test + void testGetCodeSubmissionById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionById("42")); + verify(codeSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: {@link CodeSubmissionImpl#getCodeSubmissionById(String)} + */ + @Test + void testGetCodeSubmissionById3() { + // Arrange + when(codeSubmissionRepository.findById(Mockito.any())) + .thenThrow(new NoSuchElementException("No Submission found")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionById("42")); + verify(codeSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionResponseById(String)} + */ + @Test + void testGetCodeSubmissionResponseById() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult2 = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult2); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act + CodeSubmissionsResponse actualCodeSubmissionResponseById = codeSubmissionImpl.getCodeSubmissionResponseById("42"); + + // Assert + verify(userRepository).findUserByUserId(eq("42")); + verify(codeSubmissionRepository).findById(eq("42")); + verify(exerciseRepository).findById(eq("42")); + User student = actualCodeSubmissionResponseById.getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionResponseById(String)} + */ + @Test + void testGetCodeSubmissionResponseById2() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult2 = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult2); + when(userRepository.findUserByUserId(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionResponseById("42")); + verify(userRepository).findUserByUserId(eq("42")); + verify(codeSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionResponseById(String)} + */ + @Test + void testGetCodeSubmissionResponseById3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(emptyResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionResponseById("42")); + verify(codeSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionResponseById(String)} + */ + @Test + void testGetCodeSubmissionResponseById4() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + Optional ofResult = Optional.of(codeSubmission); + when(codeSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionResponseById("42")); + verify(userRepository).findUserByUserId(eq("42")); + verify(codeSubmissionRepository).findById(eq("42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#updateCodeSubmission(CodeSubmission)} + */ + @Test + void testUpdateCodeSubmission() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + when(codeSubmissionRepository.save(Mockito.any())).thenReturn(codeSubmission); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(10.0d); + codeSubmission2.setCaseTotal(10.0d); + codeSubmission2.setCurrentTestcase(1); + codeSubmission2.setDateGrade("2020-03-01"); + codeSubmission2.setDateSubmit("2020-03-01"); + codeSubmission2.setError("An error occurred"); + codeSubmission2.setExerciseId("42"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("Judged On"); + codeSubmission2.setLanguageId("en"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(1); + codeSubmission2.setPretested(true); + codeSubmission2.setResult("Result"); + codeSubmission2.setReviewable(true); + codeSubmission2.setScore(10.0f); + codeSubmission2.setSource("Source"); + codeSubmission2.setStatus("Status"); + codeSubmission2.setStudentId("42"); + codeSubmission2.setSubmissionId("42"); + codeSubmission2.setTeacherComment("Teacher Comment"); + codeSubmission2.setTime(10.0d); + + // Act + CodeSubmission actualUpdateCodeSubmissionResult = codeSubmissionImpl.updateCodeSubmission(codeSubmission2); + + // Assert + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + assertSame(codeSubmission, actualUpdateCodeSubmissionResult); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#updateCodeSubmission(CodeSubmission)} + */ + @Test + void testUpdateCodeSubmission2() { + // Arrange + when(codeSubmissionRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.updateCodeSubmission(codeSubmission)); + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#saveCodeSubmission(CodeSubmission)} + */ + @Test + void testSaveCodeSubmission() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + when(codeSubmissionRepository.save(Mockito.any())).thenReturn(codeSubmission); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(10.0d); + codeSubmission2.setCaseTotal(10.0d); + codeSubmission2.setCurrentTestcase(1); + codeSubmission2.setDateGrade("2020-03-01"); + codeSubmission2.setDateSubmit("2020-03-01"); + codeSubmission2.setError("An error occurred"); + codeSubmission2.setExerciseId("42"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("Judged On"); + codeSubmission2.setLanguageId("en"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(1); + codeSubmission2.setPretested(true); + codeSubmission2.setResult("Result"); + codeSubmission2.setReviewable(true); + codeSubmission2.setScore(10.0f); + codeSubmission2.setSource("Source"); + codeSubmission2.setStatus("Status"); + codeSubmission2.setStudentId("42"); + codeSubmission2.setSubmissionId("42"); + codeSubmission2.setTeacherComment("Teacher Comment"); + codeSubmission2.setTime(10.0d); + + // Act + CodeSubmission actualSaveCodeSubmissionResult = codeSubmissionImpl.saveCodeSubmission(codeSubmission2); + + // Assert + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + assertSame(codeSubmission, actualSaveCodeSubmissionResult); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#saveCodeSubmission(CodeSubmission)} + */ + @Test + void testSaveCodeSubmission2() { + // Arrange + when(codeSubmissionRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.saveCodeSubmission(codeSubmission)); + verify(codeSubmissionRepository).save(isA(CodeSubmission.class)); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionsByExerciseId(String)} + */ + @Test + void testGetCodeSubmissionsByExerciseId() { + // Arrange + when(codeSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualCodeSubmissionsByExerciseId = codeSubmissionImpl + .getCodeSubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionsByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionsByExerciseId(String)} + */ + @Test + void testGetCodeSubmissionsByExerciseId2() { + // Arrange + when(codeSubmissionRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionsByExerciseId("42")); + verify(exerciseRepository).findById(eq("42")); + verify(codeSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionsByExerciseId(String)} + */ + @Test + void testGetCodeSubmissionsByExerciseId3() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualCodeSubmissionsByExerciseId = codeSubmissionImpl + .getCodeSubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionsByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionsByExerciseId(String)} + */ + @Test + void testGetCodeSubmissionsByExerciseId4() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualCodeSubmissionsByExerciseId = codeSubmissionImpl + .getCodeSubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionsByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionsByExerciseId(String)} + */ + @Test + void testGetCodeSubmissionsByExerciseId5() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionsByExerciseId("42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionsByExerciseId(String)} + */ + @Test + void testGetCodeSubmissionsByExerciseId6() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + CodeSubmission codeSubmission3 = new CodeSubmission(); + codeSubmission3.setCasePoints(-0.5d); + codeSubmission3.setCaseTotal(-0.5d); + codeSubmission3.setCurrentTestcase(0); + codeSubmission3.setDateGrade("code_submission"); + codeSubmission3.setDateSubmit("code_submission"); + codeSubmission3.setError("42"); + codeSubmission3.setExerciseId("Exercise Id"); + codeSubmission3.setJudgeService(new JudgeImpl()); + codeSubmission3.setJudgedOn("Judged On"); + codeSubmission3.setLanguageId("42"); + codeSubmission3.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission3.setMemory(0); + codeSubmission3.setPretested(true); + codeSubmission3.setResult("Result"); + codeSubmission3.setReviewable(true); + codeSubmission3.setScore(-0.5f); + codeSubmission3.setSource("Source"); + codeSubmission3.setStatus("Status"); + codeSubmission3.setStudentId("Student Id"); + codeSubmission3.setSubmissionId("Submission Id"); + codeSubmission3.setTeacherComment("Teacher Comment"); + codeSubmission3.setTime(-0.5d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission3); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualCodeSubmissionsByExerciseId = codeSubmissionImpl + .getCodeSubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionsByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId() { + // Arrange + when(codeSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualCodeSubmissionByUserId = codeSubmissionImpl.getCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId2() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + List actualCodeSubmissionByUserId = codeSubmissionImpl.getCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId3() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + List actualCodeSubmissionByUserId = codeSubmissionImpl.getCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId4() { + // Arrange + when(codeSubmissionRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionByUserId("42", "42")); + verify(codeSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId5() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + CodeSubmission codeSubmission3 = new CodeSubmission(); + codeSubmission3.setCasePoints(-0.5d); + codeSubmission3.setCaseTotal(-0.5d); + codeSubmission3.setCurrentTestcase(0); + codeSubmission3.setDateGrade("code_submission"); + codeSubmission3.setDateSubmit("code_submission"); + codeSubmission3.setError("42"); + codeSubmission3.setExerciseId("Exercise Id"); + codeSubmission3.setJudgeService(new JudgeImpl()); + codeSubmission3.setJudgedOn("Judged On"); + codeSubmission3.setLanguageId("42"); + codeSubmission3.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission3.setMemory(0); + codeSubmission3.setPretested(true); + codeSubmission3.setResult("Result"); + codeSubmission3.setReviewable(true); + codeSubmission3.setScore(-0.5f); + codeSubmission3.setSource("Source"); + codeSubmission3.setStatus("Status"); + codeSubmission3.setStudentId("Student Id"); + codeSubmission3.setSubmissionId("Submission Id"); + codeSubmission3.setTeacherComment("Teacher Comment"); + codeSubmission3.setTime(-0.5d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission3); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + List actualCodeSubmissionByUserId = codeSubmissionImpl.getCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId6() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + CodeSubmission codeSubmission3 = new CodeSubmission(); + codeSubmission3.setCasePoints(-0.5d); + codeSubmission3.setCaseTotal(-0.5d); + codeSubmission3.setCurrentTestcase(0); + codeSubmission3.setDateGrade("code_submission"); + codeSubmission3.setDateSubmit("code_submission"); + codeSubmission3.setError("42"); + codeSubmission3.setExerciseId("Exercise Id"); + codeSubmission3.setJudgeService(new JudgeImpl()); + codeSubmission3.setJudgedOn("Judged On"); + codeSubmission3.setLanguageId("42"); + codeSubmission3.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission3.setMemory(0); + codeSubmission3.setPretested(true); + codeSubmission3.setResult("Result"); + codeSubmission3.setReviewable(true); + codeSubmission3.setScore(-0.5f); + codeSubmission3.setSource("Source"); + codeSubmission3.setStatus("Status"); + codeSubmission3.setStudentId("Student Id"); + codeSubmission3.setSubmissionId("Submission Id"); + codeSubmission3.setTeacherComment("Teacher Comment"); + codeSubmission3.setTime(-0.5d); + + CodeSubmission codeSubmission4 = new CodeSubmission(); + codeSubmission4.setCasePoints(10.0d); + codeSubmission4.setCaseTotal(10.0d); + codeSubmission4.setCurrentTestcase(1); + codeSubmission4.setDateGrade("2020-03-01"); + codeSubmission4.setDateSubmit("2020-03-01"); + codeSubmission4.setError("An error occurred"); + codeSubmission4.setExerciseId("42"); + codeSubmission4.setJudgeService(new JudgeImpl()); + codeSubmission4.setJudgedOn("code_submission"); + codeSubmission4.setLanguageId("en"); + codeSubmission4.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission4.setMemory(1); + codeSubmission4.setPretested(false); + codeSubmission4.setResult("code_submission"); + codeSubmission4.setReviewable(false); + codeSubmission4.setScore(10.0f); + codeSubmission4.setSource("code_submission"); + codeSubmission4.setStatus("code_submission"); + codeSubmission4.setStudentId("42"); + codeSubmission4.setSubmissionId("42"); + codeSubmission4.setTeacherComment("code_submission"); + codeSubmission4.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission4); + codeSubmissionList.add(codeSubmission3); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + List actualCodeSubmissionByUserId = codeSubmissionImpl.getCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertEquals(1, actualCodeSubmissionByUserId.size()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId7() { + // Arrange + CodeSubmission codeSubmission = mock(CodeSubmission.class); + when(codeSubmission.isPretested()).thenThrow(new NoSuchElementException("foo")); + when(codeSubmission.getStudentId()).thenReturn("42"); + when(codeSubmission.getExerciseId()).thenReturn("42"); + when(codeSubmission.getSubmissionId()).thenReturn("42"); + doNothing().when(codeSubmission).setCasePoints(Mockito.any()); + doNothing().when(codeSubmission).setCaseTotal(Mockito.any()); + doNothing().when(codeSubmission).setCurrentTestcase(Mockito.any()); + doNothing().when(codeSubmission).setError(Mockito.any()); + doNothing().when(codeSubmission).setJudgeService(Mockito.any()); + doNothing().when(codeSubmission).setJudgedOn(Mockito.any()); + doNothing().when(codeSubmission).setLanguageId(Mockito.any()); + doNothing().when(codeSubmission).setLockedAfter(Mockito.any()); + doNothing().when(codeSubmission).setMemory(Mockito.any()); + doNothing().when(codeSubmission).setPretested(anyBoolean()); + doNothing().when(codeSubmission).setResult(Mockito.any()); + doNothing().when(codeSubmission).setSource(Mockito.any()); + doNothing().when(codeSubmission).setStatus(Mockito.any()); + doNothing().when(codeSubmission).setTime(Mockito.any()); + doNothing().when(codeSubmission).setDateGrade(Mockito.any()); + doNothing().when(codeSubmission).setDateSubmit(Mockito.any()); + doNothing().when(codeSubmission).setExerciseId(Mockito.any()); + doNothing().when(codeSubmission).setReviewable(anyBoolean()); + doNothing().when(codeSubmission).setScore(Mockito.any()); + doNothing().when(codeSubmission).setStudentId(Mockito.any()); + doNothing().when(codeSubmission).setSubmissionId(Mockito.any()); + doNothing().when(codeSubmission).setTeacherComment(Mockito.any()); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getCodeSubmissionByUserId("42", "42")); + verify(codeSubmission).isPretested(); + verify(codeSubmission).setCasePoints(isA(Double.class)); + verify(codeSubmission).setCaseTotal(isA(Double.class)); + verify(codeSubmission).setCurrentTestcase(isA(Integer.class)); + verify(codeSubmission).setError(eq("An error occurred")); + verify(codeSubmission).setJudgeService(isA(JudgeService.class)); + verify(codeSubmission).setJudgedOn(eq("Judged On")); + verify(codeSubmission).setLanguageId(eq("en")); + verify(codeSubmission).setLockedAfter(isA(LocalDateTime.class)); + verify(codeSubmission).setMemory(isA(Integer.class)); + verify(codeSubmission).setPretested(eq(true)); + verify(codeSubmission).setResult(eq("Result")); + verify(codeSubmission).setSource(eq("Source")); + verify(codeSubmission).setStatus(eq("Status")); + verify(codeSubmission).setTime(isA(Double.class)); + verify(codeSubmission).getExerciseId(); + verify(codeSubmission).getStudentId(); + verify(codeSubmission).getSubmissionId(); + verify(codeSubmission).setDateGrade(eq("2020-03-01")); + verify(codeSubmission).setDateSubmit(eq("2020-03-01")); + verify(codeSubmission).setExerciseId(eq("42")); + verify(codeSubmission).setReviewable(eq(true)); + verify(codeSubmission).setScore(isA(Float.class)); + verify(codeSubmission).setStudentId(eq("42")); + verify(codeSubmission).setSubmissionId(eq("42")); + verify(codeSubmission).setTeacherComment(eq("Teacher Comment")); + verify(codeSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetCodeSubmissionByUserId8() { + // Arrange + CodeSubmission codeSubmission = mock(CodeSubmission.class); + when(codeSubmission.getStudentId()).thenReturn("code_submission"); + when(codeSubmission.getExerciseId()).thenReturn("42"); + when(codeSubmission.getSubmissionId()).thenReturn("42"); + doNothing().when(codeSubmission).setCasePoints(Mockito.any()); + doNothing().when(codeSubmission).setCaseTotal(Mockito.any()); + doNothing().when(codeSubmission).setCurrentTestcase(Mockito.any()); + doNothing().when(codeSubmission).setError(Mockito.any()); + doNothing().when(codeSubmission).setJudgeService(Mockito.any()); + doNothing().when(codeSubmission).setJudgedOn(Mockito.any()); + doNothing().when(codeSubmission).setLanguageId(Mockito.any()); + doNothing().when(codeSubmission).setLockedAfter(Mockito.any()); + doNothing().when(codeSubmission).setMemory(Mockito.any()); + doNothing().when(codeSubmission).setPretested(anyBoolean()); + doNothing().when(codeSubmission).setResult(Mockito.any()); + doNothing().when(codeSubmission).setSource(Mockito.any()); + doNothing().when(codeSubmission).setStatus(Mockito.any()); + doNothing().when(codeSubmission).setTime(Mockito.any()); + doNothing().when(codeSubmission).setDateGrade(Mockito.any()); + doNothing().when(codeSubmission).setDateSubmit(Mockito.any()); + doNothing().when(codeSubmission).setExerciseId(Mockito.any()); + doNothing().when(codeSubmission).setReviewable(anyBoolean()); + doNothing().when(codeSubmission).setScore(Mockito.any()); + doNothing().when(codeSubmission).setStudentId(Mockito.any()); + doNothing().when(codeSubmission).setSubmissionId(Mockito.any()); + doNothing().when(codeSubmission).setTeacherComment(Mockito.any()); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + List actualCodeSubmissionByUserId = codeSubmissionImpl.getCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmission).setCasePoints(isA(Double.class)); + verify(codeSubmission).setCaseTotal(isA(Double.class)); + verify(codeSubmission).setCurrentTestcase(isA(Integer.class)); + verify(codeSubmission).setError(eq("An error occurred")); + verify(codeSubmission).setJudgeService(isA(JudgeService.class)); + verify(codeSubmission).setJudgedOn(eq("Judged On")); + verify(codeSubmission).setLanguageId(eq("en")); + verify(codeSubmission).setLockedAfter(isA(LocalDateTime.class)); + verify(codeSubmission).setMemory(isA(Integer.class)); + verify(codeSubmission).setPretested(eq(true)); + verify(codeSubmission).setResult(eq("Result")); + verify(codeSubmission).setSource(eq("Source")); + verify(codeSubmission).setStatus(eq("Status")); + verify(codeSubmission).setTime(isA(Double.class)); + verify(codeSubmission).getExerciseId(); + verify(codeSubmission).getStudentId(); + verify(codeSubmission).getSubmissionId(); + verify(codeSubmission).setDateGrade(eq("2020-03-01")); + verify(codeSubmission).setDateSubmit(eq("2020-03-01")); + verify(codeSubmission).setExerciseId(eq("42")); + verify(codeSubmission).setReviewable(eq(true)); + verify(codeSubmission).setScore(isA(Float.class)); + verify(codeSubmission).setStudentId(eq("42")); + verify(codeSubmission).setSubmissionId(eq("42")); + verify(codeSubmission).setTeacherComment(eq("Teacher Comment")); + verify(codeSubmissionRepository).findAll(); + assertTrue(actualCodeSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId() { + // Arrange + when(codeSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + CodeSubmission actualLastCodeSubmissionByUserId = codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertNull(actualLastCodeSubmissionByUserId); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId2() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + CodeSubmission actualLastCodeSubmissionByUserId = codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertNull(actualLastCodeSubmissionByUserId); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId3() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + CodeSubmission actualLastCodeSubmissionByUserId = codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertNull(actualLastCodeSubmissionByUserId); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId4() { + // Arrange + when(codeSubmissionRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42")); + verify(codeSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId5() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + CodeSubmission codeSubmission3 = new CodeSubmission(); + codeSubmission3.setCasePoints(-0.5d); + codeSubmission3.setCaseTotal(-0.5d); + codeSubmission3.setCurrentTestcase(0); + codeSubmission3.setDateGrade("code_submission"); + codeSubmission3.setDateSubmit("code_submission"); + codeSubmission3.setError("42"); + codeSubmission3.setExerciseId("Exercise Id"); + codeSubmission3.setJudgeService(new JudgeImpl()); + codeSubmission3.setJudgedOn("Judged On"); + codeSubmission3.setLanguageId("42"); + codeSubmission3.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission3.setMemory(0); + codeSubmission3.setPretested(true); + codeSubmission3.setResult("Result"); + codeSubmission3.setReviewable(true); + codeSubmission3.setScore(-0.5f); + codeSubmission3.setSource("Source"); + codeSubmission3.setStatus("Status"); + codeSubmission3.setStudentId("Student Id"); + codeSubmission3.setSubmissionId("Submission Id"); + codeSubmission3.setTeacherComment("Teacher Comment"); + codeSubmission3.setTime(-0.5d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission3); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + CodeSubmission actualLastCodeSubmissionByUserId = codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertNull(actualLastCodeSubmissionByUserId); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId6() { + // Arrange + CodeSubmission codeSubmission = new CodeSubmission(); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + CodeSubmission codeSubmission2 = new CodeSubmission(); + codeSubmission2.setCasePoints(0.5d); + codeSubmission2.setCaseTotal(0.5d); + codeSubmission2.setCurrentTestcase(3); + codeSubmission2.setDateGrade("2020/03/01"); + codeSubmission2.setDateSubmit("2020/03/01"); + codeSubmission2.setError("code_submission"); + codeSubmission2.setExerciseId("code_submission"); + codeSubmission2.setJudgeService(new JudgeImpl()); + codeSubmission2.setJudgedOn("42"); + codeSubmission2.setLanguageId("eng"); + codeSubmission2.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission2.setMemory(3); + codeSubmission2.setPretested(false); + codeSubmission2.setResult("42"); + codeSubmission2.setReviewable(false); + codeSubmission2.setScore(0.5f); + codeSubmission2.setSource("42"); + codeSubmission2.setStatus("42"); + codeSubmission2.setStudentId("code_submission"); + codeSubmission2.setSubmissionId("code_submission"); + codeSubmission2.setTeacherComment("42"); + codeSubmission2.setTime(0.5d); + + CodeSubmission codeSubmission3 = new CodeSubmission(); + codeSubmission3.setCasePoints(-0.5d); + codeSubmission3.setCaseTotal(-0.5d); + codeSubmission3.setCurrentTestcase(0); + codeSubmission3.setDateGrade("code_submission"); + codeSubmission3.setDateSubmit("code_submission"); + codeSubmission3.setError("42"); + codeSubmission3.setExerciseId("Exercise Id"); + codeSubmission3.setJudgeService(new JudgeImpl()); + codeSubmission3.setJudgedOn("Judged On"); + codeSubmission3.setLanguageId("42"); + codeSubmission3.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission3.setMemory(0); + codeSubmission3.setPretested(true); + codeSubmission3.setResult("Result"); + codeSubmission3.setReviewable(true); + codeSubmission3.setScore(-0.5f); + codeSubmission3.setSource("Source"); + codeSubmission3.setStatus("Status"); + codeSubmission3.setStudentId("Student Id"); + codeSubmission3.setSubmissionId("Submission Id"); + codeSubmission3.setTeacherComment("Teacher Comment"); + codeSubmission3.setTime(-0.5d); + + CodeSubmission codeSubmission4 = new CodeSubmission(); + codeSubmission4.setCasePoints(10.0d); + codeSubmission4.setCaseTotal(10.0d); + codeSubmission4.setCurrentTestcase(1); + codeSubmission4.setDateGrade("2020-03-01"); + codeSubmission4.setDateSubmit("2020-03-01"); + codeSubmission4.setError("An error occurred"); + codeSubmission4.setExerciseId("42"); + codeSubmission4.setJudgeService(new JudgeImpl()); + codeSubmission4.setJudgedOn("code_submission"); + codeSubmission4.setLanguageId("en"); + codeSubmission4.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission4.setMemory(1); + codeSubmission4.setPretested(false); + codeSubmission4.setResult("code_submission"); + codeSubmission4.setReviewable(false); + codeSubmission4.setScore(10.0f); + codeSubmission4.setSource("code_submission"); + codeSubmission4.setStatus("code_submission"); + codeSubmission4.setStudentId("42"); + codeSubmission4.setSubmissionId("42"); + codeSubmission4.setTeacherComment("code_submission"); + codeSubmission4.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission4); + codeSubmissionList.add(codeSubmission3); + codeSubmissionList.add(codeSubmission2); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + CodeSubmission actualLastCodeSubmissionByUserId = codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmissionRepository).findAll(); + assertSame(codeSubmission4, actualLastCodeSubmissionByUserId); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId7() { + // Arrange + CodeSubmission codeSubmission = mock(CodeSubmission.class); + when(codeSubmission.isPretested()).thenThrow(new NoSuchElementException("foo")); + when(codeSubmission.getStudentId()).thenReturn("42"); + when(codeSubmission.getExerciseId()).thenReturn("42"); + when(codeSubmission.getSubmissionId()).thenReturn("42"); + doNothing().when(codeSubmission).setCasePoints(Mockito.any()); + doNothing().when(codeSubmission).setCaseTotal(Mockito.any()); + doNothing().when(codeSubmission).setCurrentTestcase(Mockito.any()); + doNothing().when(codeSubmission).setError(Mockito.any()); + doNothing().when(codeSubmission).setJudgeService(Mockito.any()); + doNothing().when(codeSubmission).setJudgedOn(Mockito.any()); + doNothing().when(codeSubmission).setLanguageId(Mockito.any()); + doNothing().when(codeSubmission).setLockedAfter(Mockito.any()); + doNothing().when(codeSubmission).setMemory(Mockito.any()); + doNothing().when(codeSubmission).setPretested(anyBoolean()); + doNothing().when(codeSubmission).setResult(Mockito.any()); + doNothing().when(codeSubmission).setSource(Mockito.any()); + doNothing().when(codeSubmission).setStatus(Mockito.any()); + doNothing().when(codeSubmission).setTime(Mockito.any()); + doNothing().when(codeSubmission).setDateGrade(Mockito.any()); + doNothing().when(codeSubmission).setDateSubmit(Mockito.any()); + doNothing().when(codeSubmission).setExerciseId(Mockito.any()); + doNothing().when(codeSubmission).setReviewable(anyBoolean()); + doNothing().when(codeSubmission).setScore(Mockito.any()); + doNothing().when(codeSubmission).setStudentId(Mockito.any()); + doNothing().when(codeSubmission).setSubmissionId(Mockito.any()); + doNothing().when(codeSubmission).setTeacherComment(Mockito.any()); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42")); + verify(codeSubmission).isPretested(); + verify(codeSubmission).setCasePoints(isA(Double.class)); + verify(codeSubmission).setCaseTotal(isA(Double.class)); + verify(codeSubmission).setCurrentTestcase(isA(Integer.class)); + verify(codeSubmission).setError(eq("An error occurred")); + verify(codeSubmission).setJudgeService(isA(JudgeService.class)); + verify(codeSubmission).setJudgedOn(eq("Judged On")); + verify(codeSubmission).setLanguageId(eq("en")); + verify(codeSubmission).setLockedAfter(isA(LocalDateTime.class)); + verify(codeSubmission).setMemory(isA(Integer.class)); + verify(codeSubmission).setPretested(eq(true)); + verify(codeSubmission).setResult(eq("Result")); + verify(codeSubmission).setSource(eq("Source")); + verify(codeSubmission).setStatus(eq("Status")); + verify(codeSubmission).setTime(isA(Double.class)); + verify(codeSubmission).getExerciseId(); + verify(codeSubmission).getStudentId(); + verify(codeSubmission).getSubmissionId(); + verify(codeSubmission).setDateGrade(eq("2020-03-01")); + verify(codeSubmission).setDateSubmit(eq("2020-03-01")); + verify(codeSubmission).setExerciseId(eq("42")); + verify(codeSubmission).setReviewable(eq(true)); + verify(codeSubmission).setScore(isA(Float.class)); + verify(codeSubmission).setStudentId(eq("42")); + verify(codeSubmission).setSubmissionId(eq("42")); + verify(codeSubmission).setTeacherComment(eq("Teacher Comment")); + verify(codeSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link CodeSubmissionImpl#getLastCodeSubmissionByUserId(String, String)} + */ + @Test + void testGetLastCodeSubmissionByUserId8() { + // Arrange + CodeSubmission codeSubmission = mock(CodeSubmission.class); + when(codeSubmission.getStudentId()).thenReturn("code_submission"); + when(codeSubmission.getExerciseId()).thenReturn("42"); + when(codeSubmission.getSubmissionId()).thenReturn("42"); + doNothing().when(codeSubmission).setCasePoints(Mockito.any()); + doNothing().when(codeSubmission).setCaseTotal(Mockito.any()); + doNothing().when(codeSubmission).setCurrentTestcase(Mockito.any()); + doNothing().when(codeSubmission).setError(Mockito.any()); + doNothing().when(codeSubmission).setJudgeService(Mockito.any()); + doNothing().when(codeSubmission).setJudgedOn(Mockito.any()); + doNothing().when(codeSubmission).setLanguageId(Mockito.any()); + doNothing().when(codeSubmission).setLockedAfter(Mockito.any()); + doNothing().when(codeSubmission).setMemory(Mockito.any()); + doNothing().when(codeSubmission).setPretested(anyBoolean()); + doNothing().when(codeSubmission).setResult(Mockito.any()); + doNothing().when(codeSubmission).setSource(Mockito.any()); + doNothing().when(codeSubmission).setStatus(Mockito.any()); + doNothing().when(codeSubmission).setTime(Mockito.any()); + doNothing().when(codeSubmission).setDateGrade(Mockito.any()); + doNothing().when(codeSubmission).setDateSubmit(Mockito.any()); + doNothing().when(codeSubmission).setExerciseId(Mockito.any()); + doNothing().when(codeSubmission).setReviewable(anyBoolean()); + doNothing().when(codeSubmission).setScore(Mockito.any()); + doNothing().when(codeSubmission).setStudentId(Mockito.any()); + doNothing().when(codeSubmission).setSubmissionId(Mockito.any()); + doNothing().when(codeSubmission).setTeacherComment(Mockito.any()); + codeSubmission.setCasePoints(10.0d); + codeSubmission.setCaseTotal(10.0d); + codeSubmission.setCurrentTestcase(1); + codeSubmission.setDateGrade("2020-03-01"); + codeSubmission.setDateSubmit("2020-03-01"); + codeSubmission.setError("An error occurred"); + codeSubmission.setExerciseId("42"); + codeSubmission.setJudgeService(new JudgeImpl()); + codeSubmission.setJudgedOn("Judged On"); + codeSubmission.setLanguageId("en"); + codeSubmission.setLockedAfter(LocalDate.of(1970, 1, 1).atStartOfDay()); + codeSubmission.setMemory(1); + codeSubmission.setPretested(true); + codeSubmission.setResult("Result"); + codeSubmission.setReviewable(true); + codeSubmission.setScore(10.0f); + codeSubmission.setSource("Source"); + codeSubmission.setStatus("Status"); + codeSubmission.setStudentId("42"); + codeSubmission.setSubmissionId("42"); + codeSubmission.setTeacherComment("Teacher Comment"); + codeSubmission.setTime(10.0d); + + ArrayList codeSubmissionList = new ArrayList<>(); + codeSubmissionList.add(codeSubmission); + when(codeSubmissionRepository.findAll()).thenReturn(codeSubmissionList); + + // Act + CodeSubmission actualLastCodeSubmissionByUserId = codeSubmissionImpl.getLastCodeSubmissionByUserId("42", "42"); + + // Assert + verify(codeSubmission).setCasePoints(isA(Double.class)); + verify(codeSubmission).setCaseTotal(isA(Double.class)); + verify(codeSubmission).setCurrentTestcase(isA(Integer.class)); + verify(codeSubmission).setError(eq("An error occurred")); + verify(codeSubmission).setJudgeService(isA(JudgeService.class)); + verify(codeSubmission).setJudgedOn(eq("Judged On")); + verify(codeSubmission).setLanguageId(eq("en")); + verify(codeSubmission).setLockedAfter(isA(LocalDateTime.class)); + verify(codeSubmission).setMemory(isA(Integer.class)); + verify(codeSubmission).setPretested(eq(true)); + verify(codeSubmission).setResult(eq("Result")); + verify(codeSubmission).setSource(eq("Source")); + verify(codeSubmission).setStatus(eq("Status")); + verify(codeSubmission).setTime(isA(Double.class)); + verify(codeSubmission).getExerciseId(); + verify(codeSubmission).getStudentId(); + verify(codeSubmission).getSubmissionId(); + verify(codeSubmission).setDateGrade(eq("2020-03-01")); + verify(codeSubmission).setDateSubmit(eq("2020-03-01")); + verify(codeSubmission).setExerciseId(eq("42")); + verify(codeSubmission).setReviewable(eq(true)); + verify(codeSubmission).setScore(isA(Float.class)); + verify(codeSubmission).setStudentId(eq("42")); + verify(codeSubmission).setSubmissionId(eq("42")); + verify(codeSubmission).setTeacherComment(eq("Teacher Comment")); + verify(codeSubmissionRepository).findAll(); + assertNull(actualLastCodeSubmissionByUserId); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/submission/EssaySubmissionImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/submission/EssaySubmissionImplDiffblueTest.java new file mode 100644 index 00000000..11ea0e52 --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/submission/EssaySubmissionImplDiffblueTest.java @@ -0,0 +1,1298 @@ +package com.example.codeE.service.exercise.submission; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.EssaySubmission; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.EssaySubmissionRepository; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.exercise.essay.CreateEssaySubmissionRequest; +import com.example.codeE.request.exercise.essay.EssaySubmissionsResponse; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {EssaySubmissionImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class EssaySubmissionImplDiffblueTest { + @Autowired + private EssaySubmissionImpl essaySubmissionImpl; + + @MockBean + private EssaySubmissionRepository essaySubmissionRepository; + + @MockBean + private ExerciseRepository exerciseRepository; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: + * {@link EssaySubmissionImpl#createSubmission(CreateEssaySubmissionRequest)} + */ + @Test + void testCreateSubmission() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + when(essaySubmissionRepository.save(Mockito.any())).thenReturn(essaySubmission); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + EssaySubmission actualCreateSubmissionResult = essaySubmissionImpl + .createSubmission(new CreateEssaySubmissionRequest("42", "42", "Submission")); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(essaySubmissionRepository).save(isA(EssaySubmission.class)); + assertSame(essaySubmission, actualCreateSubmissionResult); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#createSubmission(CreateEssaySubmissionRequest)} + */ + @Test + void testCreateSubmission2() { + // Arrange + when(essaySubmissionRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act and Assert + assertThrows(IllegalArgumentException.class, + () -> essaySubmissionImpl.createSubmission(new CreateEssaySubmissionRequest("42", "42", "Submission"))); + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(essaySubmissionRepository).save(isA(EssaySubmission.class)); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#createSubmission(CreateEssaySubmissionRequest)} + */ + @Test + void testCreateSubmission3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, + () -> essaySubmissionImpl.createSubmission(new CreateEssaySubmissionRequest("42", "42", "Submission"))); + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#createSubmission(CreateEssaySubmissionRequest)} + */ + @Test + void testCreateSubmission4() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, + () -> essaySubmissionImpl.createSubmission(new CreateEssaySubmissionRequest("42", "42", "Submission"))); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionByExerciseId() { + // Arrange + when(essaySubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualEssaySubmissionByExerciseId = essaySubmissionImpl.getEssaySubmissionByExerciseId("42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertTrue(actualEssaySubmissionByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionByExerciseId2() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + List actualEssaySubmissionByExerciseId = essaySubmissionImpl.getEssaySubmissionByExerciseId("42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertEquals(1, actualEssaySubmissionByExerciseId.size()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionByExerciseId3() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + EssaySubmission essaySubmission2 = new EssaySubmission(); + essaySubmission2.setDateGrade("2020/03/01"); + essaySubmission2.setDateSubmit("2020/03/01"); + essaySubmission2.setExerciseId("Exercise Id"); + essaySubmission2.setReviewable(false); + essaySubmission2.setScore(0.5f); + essaySubmission2.setStudentId("Student Id"); + essaySubmission2.setSubmission("Submission"); + essaySubmission2.setSubmissionId("Submission Id"); + essaySubmission2.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission2); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + List actualEssaySubmissionByExerciseId = essaySubmissionImpl.getEssaySubmissionByExerciseId("42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertEquals(1, actualEssaySubmissionByExerciseId.size()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionByExerciseId4() { + // Arrange + when(essaySubmissionRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> essaySubmissionImpl.getEssaySubmissionByExerciseId("42")); + verify(essaySubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionsByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionsByExerciseId() { + // Arrange + when(essaySubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualEssaySubmissionsByExerciseId = essaySubmissionImpl + .getEssaySubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(essaySubmissionRepository).findAll(); + assertTrue(actualEssaySubmissionsByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionsByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionsByExerciseId2() { + // Arrange + when(essaySubmissionRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> essaySubmissionImpl.getEssaySubmissionsByExerciseId("42")); + verify(exerciseRepository).findById(eq("42")); + verify(essaySubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionsByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionsByExerciseId3() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + List actualEssaySubmissionsByExerciseId = essaySubmissionImpl + .getEssaySubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(essaySubmissionRepository).findAll(); + assertEquals(1, actualEssaySubmissionsByExerciseId.size()); + User student = actualEssaySubmissionsByExerciseId.get(0).getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionsByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionsByExerciseId4() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + EssaySubmission essaySubmission2 = new EssaySubmission(); + essaySubmission2.setDateGrade("2020/03/01"); + essaySubmission2.setDateSubmit("2020/03/01"); + essaySubmission2.setExerciseId("Exercise Id"); + essaySubmission2.setReviewable(false); + essaySubmission2.setScore(0.5f); + essaySubmission2.setStudentId("Student Id"); + essaySubmission2.setSubmission("Submission"); + essaySubmission2.setSubmissionId("Submission Id"); + essaySubmission2.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission2); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act + List actualEssaySubmissionsByExerciseId = essaySubmissionImpl + .getEssaySubmissionsByExerciseId("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(essaySubmissionRepository).findAll(); + assertEquals(1, actualEssaySubmissionsByExerciseId.size()); + User student = actualEssaySubmissionsByExerciseId.get(0).getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionsByExerciseId(String)} + */ + @Test + void testGetEssaySubmissionsByExerciseId5() { + // Arrange + EssaySubmission essaySubmission = mock(EssaySubmission.class); + doNothing().when(essaySubmission).setSubmission(Mockito.any()); + doNothing().when(essaySubmission).setDateGrade(Mockito.any()); + doNothing().when(essaySubmission).setDateSubmit(Mockito.any()); + doNothing().when(essaySubmission).setExerciseId(Mockito.any()); + doNothing().when(essaySubmission).setReviewable(anyBoolean()); + doNothing().when(essaySubmission).setScore(Mockito.any()); + doNothing().when(essaySubmission).setStudentId(Mockito.any()); + doNothing().when(essaySubmission).setSubmissionId(Mockito.any()); + doNothing().when(essaySubmission).setTeacherComment(Mockito.any()); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission); + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> essaySubmissionImpl.getEssaySubmissionsByExerciseId("42")); + verify(essaySubmission).setSubmission(eq("Submission")); + verify(essaySubmission).setDateGrade(eq("2020-03-01")); + verify(essaySubmission).setDateSubmit(eq("2020-03-01")); + verify(essaySubmission).setExerciseId(eq("42")); + verify(essaySubmission).setReviewable(eq(true)); + verify(essaySubmission).setScore(isA(Float.class)); + verify(essaySubmission).setStudentId(eq("42")); + verify(essaySubmission).setSubmissionId(eq("42")); + verify(essaySubmission).setTeacherComment(eq("Teacher Comment")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link EssaySubmissionImpl#getEssaySubmission(String)} + */ + @Test + void testGetEssaySubmission() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(essaySubmission); + when(essaySubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult2 = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult2); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act + EssaySubmissionsResponse actualEssaySubmission = essaySubmissionImpl.getEssaySubmission("42"); + + // Assert + verify(userRepository).findUserByUserId(eq("42")); + verify(essaySubmissionRepository).findById(eq("42")); + verify(exerciseRepository).findById(eq("42")); + User student = actualEssaySubmission.getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link EssaySubmissionImpl#getEssaySubmission(String)} + */ + @Test + void testGetEssaySubmission2() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(essaySubmission); + when(essaySubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult2 = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult2); + when(userRepository.findUserByUserId(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> essaySubmissionImpl.getEssaySubmission("42")); + verify(userRepository).findUserByUserId(eq("42")); + verify(essaySubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: {@link EssaySubmissionImpl#getEssaySubmission(String)} + */ + @Test + void testGetEssaySubmission3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(essaySubmissionRepository.findById(Mockito.any())).thenReturn(emptyResult); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> essaySubmissionImpl.getEssaySubmission("42")); + verify(essaySubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: {@link EssaySubmissionImpl#getEssaySubmission(String)} + */ + @Test + void testGetEssaySubmission4() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(essaySubmission); + when(essaySubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> essaySubmissionImpl.getEssaySubmission("42")); + verify(userRepository).findUserByUserId(eq("42")); + verify(essaySubmissionRepository).findById(eq("42")); + verify(exerciseRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetEssaySubmissionByUserId() { + // Arrange + when(essaySubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualEssaySubmissionByUserId = essaySubmissionImpl.getEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertTrue(actualEssaySubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetEssaySubmissionByUserId2() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + List actualEssaySubmissionByUserId = essaySubmissionImpl.getEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertEquals(1, actualEssaySubmissionByUserId.size()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetEssaySubmissionByUserId3() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + EssaySubmission essaySubmission2 = new EssaySubmission(); + essaySubmission2.setDateGrade("2020/03/01"); + essaySubmission2.setDateSubmit("2020/03/01"); + essaySubmission2.setExerciseId("Exercise Id"); + essaySubmission2.setReviewable(false); + essaySubmission2.setScore(0.5f); + essaySubmission2.setStudentId("Student Id"); + essaySubmission2.setSubmission("Submission"); + essaySubmission2.setSubmissionId("Submission Id"); + essaySubmission2.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission2); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + List actualEssaySubmissionByUserId = essaySubmissionImpl.getEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertEquals(1, actualEssaySubmissionByUserId.size()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetEssaySubmissionByUserId4() { + // Arrange + when(essaySubmissionRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> essaySubmissionImpl.getEssaySubmissionByUserId("42", "42")); + verify(essaySubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetEssaySubmissionByUserId5() { + // Arrange + EssaySubmission essaySubmission = mock(EssaySubmission.class); + when(essaySubmission.getStudentId()).thenReturn("foo"); + when(essaySubmission.getExerciseId()).thenReturn("42"); + doNothing().when(essaySubmission).setSubmission(Mockito.any()); + doNothing().when(essaySubmission).setDateGrade(Mockito.any()); + doNothing().when(essaySubmission).setDateSubmit(Mockito.any()); + doNothing().when(essaySubmission).setExerciseId(Mockito.any()); + doNothing().when(essaySubmission).setReviewable(anyBoolean()); + doNothing().when(essaySubmission).setScore(Mockito.any()); + doNothing().when(essaySubmission).setStudentId(Mockito.any()); + doNothing().when(essaySubmission).setSubmissionId(Mockito.any()); + doNothing().when(essaySubmission).setTeacherComment(Mockito.any()); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + List actualEssaySubmissionByUserId = essaySubmissionImpl.getEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmission).setSubmission(eq("Submission")); + verify(essaySubmission).getExerciseId(); + verify(essaySubmission).getStudentId(); + verify(essaySubmission).setDateGrade(eq("2020-03-01")); + verify(essaySubmission).setDateSubmit(eq("2020-03-01")); + verify(essaySubmission).setExerciseId(eq("42")); + verify(essaySubmission).setReviewable(eq(true)); + verify(essaySubmission).setScore(isA(Float.class)); + verify(essaySubmission).setStudentId(eq("42")); + verify(essaySubmission).setSubmissionId(eq("42")); + verify(essaySubmission).setTeacherComment(eq("Teacher Comment")); + verify(essaySubmissionRepository).findAll(); + assertTrue(actualEssaySubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getLastEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetLastEssaySubmissionByUserId() { + // Arrange + when(essaySubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + EssaySubmission actualLastEssaySubmissionByUserId = essaySubmissionImpl.getLastEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertNull(actualLastEssaySubmissionByUserId); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getLastEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetLastEssaySubmissionByUserId2() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + EssaySubmission actualLastEssaySubmissionByUserId = essaySubmissionImpl.getLastEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertSame(essaySubmission, actualLastEssaySubmissionByUserId); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getLastEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetLastEssaySubmissionByUserId3() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + EssaySubmission essaySubmission2 = new EssaySubmission(); + essaySubmission2.setDateGrade("2020/03/01"); + essaySubmission2.setDateSubmit("2020/03/01"); + essaySubmission2.setExerciseId("Exercise Id"); + essaySubmission2.setReviewable(false); + essaySubmission2.setScore(0.5f); + essaySubmission2.setStudentId("Student Id"); + essaySubmission2.setSubmission("Submission"); + essaySubmission2.setSubmissionId("Submission Id"); + essaySubmission2.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission2); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + EssaySubmission actualLastEssaySubmissionByUserId = essaySubmissionImpl.getLastEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmissionRepository).findAll(); + assertSame(essaySubmission, actualLastEssaySubmissionByUserId); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getLastEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetLastEssaySubmissionByUserId4() { + // Arrange + when(essaySubmissionRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> essaySubmissionImpl.getLastEssaySubmissionByUserId("42", "42")); + verify(essaySubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getLastEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetLastEssaySubmissionByUserId5() { + // Arrange + EssaySubmission essaySubmission = mock(EssaySubmission.class); + when(essaySubmission.getDateSubmit()).thenReturn("2020-03-01"); + when(essaySubmission.getStudentId()).thenReturn("42"); + when(essaySubmission.getExerciseId()).thenReturn("42"); + doNothing().when(essaySubmission).setSubmission(Mockito.any()); + doNothing().when(essaySubmission).setDateGrade(Mockito.any()); + doNothing().when(essaySubmission).setDateSubmit(Mockito.any()); + doNothing().when(essaySubmission).setExerciseId(Mockito.any()); + doNothing().when(essaySubmission).setReviewable(anyBoolean()); + doNothing().when(essaySubmission).setScore(Mockito.any()); + doNothing().when(essaySubmission).setStudentId(Mockito.any()); + doNothing().when(essaySubmission).setSubmissionId(Mockito.any()); + doNothing().when(essaySubmission).setTeacherComment(Mockito.any()); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + + EssaySubmission essaySubmission2 = new EssaySubmission(); + essaySubmission2.setDateGrade("2020-03-01"); + essaySubmission2.setDateSubmit("2020-03-01"); + essaySubmission2.setExerciseId("42"); + essaySubmission2.setReviewable(false); + essaySubmission2.setScore(10.0f); + essaySubmission2.setStudentId("42"); + essaySubmission2.setSubmission("Submission"); + essaySubmission2.setSubmissionId("42"); + essaySubmission2.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission2); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + essaySubmissionImpl.getLastEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmission).setSubmission(eq("Submission")); + verify(essaySubmission).getDateSubmit(); + verify(essaySubmission).getExerciseId(); + verify(essaySubmission).getStudentId(); + verify(essaySubmission).setDateGrade(eq("2020-03-01")); + verify(essaySubmission).setDateSubmit(eq("2020-03-01")); + verify(essaySubmission).setExerciseId(eq("42")); + verify(essaySubmission).setReviewable(eq(true)); + verify(essaySubmission).setScore(isA(Float.class)); + verify(essaySubmission).setStudentId(eq("42")); + verify(essaySubmission).setSubmissionId(eq("42")); + verify(essaySubmission).setTeacherComment(eq("Teacher Comment")); + verify(essaySubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link EssaySubmissionImpl#getLastEssaySubmissionByUserId(String, String)} + */ + @Test + void testGetLastEssaySubmissionByUserId6() { + // Arrange + EssaySubmission essaySubmission = mock(EssaySubmission.class); + when(essaySubmission.getStudentId()).thenReturn("42"); + when(essaySubmission.getExerciseId()).thenReturn("42"); + doNothing().when(essaySubmission).setSubmission(Mockito.any()); + doNothing().when(essaySubmission).setDateGrade(Mockito.any()); + doNothing().when(essaySubmission).setDateSubmit(Mockito.any()); + doNothing().when(essaySubmission).setExerciseId(Mockito.any()); + doNothing().when(essaySubmission).setReviewable(anyBoolean()); + doNothing().when(essaySubmission).setScore(Mockito.any()); + doNothing().when(essaySubmission).setStudentId(Mockito.any()); + doNothing().when(essaySubmission).setSubmissionId(Mockito.any()); + doNothing().when(essaySubmission).setTeacherComment(Mockito.any()); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + EssaySubmission essaySubmission2 = mock(EssaySubmission.class); + when(essaySubmission2.getStudentId()).thenReturn("foo"); + when(essaySubmission2.getExerciseId()).thenReturn("42"); + doNothing().when(essaySubmission2).setSubmission(Mockito.any()); + doNothing().when(essaySubmission2).setDateGrade(Mockito.any()); + doNothing().when(essaySubmission2).setDateSubmit(Mockito.any()); + doNothing().when(essaySubmission2).setExerciseId(Mockito.any()); + doNothing().when(essaySubmission2).setReviewable(anyBoolean()); + doNothing().when(essaySubmission2).setScore(Mockito.any()); + doNothing().when(essaySubmission2).setStudentId(Mockito.any()); + doNothing().when(essaySubmission2).setSubmissionId(Mockito.any()); + doNothing().when(essaySubmission2).setTeacherComment(Mockito.any()); + essaySubmission2.setDateGrade("2020-03-01"); + essaySubmission2.setDateSubmit("2020-03-01"); + essaySubmission2.setExerciseId("42"); + essaySubmission2.setReviewable(false); + essaySubmission2.setScore(10.0f); + essaySubmission2.setStudentId("42"); + essaySubmission2.setSubmission("Submission"); + essaySubmission2.setSubmissionId("42"); + essaySubmission2.setTeacherComment("Teacher Comment"); + + ArrayList essaySubmissionList = new ArrayList<>(); + essaySubmissionList.add(essaySubmission2); + essaySubmissionList.add(essaySubmission); + when(essaySubmissionRepository.findAll()).thenReturn(essaySubmissionList); + + // Act + essaySubmissionImpl.getLastEssaySubmissionByUserId("42", "42"); + + // Assert + verify(essaySubmission2).setSubmission(eq("Submission")); + verify(essaySubmission).setSubmission(eq("Submission")); + verify(essaySubmission2).getExerciseId(); + verify(essaySubmission).getExerciseId(); + verify(essaySubmission2).getStudentId(); + verify(essaySubmission).getStudentId(); + verify(essaySubmission2).setDateGrade(eq("2020-03-01")); + verify(essaySubmission).setDateGrade(eq("2020-03-01")); + verify(essaySubmission2).setDateSubmit(eq("2020-03-01")); + verify(essaySubmission).setDateSubmit(eq("2020-03-01")); + verify(essaySubmission2).setExerciseId(eq("42")); + verify(essaySubmission).setExerciseId(eq("42")); + verify(essaySubmission2).setReviewable(eq(false)); + verify(essaySubmission).setReviewable(eq(true)); + verify(essaySubmission2).setScore(isA(Float.class)); + verify(essaySubmission).setScore(isA(Float.class)); + verify(essaySubmission2).setStudentId(eq("42")); + verify(essaySubmission).setStudentId(eq("42")); + verify(essaySubmission2).setSubmissionId(eq("42")); + verify(essaySubmission).setSubmissionId(eq("42")); + verify(essaySubmission2).setTeacherComment(eq("Teacher Comment")); + verify(essaySubmission).setTeacherComment(eq("Teacher Comment")); + verify(essaySubmissionRepository).findAll(); + } + + /** + * Method under test: {@link EssaySubmissionImpl#gradeSubmission(String, float)} + */ + @Test + void testGradeSubmission() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(essaySubmission); + + EssaySubmission essaySubmission2 = new EssaySubmission(); + essaySubmission2.setDateGrade("2020-03-01"); + essaySubmission2.setDateSubmit("2020-03-01"); + essaySubmission2.setExerciseId("42"); + essaySubmission2.setReviewable(true); + essaySubmission2.setScore(10.0f); + essaySubmission2.setStudentId("42"); + essaySubmission2.setSubmission("Submission"); + essaySubmission2.setSubmissionId("42"); + essaySubmission2.setTeacherComment("Teacher Comment"); + when(essaySubmissionRepository.save(Mockito.any())).thenReturn(essaySubmission2); + when(essaySubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + EssaySubmission actualGradeSubmissionResult = essaySubmissionImpl.gradeSubmission("42", 10.0f); + + // Assert + verify(essaySubmissionRepository).findById(eq("42")); + verify(essaySubmissionRepository).save(isA(EssaySubmission.class)); + assertEquals(10.0f, actualGradeSubmissionResult.getScore().floatValue()); + assertSame(essaySubmission, actualGradeSubmissionResult); + } + + /** + * Method under test: {@link EssaySubmissionImpl#gradeSubmission(String, float)} + */ + @Test + void testGradeSubmission2() { + // Arrange + EssaySubmission essaySubmission = new EssaySubmission(); + essaySubmission.setDateGrade("2020-03-01"); + essaySubmission.setDateSubmit("2020-03-01"); + essaySubmission.setExerciseId("42"); + essaySubmission.setReviewable(true); + essaySubmission.setScore(10.0f); + essaySubmission.setStudentId("42"); + essaySubmission.setSubmission("Submission"); + essaySubmission.setSubmissionId("42"); + essaySubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(essaySubmission); + when(essaySubmissionRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + when(essaySubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> essaySubmissionImpl.gradeSubmission("42", 10.0f)); + verify(essaySubmissionRepository).findById(eq("42")); + verify(essaySubmissionRepository).save(isA(EssaySubmission.class)); + } + + /** + * Method under test: {@link EssaySubmissionImpl#gradeSubmission(String, float)} + */ + @Test + void testGradeSubmission3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(essaySubmissionRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> essaySubmissionImpl.gradeSubmission("42", 10.0f)); + verify(essaySubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: {@link EssaySubmissionImpl#gradeSubmission(String, float)} + */ + @Test + void testGradeSubmission4() { + // Arrange, Act and Assert + assertThrows(IllegalArgumentException.class, () -> essaySubmissionImpl.gradeSubmission("42", -1.0f)); + } +} diff --git a/src/test/java/com/example/codeE/service/exercise/submission/FileSubmissionImplDiffblueTest.java b/src/test/java/com/example/codeE/service/exercise/submission/FileSubmissionImplDiffblueTest.java new file mode 100644 index 00000000..409039bd --- /dev/null +++ b/src/test/java/com/example/codeE/service/exercise/submission/FileSubmissionImplDiffblueTest.java @@ -0,0 +1,892 @@ +package com.example.codeE.service.exercise.submission; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.helper.CloudStorageHelper; +import com.example.codeE.model.course.Course; +import com.example.codeE.model.exercise.Exercise; +import com.example.codeE.model.exercise.FileSubmission; +import com.example.codeE.model.topic.Topic; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.ExerciseRepository; +import com.example.codeE.repository.FileSubmissionRepository; +import com.example.codeE.repository.TopicRepository; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.exercise.file.CreateFileSubmissionRequest; +import com.example.codeE.request.exercise.file.response.FileSubmissionsResponse; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {FileSubmissionImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class FileSubmissionImplDiffblueTest { + @MockBean + private CloudStorageHelper cloudStorageHelper; + + @MockBean + private ExerciseRepository exerciseRepository; + + @Autowired + private FileSubmissionImpl fileSubmissionImpl; + + @MockBean + private FileSubmissionRepository fileSubmissionRepository; + + @MockBean + private TopicRepository topicRepository; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: + * {@link FileSubmissionImpl#createSubmission(CreateFileSubmissionRequest, MultipartFile)} + */ + @Test + void testCreateSubmission() throws Exception { + // Arrange + when(cloudStorageHelper.uploadFile(Mockito.any(), anyBoolean(), Mockito.any())) + .thenReturn("Upload File"); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + when(fileSubmissionRepository.save(Mockito.any())).thenReturn(fileSubmission); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult2); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult3 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult3); + CreateFileSubmissionRequest createRequest = new CreateFileSubmissionRequest("42", "42", + "https://example.org/example"); + + // Act + FileSubmission actualCreateSubmissionResult = fileSubmissionImpl.createSubmission(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Assert + verify(cloudStorageHelper).uploadFile(isA(MultipartFile.class), eq(true), eq("file-submissions/42/42/")); + verify(exerciseRepository).findById(eq("42")); + verify(topicRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(fileSubmissionRepository).save(isA(FileSubmission.class)); + assertEquals("Upload File", createRequest.getUrl()); + assertSame(fileSubmission, actualCreateSubmissionResult); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#createSubmission(CreateFileSubmissionRequest, MultipartFile)} + */ + @Test + void testCreateSubmission2() throws Exception { + // Arrange + when(cloudStorageHelper.uploadFile(Mockito.any(), anyBoolean(), Mockito.any())) + .thenReturn("Upload File"); + + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(fileSubmissionRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult2); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult3 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult3); + CreateFileSubmissionRequest createRequest = new CreateFileSubmissionRequest("42", "42", + "https://example.org/example"); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> fileSubmissionImpl.createSubmission(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))))); + verify(cloudStorageHelper).uploadFile(isA(MultipartFile.class), eq(true), eq("file-submissions/42/42/")); + verify(exerciseRepository).findById(eq("42")); + verify(topicRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + verify(fileSubmissionRepository).save(isA(FileSubmission.class)); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#createSubmission(CreateFileSubmissionRequest, MultipartFile)} + */ + @Test + void testCreateSubmission3() throws IOException { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + CreateFileSubmissionRequest createRequest = new CreateFileSubmissionRequest("42", "42", + "https://example.org/example"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> fileSubmissionImpl.createSubmission(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))))); + verify(exerciseRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#createSubmission(CreateFileSubmissionRequest, MultipartFile)} + */ + @Test + void testCreateSubmission4() throws IOException { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + CreateFileSubmissionRequest createRequest = new CreateFileSubmissionRequest("42", "42", + "https://example.org/example"); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> fileSubmissionImpl.createSubmission(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))))); + verify(exerciseRepository).findById(eq("42")); + verify(topicRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionsByExerciseId(String)} + */ + @Test + void testGetFileSubmissionsByExerciseId() { + // Arrange + when(fileSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualFileSubmissionsByExerciseId = fileSubmissionImpl + .getFileSubmissionsByExerciseId("42"); + + // Assert + verify(fileSubmissionRepository).findAll(); + assertTrue(actualFileSubmissionsByExerciseId.isEmpty()); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionsByExerciseId(String)} + */ + @Test + void testGetFileSubmissionsByExerciseId2() { + // Arrange + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + + ArrayList fileSubmissionList = new ArrayList<>(); + fileSubmissionList.add(fileSubmission); + when(fileSubmissionRepository.findAll()).thenReturn(fileSubmissionList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualFileSubmissionsByExerciseId = fileSubmissionImpl + .getFileSubmissionsByExerciseId("42"); + + // Assert + verify(userRepository).findById(eq("42")); + verify(fileSubmissionRepository).findAll(); + assertEquals(1, actualFileSubmissionsByExerciseId.size()); + User student = actualFileSubmissionsByExerciseId.get(0).getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionsByExerciseId(String)} + */ + @Test + void testGetFileSubmissionsByExerciseId3() { + // Arrange + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + + FileSubmission fileSubmission2 = new FileSubmission(); + fileSubmission2.setDateGrade("2020/03/01"); + fileSubmission2.setDateSubmit("2020/03/01"); + fileSubmission2.setExerciseId("Exercise Id"); + fileSubmission2.setFileUrl("42"); + fileSubmission2.setReviewable(false); + fileSubmission2.setScore(0.5f); + fileSubmission2.setStudentId("Student Id"); + fileSubmission2.setSubmissionId("Submission Id"); + fileSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList fileSubmissionList = new ArrayList<>(); + fileSubmissionList.add(fileSubmission2); + fileSubmissionList.add(fileSubmission); + when(fileSubmissionRepository.findAll()).thenReturn(fileSubmissionList); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + List actualFileSubmissionsByExerciseId = fileSubmissionImpl + .getFileSubmissionsByExerciseId("42"); + + // Assert + verify(userRepository).findById(eq("42")); + verify(fileSubmissionRepository).findAll(); + assertEquals(1, actualFileSubmissionsByExerciseId.size()); + User student = actualFileSubmissionsByExerciseId.get(0).getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link FileSubmissionImpl#getFileSubmissionById(String)} + */ + @Test + void testGetFileSubmissionById() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + Optional ofResult2 = Optional.of(fileSubmission); + when(fileSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult2); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult3 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult3); + + // Act + FileSubmissionsResponse actualFileSubmissionById = fileSubmissionImpl.getFileSubmissionById("42"); + + // Assert + verify(exerciseRepository).findById(eq("42")); + verify(fileSubmissionRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + User student = actualFileSubmissionById.getStudent(); + LocalTime expectedToLocalTimeResult = student.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, student.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link FileSubmissionImpl#getFileSubmissionById(String)} + */ + @Test + void testGetFileSubmissionById2() { + // Arrange + when(exerciseRepository.findById(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(fileSubmission); + when(fileSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> fileSubmissionImpl.getFileSubmissionById("42")); + verify(exerciseRepository).findById(eq("42")); + verify(fileSubmissionRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link FileSubmissionImpl#getFileSubmissionById(String)} + */ + @Test + void testGetFileSubmissionById3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(exerciseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + Optional ofResult = Optional.of(fileSubmission); + when(fileSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> fileSubmissionImpl.getFileSubmissionById("42")); + verify(exerciseRepository).findById(eq("42")); + verify(fileSubmissionRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link FileSubmissionImpl#getFileSubmissionById(String)} + */ + @Test + void testGetFileSubmissionById4() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + Optional emptyResult = Optional.empty(); + when(fileSubmissionRepository.findById(Mockito.any())).thenReturn(emptyResult); + + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult2 = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult2); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> fileSubmissionImpl.getFileSubmissionById("42")); + verify(fileSubmissionRepository).findById(eq("42")); + } + + /** + * Method under test: {@link FileSubmissionImpl#getFileSubmissionById(String)} + */ + @Test + void testGetFileSubmissionById5() { + // Arrange + Exercise exercise = new Exercise(); + exercise.setCreatedDate("2020-03-01"); + exercise.setDurationTime(1); + exercise.setEndTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setExerciseDescription("Exercise Description"); + exercise.setExerciseId("42"); + exercise.setExerciseName("Exercise Name"); + exercise.setKey("Key"); + exercise.setPublicGroupIds(new ArrayList<>()); + exercise.setReAttempt(1); + exercise.setShowAll(true); + exercise.setStartTime(Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant())); + exercise.setTopicId("42"); + exercise.setType("Type"); + exercise.setUpdatedDate("2020-03-01"); + Optional ofResult = Optional.of(exercise); + when(exerciseRepository.findById(Mockito.any())).thenReturn(ofResult); + + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + Optional ofResult2 = Optional.of(fileSubmission); + when(fileSubmissionRepository.findById(Mockito.any())).thenReturn(ofResult2); + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> fileSubmissionImpl.getFileSubmissionById("42")); + verify(fileSubmissionRepository).findById(eq("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionByUserId(String, String)} + */ + @Test + void testGetFileSubmissionByUserId() { + // Arrange + when(fileSubmissionRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualFileSubmissionByUserId = fileSubmissionImpl.getFileSubmissionByUserId("42", "42"); + + // Assert + verify(fileSubmissionRepository).findAll(); + assertTrue(actualFileSubmissionByUserId.isEmpty()); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionByUserId(String, String)} + */ + @Test + void testGetFileSubmissionByUserId2() { + // Arrange + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + + ArrayList fileSubmissionList = new ArrayList<>(); + fileSubmissionList.add(fileSubmission); + when(fileSubmissionRepository.findAll()).thenReturn(fileSubmissionList); + + // Act + List actualFileSubmissionByUserId = fileSubmissionImpl.getFileSubmissionByUserId("42", "42"); + + // Assert + verify(fileSubmissionRepository).findAll(); + assertEquals(1, actualFileSubmissionByUserId.size()); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionByUserId(String, String)} + */ + @Test + void testGetFileSubmissionByUserId3() { + // Arrange + FileSubmission fileSubmission = new FileSubmission(); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + + FileSubmission fileSubmission2 = new FileSubmission(); + fileSubmission2.setDateGrade("2020/03/01"); + fileSubmission2.setDateSubmit("2020/03/01"); + fileSubmission2.setExerciseId("Exercise Id"); + fileSubmission2.setFileUrl("42"); + fileSubmission2.setReviewable(false); + fileSubmission2.setScore(0.5f); + fileSubmission2.setStudentId("Student Id"); + fileSubmission2.setSubmissionId("Submission Id"); + fileSubmission2.setTeacherComment("Teacher Comment"); + + ArrayList fileSubmissionList = new ArrayList<>(); + fileSubmissionList.add(fileSubmission2); + fileSubmissionList.add(fileSubmission); + when(fileSubmissionRepository.findAll()).thenReturn(fileSubmissionList); + + // Act + List actualFileSubmissionByUserId = fileSubmissionImpl.getFileSubmissionByUserId("42", "42"); + + // Assert + verify(fileSubmissionRepository).findAll(); + assertEquals(1, actualFileSubmissionByUserId.size()); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionByUserId(String, String)} + */ + @Test + void testGetFileSubmissionByUserId4() { + // Arrange + when(fileSubmissionRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> fileSubmissionImpl.getFileSubmissionByUserId("42", "42")); + verify(fileSubmissionRepository).findAll(); + } + + /** + * Method under test: + * {@link FileSubmissionImpl#getFileSubmissionByUserId(String, String)} + */ + @Test + void testGetFileSubmissionByUserId5() { + // Arrange + FileSubmission fileSubmission = mock(FileSubmission.class); + when(fileSubmission.getStudentId()).thenReturn("foo"); + when(fileSubmission.getExerciseId()).thenReturn("42"); + doNothing().when(fileSubmission).setFileUrl(Mockito.any()); + doNothing().when(fileSubmission).setDateGrade(Mockito.any()); + doNothing().when(fileSubmission).setDateSubmit(Mockito.any()); + doNothing().when(fileSubmission).setExerciseId(Mockito.any()); + doNothing().when(fileSubmission).setReviewable(anyBoolean()); + doNothing().when(fileSubmission).setScore(Mockito.any()); + doNothing().when(fileSubmission).setStudentId(Mockito.any()); + doNothing().when(fileSubmission).setSubmissionId(Mockito.any()); + doNothing().when(fileSubmission).setTeacherComment(Mockito.any()); + fileSubmission.setDateGrade("2020-03-01"); + fileSubmission.setDateSubmit("2020-03-01"); + fileSubmission.setExerciseId("42"); + fileSubmission.setFileUrl("https://example.org/example"); + fileSubmission.setReviewable(true); + fileSubmission.setScore(10.0f); + fileSubmission.setStudentId("42"); + fileSubmission.setSubmissionId("42"); + fileSubmission.setTeacherComment("Teacher Comment"); + + ArrayList fileSubmissionList = new ArrayList<>(); + fileSubmissionList.add(fileSubmission); + when(fileSubmissionRepository.findAll()).thenReturn(fileSubmissionList); + + // Act + List actualFileSubmissionByUserId = fileSubmissionImpl.getFileSubmissionByUserId("42", "42"); + + // Assert + verify(fileSubmission).setFileUrl(eq("https://example.org/example")); + verify(fileSubmission).getExerciseId(); + verify(fileSubmission).getStudentId(); + verify(fileSubmission).setDateGrade(eq("2020-03-01")); + verify(fileSubmission).setDateSubmit(eq("2020-03-01")); + verify(fileSubmission).setExerciseId(eq("42")); + verify(fileSubmission).setReviewable(eq(true)); + verify(fileSubmission).setScore(isA(Float.class)); + verify(fileSubmission).setStudentId(eq("42")); + verify(fileSubmission).setSubmissionId(eq("42")); + verify(fileSubmission).setTeacherComment(eq("Teacher Comment")); + verify(fileSubmissionRepository).findAll(); + assertTrue(actualFileSubmissionByUserId.isEmpty()); + } +} diff --git a/src/test/java/com/example/codeE/service/group/GroupImplDiffblueTest.java b/src/test/java/com/example/codeE/service/group/GroupImplDiffblueTest.java new file mode 100644 index 00000000..1d111b1a --- /dev/null +++ b/src/test/java/com/example/codeE/service/group/GroupImplDiffblueTest.java @@ -0,0 +1,754 @@ +package com.example.codeE.service.group; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.entity.group.StudentInGroupEntity; +import com.example.codeE.entity.group.StudentNotInGroupEntity; +import com.example.codeE.model.course.Course; +import com.example.codeE.model.group.Group; +import com.example.codeE.model.group.GroupStudent; +import com.example.codeE.model.group.UpdateGroupRequest; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.GroupRepository; +import com.example.codeE.repository.GroupStudentRepository; +import com.example.codeE.request.group.CreateGroupRequest; +import com.example.codeE.service.course.CourseService; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {GroupImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class GroupImplDiffblueTest { + @MockBean + private CourseService courseService; + + @Autowired + private GroupImpl groupImpl; + + @MockBean + private GroupRepository groupRepository; + + @MockBean + private GroupStudentRepository groupStudentRepository; + + /** + * Method under test: {@link GroupImpl#createOne(CreateGroupRequest)} + */ + @Test + void testCreateOne() { + // Arrange + when(courseService.checkCourseExistById(Mockito.any())).thenReturn(true); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + when(groupRepository.save(Mockito.any())).thenReturn(group); + + // Act + Group actualCreateOneResult = groupImpl.createOne(new CreateGroupRequest("42", "Group Name")); + + // Assert + verify(courseService).checkCourseExistById(eq("42")); + verify(groupRepository).save(isA(Group.class)); + LocalTime expectedToLocalTimeResult = actualCreateOneResult.getCreateDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualCreateOneResult.getCourse().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: {@link GroupImpl#createOne(CreateGroupRequest)} + */ + @Test + void testCreateOne2() { + // Arrange + when(courseService.checkCourseExistById(Mockito.any())).thenReturn(true); + when(groupRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.createOne(new CreateGroupRequest("42", "Group Name"))); + verify(courseService).checkCourseExistById(eq("42")); + verify(groupRepository).save(isA(Group.class)); + } + + /** + * Method under test: {@link GroupImpl#createOne(CreateGroupRequest)} + */ + @Test + void testCreateOne3() { + // Arrange + when(courseService.checkCourseExistById(Mockito.any())).thenReturn(false); + + // Act + Group actualCreateOneResult = groupImpl.createOne(new CreateGroupRequest("42", "Group Name")); + + // Assert + verify(courseService).checkCourseExistById(eq("42")); + assertNull(actualCreateOneResult); + } + + /** + * Method under test: {@link GroupImpl#getById(String)} + */ + @Test + void testGetById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Group actualById = groupImpl.getById("42"); + + // Assert + verify(groupRepository).findById(eq("42")); + LocalTime expectedToLocalTimeResult = actualById.getCreateDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualById.getCourse().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: {@link GroupImpl#getById(String)} + */ + @Test + void testGetById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(groupRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.getById("42")); + verify(groupRepository).findById(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#getById(String)} + */ + @Test + void testGetById3() { + // Arrange + when(groupRepository.findById(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.getById("42")); + verify(groupRepository).findById(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#getAll()} + */ + @Test + void testGetAll() { + // Arrange + when(groupRepository.findAll()).thenReturn(new ArrayList<>()); + + // Act + List actualAll = groupImpl.getAll(); + + // Assert + verify(groupRepository).findAll(); + assertNull(actualAll); + } + + /** + * Method under test: {@link GroupImpl#getAll()} + */ + @Test + void testGetAll2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + + ArrayList groupList = new ArrayList<>(); + groupList.add(group); + when(groupRepository.findAll()).thenReturn(groupList); + + // Act + List actualAll = groupImpl.getAll(); + + // Assert + verify(groupRepository).findAll(); + assertEquals(1, actualAll.size()); + assertSame(groupList, actualAll); + } + + /** + * Method under test: {@link GroupImpl#getAll()} + */ + @Test + void testGetAll3() { + // Arrange + when(groupRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.getAll()); + verify(groupRepository).findAll(); + } + + /** + * Method under test: {@link GroupImpl#deleteById(String)} + */ + @Test + void testDeleteById() { + // Arrange + doNothing().when(groupRepository).deleteById(Mockito.any()); + when(groupRepository.existsById(Mockito.any())).thenReturn(true); + + // Act + groupImpl.deleteById("42"); + + // Assert that nothing has changed + verify(groupRepository).deleteById(eq("42")); + verify(groupRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#deleteById(String)} + */ + @Test + void testDeleteById2() { + // Arrange + doThrow(new NoSuchElementException("foo")).when(groupRepository).deleteById(Mockito.any()); + when(groupRepository.existsById(Mockito.any())).thenReturn(true); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.deleteById("42")); + verify(groupRepository).deleteById(eq("42")); + verify(groupRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#deleteById(String)} + */ + @Test + void testDeleteById3() { + // Arrange + when(groupRepository.existsById(Mockito.any())).thenReturn(false); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.deleteById("42")); + verify(groupRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#addStudentsToGroup(List, String, String)} + */ + @Test + void testAddStudentsToGroup() { + // Arrange, Act and Assert + assertTrue( + groupImpl.addStudentsToGroup(new ArrayList<>(), "42", "The characteristics of someone or something").isEmpty()); + } + + /** + * Method under test: {@link GroupImpl#addStudentsToGroup(List, String, String)} + */ + @Test + void testAddStudentsToGroup2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + GroupStudent groupStudent = new GroupStudent(); + groupStudent.setDescription("The characteristics of someone or something"); + groupStudent.setGroup(group); + groupStudent.setGroupId("42"); + groupStudent.setJoinDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + groupStudent.setStudent(student); + groupStudent.setStudentId("42"); + when(groupStudentRepository.save(Mockito.any())).thenReturn(groupStudent); + + ArrayList studentIds = new ArrayList<>(); + studentIds.add("foo"); + + // Act + List actualAddStudentsToGroupResult = groupImpl.addStudentsToGroup(studentIds, "42", + "The characteristics of someone or something"); + + // Assert + verify(groupStudentRepository).save(isA(GroupStudent.class)); + assertEquals(1, actualAddStudentsToGroupResult.size()); + } + + /** + * Method under test: {@link GroupImpl#addStudentsToGroup(List, String, String)} + */ + @Test + void testAddStudentsToGroup3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + + User student = new User(); + student.setCourseStudents(new ArrayList<>()); + student.setCourseTeachers(new ArrayList<>()); + student.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setEmail("jane.doe@example.org"); + student.setGroupStudents(new ArrayList<>()); + student.setName("Name"); + student.setPassword("iloveyou"); + student.setRole("Role"); + student.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + student.setUserId("42"); + student.setUsername("janedoe"); + + GroupStudent groupStudent = new GroupStudent(); + groupStudent.setDescription("The characteristics of someone or something"); + groupStudent.setGroup(group); + groupStudent.setGroupId("42"); + groupStudent.setJoinDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + groupStudent.setStudent(student); + groupStudent.setStudentId("42"); + when(groupStudentRepository.save(Mockito.any())).thenReturn(groupStudent); + + ArrayList studentIds = new ArrayList<>(); + studentIds.add("42"); + studentIds.add("foo"); + + // Act + List actualAddStudentsToGroupResult = groupImpl.addStudentsToGroup(studentIds, "42", + "The characteristics of someone or something"); + + // Assert + verify(groupStudentRepository, atLeast(1)).save(Mockito.any()); + assertEquals(2, actualAddStudentsToGroupResult.size()); + } + + /** + * Method under test: {@link GroupImpl#addStudentsToGroup(List, String, String)} + */ + @Test + void testAddStudentsToGroup4() { + // Arrange + when(groupStudentRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + ArrayList studentIds = new ArrayList<>(); + studentIds.add("foo"); + + // Act and Assert + assertThrows(NoSuchElementException.class, + () -> groupImpl.addStudentsToGroup(studentIds, "42", "The characteristics of someone or something")); + verify(groupStudentRepository).save(isA(GroupStudent.class)); + } + + /** + * Method under test: {@link GroupImpl#getGroupsByCourseId(String)} + */ + @Test + void testGetGroupsByCourseId() { + // Arrange + ArrayList groupList = new ArrayList<>(); + when(groupRepository.getAllCourseByCourseId(Mockito.any())).thenReturn(groupList); + + // Act + List actualGroupsByCourseId = groupImpl.getGroupsByCourseId("42"); + + // Assert + verify(groupRepository).getAllCourseByCourseId(eq("42")); + assertTrue(actualGroupsByCourseId.isEmpty()); + assertSame(groupList, actualGroupsByCourseId); + } + + /** + * Method under test: {@link GroupImpl#getGroupsByCourseId(String)} + */ + @Test + void testGetGroupsByCourseId2() { + // Arrange + when(groupRepository.getAllCourseByCourseId(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.getGroupsByCourseId("42")); + verify(groupRepository).getAllCourseByCourseId(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#getUsersInGroup(String)} + */ + @Test + void testGetUsersInGroup() { + // Arrange + ArrayList studentInGroupEntityList = new ArrayList<>(); + when(groupStudentRepository.getStudentInGroup(Mockito.any())).thenReturn(studentInGroupEntityList); + + // Act + List actualUsersInGroup = groupImpl.getUsersInGroup("42"); + + // Assert + verify(groupStudentRepository).getStudentInGroup(eq("42")); + assertTrue(actualUsersInGroup.isEmpty()); + assertSame(studentInGroupEntityList, actualUsersInGroup); + } + + /** + * Method under test: {@link GroupImpl#getUsersInGroup(String)} + */ + @Test + void testGetUsersInGroup2() { + // Arrange + when(groupStudentRepository.getStudentInGroup(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.getUsersInGroup("42")); + verify(groupStudentRepository).getStudentInGroup(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#getStudentNotInGroup(String)} + */ + @Test + void testGetStudentNotInGroup() { + // Arrange + ArrayList studentNotInGroupEntityList = new ArrayList<>(); + when(groupStudentRepository.getStudentNotInGroup(Mockito.any())).thenReturn(studentNotInGroupEntityList); + + // Act + List actualStudentNotInGroup = groupImpl.getStudentNotInGroup("42"); + + // Assert + verify(groupStudentRepository).getStudentNotInGroup(eq("42")); + assertTrue(actualStudentNotInGroup.isEmpty()); + assertSame(studentNotInGroupEntityList, actualStudentNotInGroup); + } + + /** + * Method under test: {@link GroupImpl#getStudentNotInGroup(String)} + */ + @Test + void testGetStudentNotInGroup2() { + // Arrange + when(groupStudentRepository.getStudentNotInGroup(Mockito.any())) + .thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.getStudentNotInGroup("42")); + verify(groupStudentRepository).getStudentNotInGroup(eq("42")); + } + + /** + * Method under test: {@link GroupImpl#deleteStudentInGroup(String, List)} + */ + @Test + void testDeleteStudentInGroup() { + // Arrange and Act + groupImpl.deleteStudentInGroup("42", new ArrayList<>()); + + // Assert that nothing has changed + assertNull(groupImpl.getAll()); + } + + /** + * Method under test: {@link GroupImpl#deleteStudentInGroup(String, List)} + */ + @Test + void testDeleteStudentInGroup2() { + // Arrange + doNothing().when(groupStudentRepository).deleteStudentInGroup(Mockito.any(), Mockito.any()); + + ArrayList studentIds = new ArrayList<>(); + studentIds.add("foo"); + + // Act + groupImpl.deleteStudentInGroup("42", studentIds); + + // Assert that nothing has changed + verify(groupStudentRepository).deleteStudentInGroup(eq("foo"), eq("42")); + } + + /** + * Method under test: {@link GroupImpl#deleteStudentInGroup(String, List)} + */ + @Test + void testDeleteStudentInGroup3() { + // Arrange + doNothing().when(groupStudentRepository).deleteStudentInGroup(Mockito.any(), Mockito.any()); + + ArrayList studentIds = new ArrayList<>(); + studentIds.add("42"); + studentIds.add("foo"); + + // Act + groupImpl.deleteStudentInGroup("42", studentIds); + + // Assert that nothing has changed + verify(groupStudentRepository, atLeast(1)).deleteStudentInGroup(Mockito.any(), eq("42")); + } + + /** + * Method under test: {@link GroupImpl#deleteStudentInGroup(String, List)} + */ + @Test + void testDeleteStudentInGroup4() { + // Arrange + doThrow(new NoSuchElementException("foo")).when(groupStudentRepository) + .deleteStudentInGroup(Mockito.any(), Mockito.any()); + + ArrayList studentIds = new ArrayList<>(); + studentIds.add("foo"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.deleteStudentInGroup("42", studentIds)); + verify(groupStudentRepository).deleteStudentInGroup(eq("foo"), eq("42")); + } + + /** + * Method under test: {@link GroupImpl#updateGroup(String, UpdateGroupRequest)} + */ + @Test + void testUpdateGroup() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group2 = new Group(); + group2.setCourse(course2); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + when(groupRepository.save(Mockito.any())).thenReturn(group2); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Group actualUpdateGroupResult = groupImpl.updateGroup("42", new UpdateGroupRequest("Group Name")); + + // Assert + verify(groupRepository).findById(eq("42")); + verify(groupRepository).save(isA(Group.class)); + LocalTime expectedToLocalTimeResult = actualUpdateGroupResult.getCreateDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualUpdateGroupResult.getCourse().getUpdatedDate().toLocalTime()); + } + + /** + * Method under test: {@link GroupImpl#updateGroup(String, UpdateGroupRequest)} + */ + @Test + void testUpdateGroup2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.updateGroup("42", new UpdateGroupRequest("Group Name"))); + verify(groupRepository).findById(eq("42")); + verify(groupRepository).save(isA(Group.class)); + } + + /** + * Method under test: {@link GroupImpl#updateGroup(String, UpdateGroupRequest)} + */ + @Test + void testUpdateGroup3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(groupRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> groupImpl.updateGroup("42", new UpdateGroupRequest("Group Name"))); + verify(groupRepository).findById(eq("42")); + } +} diff --git a/src/test/java/com/example/codeE/service/judge/ClientImplDiffblueTest.java b/src/test/java/com/example/codeE/service/judge/ClientImplDiffblueTest.java new file mode 100644 index 00000000..a7804aad --- /dev/null +++ b/src/test/java/com/example/codeE/service/judge/ClientImplDiffblueTest.java @@ -0,0 +1,94 @@ +package com.example.codeE.service.judge; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.DuplicatedByteBuf; +import io.netty.buffer.EmptyByteBuf; +import io.netty.buffer.PooledByteBufAllocator; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {ClientImpl.class}) +@ExtendWith(SpringExtension.class) +class ClientImplDiffblueTest { + @Autowired + private ClientImpl clientImpl; + + /** + * Method under test: {@link ClientImpl#connect(String, int)} + */ + @Test + @Disabled("TODO: Complete this test") + void testConnect() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Diffblue AI was unable to find a test + + // Arrange + // TODO: Populate arranged inputs + String host = ""; + int port = 0; + + // Act + this.clientImpl.connect(host, port); + + // Assert + // TODO: Add assertions on result + } + + /** + * Method under test: {@link ClientImpl#disconnect()} + */ + @Test + @Disabled("TODO: Complete this test") + void testDisconnect() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // java.lang.NullPointerException: Cannot invoke "reactor.netty.Connection.onDispose()" because "this.connection" is null + // at com.example.codeE.service.judge.ClientImpl.disconnect(ClientImpl.java:29) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + clientImpl.disconnect(); + } + + /** + * Method under test: {@link ClientImpl#sendRequest(ByteBuf)} + */ + @Test + @Disabled("TODO: Complete this test") + void testSendRequest() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // java.lang.NullPointerException: Cannot invoke "reactor.netty.Connection.outbound()" because "this.connection" is null + // at com.example.codeE.service.judge.ClientImpl.sendRequest(ClientImpl.java:36) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + clientImpl.sendRequest(new DuplicatedByteBuf(new EmptyByteBuf(new PooledByteBufAllocator()))); + } + + /** + * Method under test: {@link ClientImpl#receiveResponse()} + */ + @Test + @Disabled("TODO: Complete this test") + void testReceiveResponse() { + // TODO: Diffblue Cover was only able to create a partial test for this method: + // Reason: No inputs found that don't throw a trivial exception. + // Diffblue Cover tried to run the arrange/act section, but the method under + // test threw + // java.lang.NullPointerException: Cannot invoke "reactor.netty.Connection.inbound()" because "this.connection" is null + // at com.example.codeE.service.judge.ClientImpl.receiveResponse(ClientImpl.java:44) + // See https://diff.blue/R013 to resolve this issue. + + // Arrange and Act + clientImpl.receiveResponse(); + } +} diff --git a/src/test/java/com/example/codeE/service/judge/LanguageLimitImplDiffblueTest.java b/src/test/java/com/example/codeE/service/judge/LanguageLimitImplDiffblueTest.java new file mode 100644 index 00000000..2cc50f98 --- /dev/null +++ b/src/test/java/com/example/codeE/service/judge/LanguageLimitImplDiffblueTest.java @@ -0,0 +1,52 @@ +package com.example.codeE.service.judge; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.exercise.common.LanguageLimit; +import com.example.codeE.repository.LanguageLimitRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {LanguageLimitImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class LanguageLimitImplDiffblueTest { + @Autowired + private LanguageLimitImpl languageLimitImpl; + + @MockBean + private LanguageLimitRepository languageLimitRepository; + + /** + * Method under test: + * {@link LanguageLimitImpl#findByProblemIdAndLanguageId(String, String)} + */ + @Test + void testFindByProblemIdAndLanguageId() { + // Arrange + LanguageLimit languageLimit = new LanguageLimit(); + languageLimit.setLanguageId("en"); + languageLimit.setLanguageLimitId("en"); + languageLimit.setMemoryLimit(1); + languageLimit.setProblemId("42"); + languageLimit.setTimeLimit(10.0d); + when(languageLimitRepository.findByProblemIdAndLanguageId(Mockito.any(), Mockito.any())) + .thenReturn(languageLimit); + + // Act + LanguageLimit actualFindByProblemIdAndLanguageIdResult = languageLimitImpl.findByProblemIdAndLanguageId("42", "en"); + + // Assert + verify(languageLimitRepository).findByProblemIdAndLanguageId(eq("42"), eq("en")); + assertSame(languageLimit, actualFindByProblemIdAndLanguageIdResult); + } +} diff --git a/src/test/java/com/example/codeE/service/material/MaterialImplDiffblueTest.java b/src/test/java/com/example/codeE/service/material/MaterialImplDiffblueTest.java new file mode 100644 index 00000000..961d708e --- /dev/null +++ b/src/test/java/com/example/codeE/service/material/MaterialImplDiffblueTest.java @@ -0,0 +1,2549 @@ +package com.example.codeE.service.material; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.ArgumentMatchers.isNull; +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.helper.CloudStorageHelper; +import com.example.codeE.model.course.Course; +import com.example.codeE.model.group.Group; +import com.example.codeE.model.material.Material; +import com.example.codeE.model.material.ViewPermissionMaterial; +import com.example.codeE.model.topic.Topic; +import com.example.codeE.repository.GroupRepository; +import com.example.codeE.repository.MaterialRepository; +import com.example.codeE.repository.TopicRepository; +import com.example.codeE.repository.ViewPermissionMaterialRepository; +import com.example.codeE.request.material.CreateMaterialRequest; +import com.example.codeE.request.material.MaterialResponse; +import com.example.codeE.request.material.UpdateMaterialRequest; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {MaterialImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class MaterialImplDiffblueTest { + @MockBean + private CloudStorageHelper cloudStorageHelper; + + @MockBean + private GroupRepository groupRepository; + + @Autowired + private MaterialImpl materialImpl; + + @MockBean + private MaterialRepository materialRepository; + + @MockBean + private TopicRepository topicRepository; + + @MockBean + private ViewPermissionMaterialRepository viewPermissionMaterialRepository; + + /** + * Method under test: {@link MaterialImpl#createOne(CreateMaterialRequest)} + */ + @Test + void testCreateOne() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + when(materialRepository.save(Mockito.any())).thenReturn(material); + + // Act + Material actualCreateOneResult = materialImpl.createOne(new CreateMaterialRequest()); + + // Assert + verify(materialRepository).save(isA(Material.class)); + assertSame(material, actualCreateOneResult); + } + + /** + * Method under test: {@link MaterialImpl#createOne(CreateMaterialRequest)} + */ + @Test + void testCreateOne2() { + // Arrange, Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.createOne(null)); + } + + /** + * Method under test: {@link MaterialImpl#createOne(CreateMaterialRequest)} + */ + @Test + void testCreateOne3() { + // Arrange + when(materialRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.createOne(new CreateMaterialRequest())); + verify(materialRepository).save(isA(Material.class)); + } + + /** + * Method under test: {@link MaterialImpl#getById(String)} + */ + @Test + void testGetById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Material actualById = materialImpl.getById("42"); + + // Assert + verify(materialRepository).findById(eq("42")); + assertSame(material, actualById); + } + + /** + * Method under test: {@link MaterialImpl#getById(String)} + */ + @Test + void testGetById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(materialRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> materialImpl.getById("42")); + verify(materialRepository).findById(eq("42")); + } + + /** + * Method under test: {@link MaterialImpl#getById(String)} + */ + @Test + void testGetById3() { + // Arrange + when(materialRepository.findById(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.getById("42")); + verify(materialRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link MaterialImpl#CreateMaterial(CreateMaterialRequest, MultipartFile)} + */ + @Test + void testCreateMaterial() throws IOException { + // Arrange + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + CreateMaterialRequest createRequest = new CreateMaterialRequest(); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> materialImpl.CreateMaterial(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))))); + verify(topicRepository).findById(isNull()); + } + + /** + * Method under test: + * {@link MaterialImpl#CreateMaterial(CreateMaterialRequest, MultipartFile)} + */ + @Test + void testCreateMaterial2() throws Exception { + // Arrange + when(cloudStorageHelper.uploadFile(Mockito.any(), anyBoolean(), Mockito.any())) + .thenReturn("Upload File"); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + when(materialRepository.save(Mockito.any())).thenReturn(material); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic2); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + CreateMaterialRequest createRequest = new CreateMaterialRequest("file", "file", "42", "https://example.org/example", + "The characteristics of someone or something", + new MockMultipartFile("file", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Act + Material actualCreateMaterialResult = materialImpl.CreateMaterial(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Assert + verify(cloudStorageHelper).uploadFile(isA(MultipartFile.class), eq(true), eq("materials/42/42/")); + verify(topicRepository, atLeast(1)).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + assertEquals("Upload File", createRequest.getUrl()); + assertSame(material, actualCreateMaterialResult); + } + + /** + * Method under test: + * {@link MaterialImpl#CreateMaterial(CreateMaterialRequest, MultipartFile)} + */ + @Test + void testCreateMaterial3() throws Exception { + // Arrange + when(cloudStorageHelper.uploadFile(Mockito.any(), anyBoolean(), Mockito.any())) + .thenReturn("Upload File"); + when(materialRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("file")); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + CreateMaterialRequest createRequest = new CreateMaterialRequest("file", "file", "42", "https://example.org/example", + "The characteristics of someone or something", + new MockMultipartFile("file", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.CreateMaterial(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))))); + verify(cloudStorageHelper).uploadFile(isA(MultipartFile.class), eq(true), eq("materials/42/42/")); + verify(topicRepository, atLeast(1)).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + } + + /** + * Method under test: + * {@link MaterialImpl#CreateMaterial(CreateMaterialRequest, MultipartFile)} + */ + @Test + void testCreateMaterial4() throws Exception { + // Arrange + when(cloudStorageHelper.uploadFile(Mockito.any(), anyBoolean(), Mockito.any())) + .thenReturn("Upload File"); + when(materialRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("file")); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + CreateMaterialRequest createRequest = new CreateMaterialRequest("file", "file", "42", "https://example.org/example", + "The characteristics of someone or something", + new MockMultipartFile("file", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.CreateMaterial(createRequest, + new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8"))))); + verify(cloudStorageHelper).uploadFile(isA(MultipartFile.class), eq(true), eq("materials/42/42/")); + verify(topicRepository, atLeast(1)).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + } + + /** + * Method under test: {@link MaterialImpl#getAllByTopicId(String)} + */ + @Test + void testGetAllByTopicId() { + // Arrange + when(materialRepository.findByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAllByTopicId = materialImpl.getAllByTopicId("42"); + + // Assert + verify(materialRepository).findByTopicId(eq("42")); + assertTrue(actualAllByTopicId.isEmpty()); + } + + /** + * Method under test: {@link MaterialImpl#getAllByTopicId(String)} + */ + @Test + void testGetAllByTopicId2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material); + when(materialRepository.findByTopicId(Mockito.any())).thenReturn(materialList); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(new ArrayList<>()); + + // Act + List actualAllByTopicId = materialImpl.getAllByTopicId("42"); + + // Assert + verify(materialRepository).findByTopicId(eq("42")); + verify(viewPermissionMaterialRepository).getAllGroupsByMaterialId(eq("42")); + assertEquals(1, actualAllByTopicId.size()); + } + + /** + * Method under test: {@link MaterialImpl#getAllByTopicId(String)} + */ + @Test + void testGetAllByTopicId3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("Course Id"); + course2.setCourseName("42"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("Description"); + course2.setEnrollKey("42"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("42"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("Course Id"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("Description"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(false); + topic2.setTopicId("Topic Id"); + topic2.setTopicName("42"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("Description"); + material2.setMaterialId("Material Id"); + material2.setMaterialName("42"); + material2.setMaterialType("42"); + material2.setShowAll(false); + material2.setStorageUrl("Storage Url"); + material2.setTopic(topic2); + material2.setTopicId("Topic Id"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material2); + materialList.add(material); + when(materialRepository.findByTopicId(Mockito.any())).thenReturn(materialList); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(new ArrayList<>()); + + // Act + List actualAllByTopicId = materialImpl.getAllByTopicId("42"); + + // Assert + verify(materialRepository).findByTopicId(eq("42")); + verify(viewPermissionMaterialRepository, atLeast(1)).getAllGroupsByMaterialId(Mockito.any()); + assertEquals(2, actualAllByTopicId.size()); + } + + /** + * Method under test: {@link MaterialImpl#getAllByTopicId(String)} + */ + @Test + void testGetAllByTopicId4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.isShowAll()).thenReturn(true); + when(material.getDescription()).thenReturn("The characteristics of someone or something"); + when(material.getMaterialId()).thenReturn("42"); + when(material.getMaterialName()).thenReturn("Material Name"); + when(material.getMaterialType()).thenReturn("Material Type"); + when(material.getStorageUrl()).thenReturn("https://example.org/example"); + when(material.getTopicId()).thenReturn("42"); + when(material.getCreatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(material.getUpdatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material); + when(materialRepository.findByTopicId(Mockito.any())).thenReturn(materialList); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(new ArrayList<>()); + + // Act + List actualAllByTopicId = materialImpl.getAllByTopicId("42"); + + // Assert + verify(material).getCreatedDate(); + verify(material).getDescription(); + verify(material, atLeast(1)).getMaterialId(); + verify(material).getMaterialName(); + verify(material).getMaterialType(); + verify(material).getStorageUrl(); + verify(material).getTopicId(); + verify(material).getUpdatedDate(); + verify(material).isShowAll(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).findByTopicId(eq("42")); + verify(viewPermissionMaterialRepository).getAllGroupsByMaterialId(eq("42")); + assertEquals(1, actualAllByTopicId.size()); + } + + /** + * Method under test: {@link MaterialImpl#getAllByTopicId(String)} + */ + @Test + void testGetAllByTopicId5() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.isShowAll()).thenReturn(true); + when(material.getDescription()).thenReturn("The characteristics of someone or something"); + when(material.getMaterialId()).thenReturn("42"); + when(material.getMaterialName()).thenReturn("Material Name"); + when(material.getMaterialType()).thenReturn("Material Type"); + when(material.getStorageUrl()).thenReturn("https://example.org/example"); + when(material.getTopicId()).thenReturn("42"); + when(material.getCreatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(material.getUpdatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material); + when(materialRepository.findByTopicId(Mockito.any())).thenReturn(materialList); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group2 = new Group(); + group2.setCourse(course3); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + + Course course4 = new Course(); + course4.setCourseId("42"); + course4.setCourseName("Course Name"); + course4.setCourseStudents(new ArrayList<>()); + course4.setCourseTeachers(new ArrayList<>()); + course4.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course4.setDescription("The characteristics of someone or something"); + course4.setEnrollKey("Enroll Key"); + course4.setGroups(new ArrayList<>()); + course4.setSemester("Semester"); + course4.setTopics(new ArrayList<>()); + course4.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course4); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("The characteristics of someone or something"); + material2.setMaterialId("42"); + material2.setMaterialName("Material Name"); + material2.setMaterialType("Material Type"); + material2.setShowAll(true); + material2.setStorageUrl("https://example.org/example"); + material2.setTopic(topic2); + material2.setTopicId("42"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + + ViewPermissionMaterial viewPermissionMaterial = new ViewPermissionMaterial(); + viewPermissionMaterial.setGroup(group2); + viewPermissionMaterial.setGroupId("42"); + viewPermissionMaterial.setMaterial(material2); + viewPermissionMaterial.setMaterialId("42"); + + ArrayList viewPermissionMaterialList = new ArrayList<>(); + viewPermissionMaterialList.add(viewPermissionMaterial); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(viewPermissionMaterialList); + + // Act + List actualAllByTopicId = materialImpl.getAllByTopicId("42"); + + // Assert + verify(material).getCreatedDate(); + verify(material).getDescription(); + verify(material, atLeast(1)).getMaterialId(); + verify(material).getMaterialName(); + verify(material).getMaterialType(); + verify(material).getStorageUrl(); + verify(material).getTopicId(); + verify(material).getUpdatedDate(); + verify(material).isShowAll(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).findByTopicId(eq("42")); + verify(viewPermissionMaterialRepository).getAllGroupsByMaterialId(eq("42")); + verify(groupRepository).findById(eq("42")); + assertEquals(1, actualAllByTopicId.size()); + } + + /** + * Method under test: {@link MaterialImpl#getAll()} + */ + @Test + void testGetAll() { + // Arrange + ArrayList materialList = new ArrayList<>(); + when(materialRepository.findAll()).thenReturn(materialList); + + // Act + List actualAll = materialImpl.getAll(); + + // Assert + verify(materialRepository).findAll(); + assertTrue(actualAll.isEmpty()); + assertSame(materialList, actualAll); + } + + /** + * Method under test: {@link MaterialImpl#getAll()} + */ + @Test + void testGetAll2() { + // Arrange + when(materialRepository.findAll()).thenThrow(new IllegalArgumentException("foo")); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.getAll()); + verify(materialRepository).findAll(); + } + + /** + * Method under test: {@link MaterialImpl#deleteById(String)} + */ + @Test + void testDeleteById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + doNothing().when(materialRepository).deleteById(Mockito.any()); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + materialImpl.deleteById("42"); + + // Assert that nothing has changed + verify(materialRepository).deleteById(eq("42")); + verify(materialRepository).findById(eq("42")); + assertTrue(materialImpl.getAll().isEmpty()); + } + + /** + * Method under test: {@link MaterialImpl#deleteById(String)} + */ + @Test + void testDeleteById2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + doThrow(new IllegalArgumentException("file")).when(materialRepository).deleteById(Mockito.any()); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.deleteById("42")); + verify(materialRepository).deleteById(eq("42")); + verify(materialRepository).findById(eq("42")); + } + + /** + * Method under test: {@link MaterialImpl#deleteById(String)} + */ + @Test + void testDeleteById3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.getMaterialType()).thenReturn("Material Type"); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + doNothing().when(materialRepository).deleteById(Mockito.any()); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + materialImpl.deleteById("42"); + + // Assert that nothing has changed + verify(material).getMaterialType(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).deleteById(eq("42")); + verify(materialRepository).findById(eq("42")); + assertTrue(materialImpl.getAll().isEmpty()); + } + + /** + * Method under test: {@link MaterialImpl#deleteById(String)} + */ + @Test + void testDeleteById4() throws IOException, RuntimeException { + // Arrange + when(cloudStorageHelper.deleteFile(Mockito.any())).thenReturn(true); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.getStorageUrl()).thenReturn("https://example.org/example"); + when(material.getMaterialType()).thenReturn("file"); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + doNothing().when(materialRepository).deleteById(Mockito.any()); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + materialImpl.deleteById("42"); + + // Assert that nothing has changed + verify(cloudStorageHelper).deleteFile(eq("https://example.org/example")); + verify(material).getMaterialType(); + verify(material).getStorageUrl(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).deleteById(eq("42")); + verify(materialRepository).findById(eq("42")); + assertTrue(materialImpl.getAll().isEmpty()); + } + + /** + * Method under test: {@link MaterialImpl#deleteById(String)} + */ + @Test + void testDeleteById5() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.getStorageUrl()).thenThrow(new IllegalArgumentException("file")); + when(material.getMaterialType()).thenReturn("file"); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.deleteById("42")); + verify(material).getMaterialType(); + verify(material).getStorageUrl(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).findById(eq("42")); + } + + /** + * Method under test: {@link MaterialImpl#deleteById(String)} + */ + @Test + void testDeleteById6() throws IOException, RuntimeException { + // Arrange + when(cloudStorageHelper.deleteFile(Mockito.any())).thenReturn(false); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.getStorageUrl()).thenReturn("https://example.org/example"); + when(material.getMaterialType()).thenReturn("file"); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.deleteById("42")); + verify(cloudStorageHelper).deleteFile(eq("https://example.org/example")); + verify(material).getMaterialType(); + verify(material).getStorageUrl(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).findById(eq("42")); + } + + /** + * Method under test: {@link MaterialImpl#deleteById(String)} + */ + @Test + void testDeleteById7() { + // Arrange + Optional emptyResult = Optional.empty(); + when(materialRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> materialImpl.deleteById("42")); + verify(materialRepository).findById(eq("42")); + } + + /** + * Method under test: {@link MaterialImpl#updateById(UpdateMaterialRequest)} + */ + @Test + void testUpdateById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("The characteristics of someone or something"); + material2.setMaterialId("42"); + material2.setMaterialName("Material Name"); + material2.setMaterialType("Material Type"); + material2.setShowAll(true); + material2.setStorageUrl("https://example.org/example"); + material2.setTopic(topic2); + material2.setTopicId("42"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + when(materialRepository.save(Mockito.any())).thenReturn(material2); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Material actualUpdateByIdResult = materialImpl + .updateById(new UpdateMaterialRequest("42", "The characteristics of someone or something", true)); + + // Assert + verify(materialRepository).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + assertSame(material2, actualUpdateByIdResult); + } + + /** + * Method under test: {@link MaterialImpl#updateById(UpdateMaterialRequest)} + */ + @Test + void testUpdateById2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + when(materialRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl + .updateById(new UpdateMaterialRequest("42", "The characteristics of someone or something", true))); + verify(materialRepository).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + } + + /** + * Method under test: {@link MaterialImpl#updateById(UpdateMaterialRequest)} + */ + @Test + void testUpdateById3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("The characteristics of someone or something"); + material2.setMaterialId("42"); + material2.setMaterialName("Material Name"); + material2.setMaterialType("Material Type"); + material2.setShowAll(true); + material2.setStorageUrl("https://example.org/example"); + material2.setTopic(topic2); + material2.setTopicId("42"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + when(materialRepository.save(Mockito.any())).thenReturn(material2); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Material actualUpdateByIdResult = materialImpl + .updateById(new UpdateMaterialRequest("42", "The characteristics of someone or something", true)); + + // Assert + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material, atLeast(1)).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + assertSame(material2, actualUpdateByIdResult); + } + + /** + * Method under test: {@link MaterialImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission() { + // Arrange + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + + // Act + boolean actualRemoveViewPermissionResult = materialImpl.removeViewPermission("42", new ArrayList<>()); + + // Assert + verify(materialRepository).existsById(eq("42")); + assertTrue(actualRemoveViewPermissionResult); + } + + /** + * Method under test: {@link MaterialImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission2() { + // Arrange + when(materialRepository.existsById(Mockito.any())).thenReturn(false); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> materialImpl.removeViewPermission("42", new ArrayList<>())); + verify(materialRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link MaterialImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission3() { + // Arrange + when(groupRepository.existsById(Mockito.any())).thenReturn(true); + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + doNothing().when(viewPermissionMaterialRepository) + .removeViewPermission(Mockito.any(), Mockito.any()); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act + boolean actualRemoveViewPermissionResult = materialImpl.removeViewPermission("42", groupIds); + + // Assert + verify(viewPermissionMaterialRepository).removeViewPermission(eq("42"), eq("foo")); + verify(materialRepository).existsById(eq("42")); + verify(groupRepository).existsById(eq("foo")); + assertTrue(actualRemoveViewPermissionResult); + } + + /** + * Method under test: {@link MaterialImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission4() { + // Arrange + when(groupRepository.existsById(Mockito.any())).thenReturn(true); + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + doThrow(new IllegalArgumentException("foo")).when(viewPermissionMaterialRepository) + .removeViewPermission(Mockito.any(), Mockito.any()); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act and Assert + assertThrows(IllegalArgumentException.class, () -> materialImpl.removeViewPermission("42", groupIds)); + verify(viewPermissionMaterialRepository).removeViewPermission(eq("42"), eq("foo")); + verify(materialRepository).existsById(eq("42")); + verify(groupRepository).existsById(eq("foo")); + } + + /** + * Method under test: {@link MaterialImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission5() { + // Arrange + when(groupRepository.existsById(Mockito.any())).thenReturn(false); + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> materialImpl.removeViewPermission("42", groupIds)); + verify(materialRepository).existsById(eq("42")); + verify(groupRepository).existsById(eq("foo")); + } + + /** + * Method under test: {@link MaterialImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission6() { + // Arrange + when(groupRepository.existsById(Mockito.any())).thenReturn(true); + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + doNothing().when(viewPermissionMaterialRepository) + .removeViewPermission(Mockito.any(), Mockito.any()); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("42"); + groupIds.add("foo"); + + // Act + boolean actualRemoveViewPermissionResult = materialImpl.removeViewPermission("42", groupIds); + + // Assert + verify(viewPermissionMaterialRepository, atLeast(1)).removeViewPermission(eq("42"), Mockito.any()); + verify(groupRepository, atLeast(1)).existsById(Mockito.any()); + verify(materialRepository).existsById(eq("42")); + assertTrue(actualRemoveViewPermissionResult); + } + + /** + * Method under test: + * {@link MaterialImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("The characteristics of someone or something"); + material2.setMaterialId("42"); + material2.setMaterialName("Material Name"); + material2.setMaterialType("Material Type"); + material2.setShowAll(true); + material2.setStorageUrl("https://example.org/example"); + material2.setTopic(topic2); + material2.setTopicId("42"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + when(materialRepository.save(Mockito.any())).thenReturn(material2); + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + boolean actualAddViewPermissionResult = materialImpl.addViewPermission("42", new ArrayList<>(), true); + + // Assert + verify(materialRepository).existsById(eq("42")); + verify(materialRepository).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + assertTrue(actualAddViewPermissionResult); + } + + /** + * Method under test: + * {@link MaterialImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + when(materialRepository.save(Mockito.any())).thenThrow(new IllegalArgumentException("foo")); + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> materialImpl.addViewPermission("42", new ArrayList<>(), true)); + verify(materialRepository).existsById(eq("42")); + verify(materialRepository).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + } + + /** + * Method under test: + * {@link MaterialImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + when(materialRepository.existsById(Mockito.any())).thenReturn(false); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> materialImpl.addViewPermission("42", new ArrayList<>(), true)); + verify(materialRepository).existsById(eq("42")); + verify(materialRepository).findById(eq("42")); + } + + /** + * Method under test: + * {@link MaterialImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + Optional ofResult = Optional.of(material); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("The characteristics of someone or something"); + material2.setMaterialId("42"); + material2.setMaterialName("Material Name"); + material2.setMaterialType("Material Type"); + material2.setShowAll(true); + material2.setStorageUrl("https://example.org/example"); + material2.setTopic(topic2); + material2.setTopicId("42"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + when(materialRepository.save(Mockito.any())).thenReturn(material2); + when(materialRepository.existsById(Mockito.any())).thenReturn(true); + when(materialRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + boolean actualAddViewPermissionResult = materialImpl.addViewPermission("42", new ArrayList<>(), true); + + // Assert + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material, atLeast(1)).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).existsById(eq("42")); + verify(materialRepository).findById(eq("42")); + verify(materialRepository).save(isA(Material.class)); + assertTrue(actualAddViewPermissionResult); + } + + /** + * Method under test: {@link MaterialImpl#getMaterialByUserId(String, String)} + */ + @Test + void testGetMaterialByUserId() { + // Arrange + when(materialRepository.getMaterialById(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + + // Act + List actualMaterialByUserId = materialImpl.getMaterialByUserId("42", "42"); + + // Assert + verify(materialRepository).getMaterialById(eq("42"), eq("42")); + assertTrue(actualMaterialByUserId.isEmpty()); + } + + /** + * Method under test: {@link MaterialImpl#getMaterialByUserId(String, String)} + */ + @Test + void testGetMaterialByUserId2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material); + when(materialRepository.getMaterialById(Mockito.any(), Mockito.any())).thenReturn(materialList); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(new ArrayList<>()); + + // Act + List actualMaterialByUserId = materialImpl.getMaterialByUserId("42", "42"); + + // Assert + verify(materialRepository).getMaterialById(eq("42"), eq("42")); + verify(viewPermissionMaterialRepository).getAllGroupsByMaterialId(eq("42")); + assertEquals(1, actualMaterialByUserId.size()); + } + + /** + * Method under test: {@link MaterialImpl#getMaterialByUserId(String, String)} + */ + @Test + void testGetMaterialByUserId3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Material material = new Material(); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("Course Id"); + course2.setCourseName("42"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("Description"); + course2.setEnrollKey("42"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("42"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("Course Id"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("Description"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(false); + topic2.setTopicId("Topic Id"); + topic2.setTopicName("42"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("Description"); + material2.setMaterialId("Material Id"); + material2.setMaterialName("42"); + material2.setMaterialType("42"); + material2.setShowAll(false); + material2.setStorageUrl("Storage Url"); + material2.setTopic(topic2); + material2.setTopicId("Topic Id"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material2); + materialList.add(material); + when(materialRepository.getMaterialById(Mockito.any(), Mockito.any())).thenReturn(materialList); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(new ArrayList<>()); + + // Act + List actualMaterialByUserId = materialImpl.getMaterialByUserId("42", "42"); + + // Assert + verify(materialRepository).getMaterialById(eq("42"), eq("42")); + verify(viewPermissionMaterialRepository, atLeast(1)).getAllGroupsByMaterialId(Mockito.any()); + assertEquals(2, actualMaterialByUserId.size()); + } + + /** + * Method under test: {@link MaterialImpl#getMaterialByUserId(String, String)} + */ + @Test + void testGetMaterialByUserId4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.isShowAll()).thenReturn(true); + when(material.getDescription()).thenReturn("The characteristics of someone or something"); + when(material.getMaterialId()).thenReturn("42"); + when(material.getMaterialName()).thenReturn("Material Name"); + when(material.getMaterialType()).thenReturn("Material Type"); + when(material.getStorageUrl()).thenReturn("https://example.org/example"); + when(material.getTopicId()).thenReturn("42"); + when(material.getCreatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(material.getUpdatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material); + when(materialRepository.getMaterialById(Mockito.any(), Mockito.any())).thenReturn(materialList); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(new ArrayList<>()); + + // Act + List actualMaterialByUserId = materialImpl.getMaterialByUserId("42", "42"); + + // Assert + verify(material).getCreatedDate(); + verify(material).getDescription(); + verify(material, atLeast(1)).getMaterialId(); + verify(material).getMaterialName(); + verify(material).getMaterialType(); + verify(material).getStorageUrl(); + verify(material).getTopicId(); + verify(material).getUpdatedDate(); + verify(material).isShowAll(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).getMaterialById(eq("42"), eq("42")); + verify(viewPermissionMaterialRepository).getAllGroupsByMaterialId(eq("42")); + assertEquals(1, actualMaterialByUserId.size()); + } + + /** + * Method under test: {@link MaterialImpl#getMaterialByUserId(String, String)} + */ + @Test + void testGetMaterialByUserId5() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Material material = mock(Material.class); + when(material.isShowAll()).thenReturn(true); + when(material.getDescription()).thenReturn("The characteristics of someone or something"); + when(material.getMaterialId()).thenReturn("42"); + when(material.getMaterialName()).thenReturn("Material Name"); + when(material.getMaterialType()).thenReturn("Material Type"); + when(material.getStorageUrl()).thenReturn("https://example.org/example"); + when(material.getTopicId()).thenReturn("42"); + when(material.getCreatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + when(material.getUpdatedDate()).thenReturn(LocalDate.of(1970, 1, 1).atStartOfDay()); + doNothing().when(material).setCreatedDate(Mockito.any()); + doNothing().when(material).setDescription(Mockito.any()); + doNothing().when(material).setMaterialId(Mockito.any()); + doNothing().when(material).setMaterialName(Mockito.any()); + doNothing().when(material).setMaterialType(Mockito.any()); + doNothing().when(material).setShowAll(anyBoolean()); + doNothing().when(material).setStorageUrl(Mockito.any()); + doNothing().when(material).setTopic(Mockito.any()); + doNothing().when(material).setTopicId(Mockito.any()); + doNothing().when(material).setUpdatedDate(Mockito.any()); + doNothing().when(material).setViewPermissionMaterials(Mockito.>any()); + material.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setDescription("The characteristics of someone or something"); + material.setMaterialId("42"); + material.setMaterialName("Material Name"); + material.setMaterialType("Material Type"); + material.setShowAll(true); + material.setStorageUrl("https://example.org/example"); + material.setTopic(topic); + material.setTopicId("42"); + material.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material.setViewPermissionMaterials(new ArrayList<>()); + + ArrayList materialList = new ArrayList<>(); + materialList.add(material); + when(materialRepository.getMaterialById(Mockito.any(), Mockito.any())).thenReturn(materialList); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group2 = new Group(); + group2.setCourse(course3); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + + Course course4 = new Course(); + course4.setCourseId("42"); + course4.setCourseName("Course Name"); + course4.setCourseStudents(new ArrayList<>()); + course4.setCourseTeachers(new ArrayList<>()); + course4.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course4.setDescription("The characteristics of someone or something"); + course4.setEnrollKey("Enroll Key"); + course4.setGroups(new ArrayList<>()); + course4.setSemester("Semester"); + course4.setTopics(new ArrayList<>()); + course4.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course4); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + Material material2 = new Material(); + material2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setDescription("The characteristics of someone or something"); + material2.setMaterialId("42"); + material2.setMaterialName("Material Name"); + material2.setMaterialType("Material Type"); + material2.setShowAll(true); + material2.setStorageUrl("https://example.org/example"); + material2.setTopic(topic2); + material2.setTopicId("42"); + material2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + material2.setViewPermissionMaterials(new ArrayList<>()); + + ViewPermissionMaterial viewPermissionMaterial = new ViewPermissionMaterial(); + viewPermissionMaterial.setGroup(group2); + viewPermissionMaterial.setGroupId("42"); + viewPermissionMaterial.setMaterial(material2); + viewPermissionMaterial.setMaterialId("42"); + + ArrayList viewPermissionMaterialList = new ArrayList<>(); + viewPermissionMaterialList.add(viewPermissionMaterial); + when(viewPermissionMaterialRepository.getAllGroupsByMaterialId(Mockito.any())) + .thenReturn(viewPermissionMaterialList); + + // Act + List actualMaterialByUserId = materialImpl.getMaterialByUserId("42", "42"); + + // Assert + verify(material).getCreatedDate(); + verify(material).getDescription(); + verify(material, atLeast(1)).getMaterialId(); + verify(material).getMaterialName(); + verify(material).getMaterialType(); + verify(material).getStorageUrl(); + verify(material).getTopicId(); + verify(material).getUpdatedDate(); + verify(material).isShowAll(); + verify(material).setCreatedDate(isA(LocalDateTime.class)); + verify(material).setDescription(eq("The characteristics of someone or something")); + verify(material).setMaterialId(eq("42")); + verify(material).setMaterialName(eq("Material Name")); + verify(material).setMaterialType(eq("Material Type")); + verify(material).setShowAll(eq(true)); + verify(material).setStorageUrl(eq("https://example.org/example")); + verify(material).setTopic(isA(Topic.class)); + verify(material).setTopicId(eq("42")); + verify(material).setUpdatedDate(isA(LocalDateTime.class)); + verify(material).setViewPermissionMaterials(isA(List.class)); + verify(materialRepository).getMaterialById(eq("42"), eq("42")); + verify(viewPermissionMaterialRepository).getAllGroupsByMaterialId(eq("42")); + verify(groupRepository).findById(eq("42")); + assertEquals(1, actualMaterialByUserId.size()); + } +} diff --git a/src/test/java/com/example/codeE/service/topic/TopicImplDiffblueTest.java b/src/test/java/com/example/codeE/service/topic/TopicImplDiffblueTest.java new file mode 100644 index 00000000..edb29b64 --- /dev/null +++ b/src/test/java/com/example/codeE/service/topic/TopicImplDiffblueTest.java @@ -0,0 +1,2033 @@ +package com.example.codeE.service.topic; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.model.course.Course; +import com.example.codeE.model.group.Group; +import com.example.codeE.model.topic.Topic; +import com.example.codeE.model.topic.ViewPermissionTopic; +import com.example.codeE.repository.CourseRepository; +import com.example.codeE.repository.GroupRepository; +import com.example.codeE.repository.TopicRepository; +import com.example.codeE.repository.ViewPermissionTopicRepository; +import com.example.codeE.request.topic.CreateTopicRequest; +import com.example.codeE.request.topic.TopicGetResponse; +import com.example.codeE.request.topic.UpdateTopicRequest; +import com.example.codeE.service.exercise.EssayExerciseService; +import com.example.codeE.service.exercise.ExerciseService; +import com.example.codeE.service.exercise.QuizExerciseService; +import com.example.codeE.service.material.MaterialService; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ContextConfiguration(classes = {TopicImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class TopicImplDiffblueTest { + @MockBean + private CourseRepository courseRepository; + + @MockBean + private EssayExerciseService essayExerciseService; + + @MockBean + private ExerciseService exerciseService; + + @MockBean + private GroupRepository groupRepository; + + @MockBean + private MaterialService materialService; + + @MockBean + private QuizExerciseService quizExerciseService; + + @Autowired + private TopicImpl topicImpl; + + @MockBean + private TopicRepository topicRepository; + + @MockBean + private ViewPermissionTopicRepository viewPermissionTopicRepository; + + /** + * Method under test: {@link TopicImpl#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(topicRepository.getAllTopicsByCourseId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAllTopicsByCourseId = topicImpl.getAllTopicsByCourseId("42"); + + // Assert + verify(topicRepository).getAllTopicsByCourseId(eq("42")); + verify(courseRepository).findById(eq("42")); + assertTrue(actualAllTopicsByCourseId.isEmpty()); + } + + /** + * Method under test: {@link TopicImpl#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(topicRepository.getAllTopicsByCourseId(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.getAllTopicsByCourseId("42")); + verify(topicRepository).getAllTopicsByCourseId(eq("42")); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(courseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl.getAllTopicsByCourseId("42")); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(exerciseService.getExercisesByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + when(materialService.getAllByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.getAllTopicsByCourseId(Mockito.any())).thenReturn(topicList); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAllTopicsByCourseId = topicImpl.getAllTopicsByCourseId("42"); + + // Assert + verify(topicRepository).getAllTopicsByCourseId(eq("42")); + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(exerciseService).getExercisesByTopicId(eq("42")); + verify(materialService).getAllByTopicId(eq("42")); + verify(courseRepository).findById(eq("42")); + assertEquals(1, actualAllTopicsByCourseId.size()); + } + + /** + * Method under test: {@link TopicImpl#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId5() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(exerciseService.getExercisesByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + when(materialService.getAllByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.getAllTopicsByCourseId(Mockito.any())).thenReturn(topicList); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())) + .thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.getAllTopicsByCourseId("42")); + verify(topicRepository).getAllTopicsByCourseId(eq("42")); + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(exerciseService).getExercisesByTopicId(eq("42")); + verify(materialService).getAllByTopicId(eq("42")); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId6() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(exerciseService.getExercisesByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + when(materialService.getAllByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Course course3 = new Course(); + course3.setCourseId("Course Id"); + course3.setCourseName("42"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("Description"); + course3.setEnrollKey("42"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("42"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course3); + topic2.setCourseId("Course Id"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("Description"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(false); + topic2.setTopicId("Topic Id"); + topic2.setTopicName("42"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic2); + topicList.add(topic); + when(topicRepository.getAllTopicsByCourseId(Mockito.any())).thenReturn(topicList); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAllTopicsByCourseId = topicImpl.getAllTopicsByCourseId("42"); + + // Assert + verify(topicRepository).getAllTopicsByCourseId(eq("42")); + verify(viewPermissionTopicRepository, atLeast(1)).getAllGroupsByTopicId(Mockito.any()); + verify(exerciseService, atLeast(1)).getExercisesByTopicId(Mockito.any()); + verify(materialService, atLeast(1)).getAllByTopicId(Mockito.any()); + verify(courseRepository).findById(eq("42")); + assertEquals(2, actualAllTopicsByCourseId.size()); + } + + /** + * Method under test: {@link TopicImpl#getAllTopicsByCourseId(String)} + */ + @Test + void testGetAllTopicsByCourseId7() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(exerciseService.getExercisesByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course2); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult2); + when(materialService.getAllByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course3); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.getAllTopicsByCourseId(Mockito.any())).thenReturn(topicList); + + Course course4 = new Course(); + course4.setCourseId("42"); + course4.setCourseName("Course Name"); + course4.setCourseStudents(new ArrayList<>()); + course4.setCourseTeachers(new ArrayList<>()); + course4.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course4.setDescription("The characteristics of someone or something"); + course4.setEnrollKey("Enroll Key"); + course4.setGroups(new ArrayList<>()); + course4.setSemester("Semester"); + course4.setTopics(new ArrayList<>()); + course4.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group2 = new Group(); + group2.setCourse(course4); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + + Course course5 = new Course(); + course5.setCourseId("42"); + course5.setCourseName("Course Name"); + course5.setCourseStudents(new ArrayList<>()); + course5.setCourseTeachers(new ArrayList<>()); + course5.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course5.setDescription("The characteristics of someone or something"); + course5.setEnrollKey("Enroll Key"); + course5.setGroups(new ArrayList<>()); + course5.setSemester("Semester"); + course5.setTopics(new ArrayList<>()); + course5.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course5); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + ViewPermissionTopic viewPermissionTopic = new ViewPermissionTopic(); + viewPermissionTopic.setGroup(group2); + viewPermissionTopic.setGroupId("42"); + viewPermissionTopic.setTopic(topic2); + viewPermissionTopic.setTopicId("42"); + + ArrayList viewPermissionTopicList = new ArrayList<>(); + viewPermissionTopicList.add(viewPermissionTopic); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())) + .thenReturn(viewPermissionTopicList); + + // Act + List actualAllTopicsByCourseId = topicImpl.getAllTopicsByCourseId("42"); + + // Assert + verify(topicRepository).getAllTopicsByCourseId(eq("42")); + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(exerciseService).getExercisesByTopicId(eq("42")); + verify(materialService).getAllByTopicId(eq("42")); + verify(courseRepository).findById(eq("42")); + verify(groupRepository).findById(eq("42")); + assertEquals(1, actualAllTopicsByCourseId.size()); + } + + /** + * Method under test: {@link TopicImpl#updateTopic(UpdateTopicRequest)} + */ + @Test + void testUpdateTopic() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + when(topicRepository.save(Mockito.any())).thenReturn(topic2); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Topic actualUpdateTopicResult = topicImpl + .updateTopic(new UpdateTopicRequest("42", "Topic Name", "The characteristics of someone or something", true)); + + // Assert + verify(topicRepository, atLeast(1)).findById(eq("42")); + verify(topicRepository).save(isA(Topic.class)); + LocalTime expectedToLocalTimeResult = actualUpdateTopicResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualUpdateTopicResult.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link TopicImpl#updateTopic(UpdateTopicRequest)} + */ + @Test + void testUpdateTopic2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.save(Mockito.any())).thenThrow(new RuntimeException("foo")); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl + .updateTopic(new UpdateTopicRequest("42", "Topic Name", "The characteristics of someone or something", true))); + verify(topicRepository, atLeast(1)).findById(eq("42")); + verify(topicRepository).save(isA(Topic.class)); + } + + /** + * Method under test: {@link TopicImpl#updateTopic(UpdateTopicRequest)} + */ + @Test + void testUpdateTopic3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl + .updateTopic(new UpdateTopicRequest("42", "Topic Name", "The characteristics of someone or something", true))); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getAllGroupsByTopicId(String)} + */ + @Test + void testGetAllGroupsByTopicId() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualAllGroupsByTopicId = topicImpl.getAllGroupsByTopicId("42"); + + // Assert + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(topicRepository).findById(eq("42")); + assertTrue(actualAllGroupsByTopicId.isEmpty()); + } + + /** + * Method under test: {@link TopicImpl#getAllGroupsByTopicId(String)} + */ + @Test + void testGetAllGroupsByTopicId2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())) + .thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.getAllGroupsByTopicId("42")); + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getAllGroupsByTopicId(String)} + */ + @Test + void testGetAllGroupsByTopicId3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl.getAllGroupsByTopicId("42")); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getAllGroupsByTopicId(String)} + */ + @Test + void testGetAllGroupsByTopicId4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult2); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group2 = new Group(); + group2.setCourse(course3); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + + Course course4 = new Course(); + course4.setCourseId("42"); + course4.setCourseName("Course Name"); + course4.setCourseStudents(new ArrayList<>()); + course4.setCourseTeachers(new ArrayList<>()); + course4.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course4.setDescription("The characteristics of someone or something"); + course4.setEnrollKey("Enroll Key"); + course4.setGroups(new ArrayList<>()); + course4.setSemester("Semester"); + course4.setTopics(new ArrayList<>()); + course4.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course4); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + ViewPermissionTopic viewPermissionTopic = new ViewPermissionTopic(); + viewPermissionTopic.setGroup(group2); + viewPermissionTopic.setGroupId("42"); + viewPermissionTopic.setTopic(topic2); + viewPermissionTopic.setTopicId("42"); + + ArrayList viewPermissionTopicList = new ArrayList<>(); + viewPermissionTopicList.add(viewPermissionTopic); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())) + .thenReturn(viewPermissionTopicList); + + // Act + List actualAllGroupsByTopicId = topicImpl.getAllGroupsByTopicId("42"); + + // Assert + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(groupRepository).findById(eq("42")); + verify(topicRepository).findById(eq("42")); + assertEquals(1, actualAllGroupsByTopicId.size()); + } + + /** + * Method under test: {@link TopicImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + boolean actualRemoveViewPermissionResult = topicImpl.removeViewPermission("42", new ArrayList<>()); + + // Assert + verify(topicRepository).findById(eq("42")); + assertTrue(actualRemoveViewPermissionResult); + } + + /** + * Method under test: {@link TopicImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl.removeViewPermission("42", new ArrayList<>())); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission3() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult2); + doNothing().when(viewPermissionTopicRepository).removeViewPermission(Mockito.any(), Mockito.any()); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act + boolean actualRemoveViewPermissionResult = topicImpl.removeViewPermission("42", groupIds); + + // Assert + verify(viewPermissionTopicRepository).removeViewPermission(eq("42"), eq("foo")); + verify(topicRepository).findById(eq("42")); + verify(groupRepository).findById(eq("foo")); + assertTrue(actualRemoveViewPermissionResult); + } + + /** + * Method under test: {@link TopicImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult2); + doThrow(new RuntimeException("foo")).when(viewPermissionTopicRepository) + .removeViewPermission(Mockito.any(), Mockito.any()); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.removeViewPermission("42", groupIds)); + verify(viewPermissionTopicRepository).removeViewPermission(eq("42"), eq("foo")); + verify(topicRepository).findById(eq("42")); + verify(groupRepository).findById(eq("foo")); + } + + /** + * Method under test: {@link TopicImpl#removeViewPermission(String, List)} + */ + @Test + void testRemoveViewPermission5() { + // Arrange + Optional emptyResult = Optional.empty(); + when(groupRepository.findById(Mockito.any())).thenReturn(emptyResult); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl.removeViewPermission("42", groupIds)); + verify(topicRepository).findById(eq("42")); + verify(groupRepository).findById(eq("foo")); + } + + /** + * Method under test: {@link TopicImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + when(topicRepository.save(Mockito.any())).thenReturn(topic2); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + doNothing().when(viewPermissionTopicRepository).removeViewPermissionByTopicId(Mockito.any()); + + // Act + boolean actualAddViewPermissionResult = topicImpl.addViewPermission("42", new ArrayList<>(), true); + + // Assert + verify(viewPermissionTopicRepository).removeViewPermissionByTopicId(eq("42")); + verify(topicRepository).findById(eq("42")); + verify(topicRepository).save(isA(Topic.class)); + assertTrue(actualAddViewPermissionResult); + } + + /** + * Method under test: {@link TopicImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + doThrow(new RuntimeException("foo")).when(viewPermissionTopicRepository) + .removeViewPermissionByTopicId(Mockito.any()); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.addViewPermission("42", new ArrayList<>(), true)); + verify(viewPermissionTopicRepository).removeViewPermissionByTopicId(eq("42")); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl.addViewPermission("42", new ArrayList<>(), true)); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission4() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(topic); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course3); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + when(topicRepository.save(Mockito.any())).thenReturn(topic2); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult2); + doNothing().when(viewPermissionTopicRepository).addViewPermission(Mockito.any(), Mockito.any()); + doNothing().when(viewPermissionTopicRepository).removeViewPermissionByTopicId(Mockito.any()); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act + boolean actualAddViewPermissionResult = topicImpl.addViewPermission("42", groupIds, true); + + // Assert + verify(viewPermissionTopicRepository).addViewPermission(eq("42"), eq("foo")); + verify(viewPermissionTopicRepository).removeViewPermissionByTopicId(eq("42")); + verify(topicRepository).findById(eq("42")); + verify(groupRepository).findById(eq("foo")); + verify(topicRepository).save(isA(Topic.class)); + assertTrue(actualAddViewPermissionResult); + } + + /** + * Method under test: {@link TopicImpl#addViewPermission(String, List, boolean)} + */ + @Test + void testAddViewPermission5() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult2 = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult2); + doThrow(new RuntimeException("foo")).when(viewPermissionTopicRepository) + .addViewPermission(Mockito.any(), Mockito.any()); + doNothing().when(viewPermissionTopicRepository).removeViewPermissionByTopicId(Mockito.any()); + + ArrayList groupIds = new ArrayList<>(); + groupIds.add("foo"); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.addViewPermission("42", groupIds, true)); + verify(viewPermissionTopicRepository).addViewPermission(eq("42"), eq("foo")); + verify(viewPermissionTopicRepository).removeViewPermissionByTopicId(eq("42")); + verify(topicRepository).findById(eq("42")); + verify(groupRepository).findById(eq("foo")); + } + + /** + * Method under test: {@link TopicImpl#getTopicByUserId(String, String)} + */ + @Test + void testGetTopicByUserId() { + // Arrange + when(topicRepository.getTopicByUser(Mockito.any(), Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualTopicByUserId = topicImpl.getTopicByUserId("42", "42"); + + // Assert + verify(topicRepository).getTopicByUser(eq("42"), eq("42")); + assertTrue(actualTopicByUserId.isEmpty()); + } + + /** + * Method under test: {@link TopicImpl#getTopicByUserId(String, String)} + */ + @Test + void testGetTopicByUserId2() { + // Arrange + when(exerciseService.getExercisesByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + when(materialService.getMaterialByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.getTopicByUser(Mockito.any(), Mockito.any())).thenReturn(topicList); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualTopicByUserId = topicImpl.getTopicByUserId("42", "42"); + + // Assert + verify(topicRepository).getTopicByUser(eq("42"), eq("42")); + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(exerciseService).getExercisesByUserId(eq("42"), eq("42")); + verify(materialService).getMaterialByUserId(eq("42"), eq("42")); + assertEquals(1, actualTopicByUserId.size()); + } + + /** + * Method under test: {@link TopicImpl#getTopicByUserId(String, String)} + */ + @Test + void testGetTopicByUserId3() { + // Arrange + when(exerciseService.getExercisesByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + when(materialService.getMaterialByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.getTopicByUser(Mockito.any(), Mockito.any())).thenReturn(topicList); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())) + .thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.getTopicByUserId("42", "42")); + verify(topicRepository).getTopicByUser(eq("42"), eq("42")); + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(exerciseService).getExercisesByUserId(eq("42"), eq("42")); + verify(materialService).getMaterialByUserId(eq("42"), eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getTopicByUserId(String, String)} + */ + @Test + void testGetTopicByUserId4() { + // Arrange + when(exerciseService.getExercisesByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + when(materialService.getMaterialByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("Course Id"); + course2.setCourseName("42"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("Description"); + course2.setEnrollKey("42"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("42"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course2); + topic2.setCourseId("Course Id"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("Description"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(false); + topic2.setTopicId("Topic Id"); + topic2.setTopicName("42"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic2); + topicList.add(topic); + when(topicRepository.getTopicByUser(Mockito.any(), Mockito.any())).thenReturn(topicList); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + // Act + List actualTopicByUserId = topicImpl.getTopicByUserId("42", "42"); + + // Assert + verify(topicRepository).getTopicByUser(eq("42"), eq("42")); + verify(viewPermissionTopicRepository, atLeast(1)).getAllGroupsByTopicId(Mockito.any()); + verify(exerciseService, atLeast(1)).getExercisesByUserId(Mockito.any(), eq("42")); + verify(materialService, atLeast(1)).getMaterialByUserId(eq("42"), Mockito.any()); + assertEquals(2, actualTopicByUserId.size()); + } + + /** + * Method under test: {@link TopicImpl#getTopicByUserId(String, String)} + */ + @Test + void testGetTopicByUserId5() { + // Arrange + when(exerciseService.getExercisesByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group = new Group(); + group.setCourse(course); + group.setCourseId("42"); + group.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setGroupId("42"); + group.setGroupName("Group Name"); + group.setGroupStudents(new ArrayList<>()); + group.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group.setViewPermissionMaterials(new ArrayList<>()); + group.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(group); + when(groupRepository.findById(Mockito.any())).thenReturn(ofResult); + when(materialService.getMaterialByUserId(Mockito.any(), Mockito.any())) + .thenReturn(new ArrayList<>()); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + + ArrayList topicList = new ArrayList<>(); + topicList.add(topic); + when(topicRepository.getTopicByUser(Mockito.any(), Mockito.any())).thenReturn(topicList); + + Course course3 = new Course(); + course3.setCourseId("42"); + course3.setCourseName("Course Name"); + course3.setCourseStudents(new ArrayList<>()); + course3.setCourseTeachers(new ArrayList<>()); + course3.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course3.setDescription("The characteristics of someone or something"); + course3.setEnrollKey("Enroll Key"); + course3.setGroups(new ArrayList<>()); + course3.setSemester("Semester"); + course3.setTopics(new ArrayList<>()); + course3.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Group group2 = new Group(); + group2.setCourse(course3); + group2.setCourseId("42"); + group2.setCreateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setGroupId("42"); + group2.setGroupName("Group Name"); + group2.setGroupStudents(new ArrayList<>()); + group2.setUpdateDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + group2.setViewPermissionMaterials(new ArrayList<>()); + group2.setViewPermissionTopics(new ArrayList<>()); + + Course course4 = new Course(); + course4.setCourseId("42"); + course4.setCourseName("Course Name"); + course4.setCourseStudents(new ArrayList<>()); + course4.setCourseTeachers(new ArrayList<>()); + course4.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course4.setDescription("The characteristics of someone or something"); + course4.setEnrollKey("Enroll Key"); + course4.setGroups(new ArrayList<>()); + course4.setSemester("Semester"); + course4.setTopics(new ArrayList<>()); + course4.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic2 = new Topic(); + topic2.setCourse(course4); + topic2.setCourseId("42"); + topic2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setDescription("The characteristics of someone or something"); + topic2.setMaterials(new ArrayList<>()); + topic2.setShowAll(true); + topic2.setTopicId("42"); + topic2.setTopicName("Topic Name"); + topic2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic2.setViewPermissionTopics(new ArrayList<>()); + + ViewPermissionTopic viewPermissionTopic = new ViewPermissionTopic(); + viewPermissionTopic.setGroup(group2); + viewPermissionTopic.setGroupId("42"); + viewPermissionTopic.setTopic(topic2); + viewPermissionTopic.setTopicId("42"); + + ArrayList viewPermissionTopicList = new ArrayList<>(); + viewPermissionTopicList.add(viewPermissionTopic); + when(viewPermissionTopicRepository.getAllGroupsByTopicId(Mockito.any())) + .thenReturn(viewPermissionTopicList); + + // Act + List actualTopicByUserId = topicImpl.getTopicByUserId("42", "42"); + + // Assert + verify(topicRepository).getTopicByUser(eq("42"), eq("42")); + verify(viewPermissionTopicRepository).getAllGroupsByTopicId(eq("42")); + verify(exerciseService).getExercisesByUserId(eq("42"), eq("42")); + verify(materialService).getMaterialByUserId(eq("42"), eq("42")); + verify(groupRepository).findById(eq("42")); + assertEquals(1, actualTopicByUserId.size()); + } + + /** + * Method under test: {@link TopicImpl#createOne(CreateTopicRequest)} + */ + @Test + void testCreateOne() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + + Course course2 = new Course(); + course2.setCourseId("42"); + course2.setCourseName("Course Name"); + course2.setCourseStudents(new ArrayList<>()); + course2.setCourseTeachers(new ArrayList<>()); + course2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course2.setDescription("The characteristics of someone or something"); + course2.setEnrollKey("Enroll Key"); + course2.setGroups(new ArrayList<>()); + course2.setSemester("Semester"); + course2.setTopics(new ArrayList<>()); + course2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course2); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + when(topicRepository.save(Mockito.any())).thenReturn(topic); + + // Act + Topic actualCreateOneResult = topicImpl + .createOne(new CreateTopicRequest("42", "Topic Name", "The characteristics of someone or something")); + + // Assert + verify(courseRepository).findById(eq("42")); + verify(topicRepository).save(isA(Topic.class)); + LocalTime expectedToLocalTimeResult = actualCreateOneResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualCreateOneResult.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link TopicImpl#createOne(CreateTopicRequest)} + */ + @Test + void testCreateOne2() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + Optional ofResult = Optional.of(course); + when(courseRepository.findById(Mockito.any())).thenReturn(ofResult); + when(topicRepository.save(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl + .createOne(new CreateTopicRequest("42", "Topic Name", "The characteristics of someone or something"))); + verify(courseRepository).findById(eq("42")); + verify(topicRepository).save(isA(Topic.class)); + } + + /** + * Method under test: {@link TopicImpl#createOne(CreateTopicRequest)} + */ + @Test + void testCreateOne3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(courseRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl + .createOne(new CreateTopicRequest("42", "Topic Name", "The characteristics of someone or something"))); + verify(courseRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getById(String)} + */ + @Test + void testGetById() { + // Arrange + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + Topic actualById = topicImpl.getById("42"); + + // Assert + verify(topicRepository).findById(eq("42")); + LocalTime expectedToLocalTimeResult = actualById.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualById.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link TopicImpl#getById(String)} + */ + @Test + void testGetById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl.getById("42")); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getById(String)} + */ + @Test + void testGetById3() { + // Arrange + when(topicRepository.findById(Mockito.any())).thenThrow(new RuntimeException("foo")); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.getById("42")); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#getAll()} + */ + @Test + void testGetAll() { + // Arrange, Act and Assert + assertThrows(UnsupportedOperationException.class, () -> topicImpl.getAll()); + } + + /** + * Method under test: {@link TopicImpl#deleteById(String)} + */ + @Test + void testDeleteById() { + // Arrange + when(exerciseService.getExercisesByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + doNothing().when(topicRepository).deleteById(Mockito.any()); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + topicImpl.deleteById("42"); + + // Assert that nothing has changed + verify(exerciseService).getExercisesByTopicId(eq("42")); + verify(topicRepository).deleteById(eq("42")); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#deleteById(String)} + */ + @Test + void testDeleteById2() { + // Arrange + when(exerciseService.getExercisesByTopicId(Mockito.any())).thenReturn(new ArrayList<>()); + + Course course = new Course(); + course.setCourseId("42"); + course.setCourseName("Course Name"); + course.setCourseStudents(new ArrayList<>()); + course.setCourseTeachers(new ArrayList<>()); + course.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + course.setDescription("The characteristics of someone or something"); + course.setEnrollKey("Enroll Key"); + course.setGroups(new ArrayList<>()); + course.setSemester("Semester"); + course.setTopics(new ArrayList<>()); + course.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + + Topic topic = new Topic(); + topic.setCourse(course); + topic.setCourseId("42"); + topic.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setDescription("The characteristics of someone or something"); + topic.setMaterials(new ArrayList<>()); + topic.setShowAll(true); + topic.setTopicId("42"); + topic.setTopicName("Topic Name"); + topic.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + topic.setViewPermissionTopics(new ArrayList<>()); + Optional ofResult = Optional.of(topic); + doThrow(new RuntimeException("foo")).when(topicRepository).deleteById(Mockito.any()); + when(topicRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(RuntimeException.class, () -> topicImpl.deleteById("42")); + verify(exerciseService).getExercisesByTopicId(eq("42")); + verify(topicRepository).deleteById(eq("42")); + verify(topicRepository).findById(eq("42")); + } + + /** + * Method under test: {@link TopicImpl#deleteById(String)} + */ + @Test + void testDeleteById3() { + // Arrange + Optional emptyResult = Optional.empty(); + when(topicRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> topicImpl.deleteById("42")); + verify(topicRepository).findById(eq("42")); + } +} diff --git a/src/test/java/com/example/codeE/service/user/UserImplDiffblueTest.java b/src/test/java/com/example/codeE/service/user/UserImplDiffblueTest.java new file mode 100644 index 00000000..091b62b5 --- /dev/null +++ b/src/test/java/com/example/codeE/service/user/UserImplDiffblueTest.java @@ -0,0 +1,677 @@ +package com.example.codeE.service.user; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.ArgumentMatchers.isNull; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.example.codeE.mapper.user.UserFromExcel; +import com.example.codeE.model.course.CourseStudent; +import com.example.codeE.model.course.CourseTeacher; +import com.example.codeE.model.group.GroupStudent; +import com.example.codeE.model.user.User; +import com.example.codeE.repository.UserRepository; +import com.example.codeE.request.user.CreateUserRequest; +import com.example.codeE.request.user.GetUsersRequest; +import com.example.codeE.request.user.UpdateUserRequest; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.aot.DisabledInAotMode; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.multipart.MultipartFile; + +@ContextConfiguration(classes = {UserImpl.class}) +@ExtendWith(SpringExtension.class) +@DisabledInAotMode +class UserImplDiffblueTest { + @Autowired + private UserImpl userImpl; + + @MockBean + private UserRepository userRepository; + + /** + * Method under test: {@link UserImpl#getById(String)} + */ + @Test + void testGetById() { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + User actualById = userImpl.getById("42"); + + // Assert + verify(userRepository).findById(eq("42")); + LocalTime expectedToLocalTimeResult = actualById.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualById.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link UserImpl#getById(String)} + */ + @Test + void testGetById2() { + // Arrange + Optional emptyResult = Optional.empty(); + when(userRepository.findById(Mockito.any())).thenReturn(emptyResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.getById("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link UserImpl#getById(String)} + */ + @Test + void testGetById3() { + // Arrange + when(userRepository.findById(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.getById("42")); + verify(userRepository).findById(eq("42")); + } + + /** + * Method under test: {@link UserImpl#getAll()} + */ + @Test + void testGetAll() { + // Arrange + ArrayList userList = new ArrayList<>(); + when(userRepository.findAll()).thenReturn(userList); + + // Act + List actualAll = userImpl.getAll(); + + // Assert + verify(userRepository).findAll(); + assertTrue(actualAll.isEmpty()); + assertSame(userList, actualAll); + } + + /** + * Method under test: {@link UserImpl#getAll()} + */ + @Test + void testGetAll2() { + // Arrange + when(userRepository.findAll()).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.getAll()); + verify(userRepository).findAll(); + } + + /** + * Method under test: {@link UserImpl#getUsersByRoleOrAll(String)} + */ + @Test + void testGetUsersByRoleOrAll() { + // Arrange, Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.getUsersByRoleOrAll("Role")); + } + + /** + * Method under test: {@link UserImpl#getUsersByRoleOrAll(String)} + */ + @Test + void testGetUsersByRoleOrAll2() { + // Arrange + ArrayList userList = new ArrayList<>(); + when(userRepository.findAll()).thenReturn(userList); + + // Act + List actualUsersByRoleOrAll = userImpl.getUsersByRoleOrAll("all"); + + // Assert + verify(userRepository).findAll(); + assertTrue(actualUsersByRoleOrAll.isEmpty()); + assertSame(userList, actualUsersByRoleOrAll); + } + + /** + * Method under test: {@link UserImpl#getUsersByRoleOrAll(String)} + */ + @Test + void testGetUsersByRoleOrAll3() { + // Arrange + ArrayList userList = new ArrayList<>(); + when(userRepository.findAll()).thenReturn(userList); + + // Act + List actualUsersByRoleOrAll = userImpl.getUsersByRoleOrAll(null); + + // Assert + verify(userRepository).findAll(); + assertTrue(actualUsersByRoleOrAll.isEmpty()); + assertSame(userList, actualUsersByRoleOrAll); + } + + /** + * Method under test: {@link UserImpl#getUsersByRoleOrAll(String)} + */ + @Test + void testGetUsersByRoleOrAll4() { + // Arrange + when(userRepository.findAll()).thenThrow(new NoSuchElementException("all")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.getUsersByRoleOrAll("all")); + verify(userRepository).findAll(); + } + + /** + * Method under test: + * {@link UserImpl#getUsersByRoleAndSearchKeyword(GetUsersRequest)} + */ + @Test + void testGetUsersByRoleAndSearchKeyword() { + // Arrange + ArrayList userList = new ArrayList<>(); + when(userRepository.findUsersByRoleAndSearchKeyword(Mockito.any(), Mockito.any())) + .thenReturn(userList); + + // Act + List actualUsersByRoleAndSearchKeyword = userImpl.getUsersByRoleAndSearchKeyword(new GetUsersRequest()); + + // Assert + verify(userRepository).findUsersByRoleAndSearchKeyword(isNull(), isNull()); + assertTrue(actualUsersByRoleAndSearchKeyword.isEmpty()); + assertSame(userList, actualUsersByRoleAndSearchKeyword); + } + + /** + * Method under test: + * {@link UserImpl#getUsersByRoleAndSearchKeyword(GetUsersRequest)} + */ + @Test + void testGetUsersByRoleAndSearchKeyword2() { + // Arrange + when(userRepository.findUsersByRoleAndSearchKeyword(Mockito.any(), Mockito.any())) + .thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.getUsersByRoleAndSearchKeyword(new GetUsersRequest())); + verify(userRepository).findUsersByRoleAndSearchKeyword(isNull(), isNull()); + } + + /** + * Method under test: {@link UserImpl#createOne(CreateUserRequest)} + */ + @Test + void testCreateOne() { + // Arrange, Act and Assert + assertThrows(RuntimeException.class, + () -> userImpl.createOne(new CreateUserRequest("Name", "jane.doe@example.org", "janedoe", "Role"))); + assertThrows(RuntimeException.class, () -> userImpl + .createOne(new CreateUserRequest("abcdefghijklmnopqrstuvwxyz", "jane.doe@example.org", "janedoe", "Role"))); + } + + /** + * Method under test: {@link UserImpl#updateById(String, UpdateUserRequest)} + */ + @Test + void testUpdateById() { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + + User user2 = new User(); + user2.setCourseStudents(new ArrayList<>()); + user2.setCourseTeachers(new ArrayList<>()); + user2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user2.setEmail("jane.doe@example.org"); + user2.setGroupStudents(new ArrayList<>()); + user2.setName("Name"); + user2.setPassword("iloveyou"); + user2.setRole("Role"); + user2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user2.setUserId("42"); + user2.setUsername("janedoe"); + when(userRepository.save(Mockito.any())).thenReturn(user2); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + User actualUpdateByIdResult = userImpl.updateById("42", new UpdateUserRequest()); + + // Assert + verify(userRepository).findById(eq("42")); + verify(userRepository).save(isA(User.class)); + LocalTime expectedToLocalTimeResult = actualUpdateByIdResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualUpdateByIdResult.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link UserImpl#updateById(String, UpdateUserRequest)} + */ + @Test + void testUpdateById2() { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + when(userRepository.save(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.updateById("42", new UpdateUserRequest())); + verify(userRepository).findById(eq("42")); + verify(userRepository).save(isA(User.class)); + } + + /** + * Method under test: {@link UserImpl#updateById(String, UpdateUserRequest)} + */ + @Test + void testUpdateById3() { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + Optional ofResult = Optional.of(user); + + User user2 = new User(); + user2.setCourseStudents(new ArrayList<>()); + user2.setCourseTeachers(new ArrayList<>()); + user2.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user2.setEmail("jane.doe@example.org"); + user2.setGroupStudents(new ArrayList<>()); + user2.setName("Name"); + user2.setPassword("iloveyou"); + user2.setRole("Role"); + user2.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user2.setUserId("42"); + user2.setUsername("janedoe"); + when(userRepository.save(Mockito.any())).thenReturn(user2); + when(userRepository.findById(Mockito.any())).thenReturn(ofResult); + + // Act + User actualUpdateByIdResult = userImpl.updateById("42", new UpdateUserRequest("42", "2020-03-01", "2020-03-01", + "janedoe", "2020-03-01", "2020-03-01", LocalDate.of(1970, 1, 1).atStartOfDay())); + + // Assert + verify(userRepository).findById(eq("42")); + verify(userRepository).save(isA(User.class)); + LocalTime expectedToLocalTimeResult = actualUpdateByIdResult.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualUpdateByIdResult.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link UserImpl#getUserByUserName(String, String)} + */ + @Test + void testGetUserByUserName() { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserName(Mockito.any())).thenReturn(user); + + // Act + User actualUserByUserName = userImpl.getUserByUserName("Role", "janedoe"); + + // Assert + verify(userRepository).findUserByUserName(eq("janedoe")); + LocalTime expectedToLocalTimeResult = actualUserByUserName.getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, actualUserByUserName.getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link UserImpl#getUserByUserName(String, String)} + */ + @Test + void testGetUserByUserName2() { + // Arrange + when(userRepository.findUserByUserName(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.getUserByUserName("Role", "janedoe")); + verify(userRepository).findUserByUserName(eq("janedoe")); + } + + /** + * Method under test: {@link UserImpl#ChangePassword(String, String, String)} + */ + @Test + void testChangePassword() { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act and Assert + assertThrows(DataIntegrityViolationException.class, () -> userImpl.ChangePassword("42", "iloveyou", "iloveyou")); + verify(userRepository).findUserByUserId(eq("42")); + } + + /** + * Method under test: {@link UserImpl#ChangePassword(String, String, String)} + */ + @Test + void testChangePassword2() { + // Arrange + User user = new User(new UserFromExcel("42", "Old password is incorrect", "jane.doe@example.org", "janedoe", + "Old password is incorrect"), "iloveyou"); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act and Assert + assertThrows(DataIntegrityViolationException.class, () -> userImpl.ChangePassword("42", "iloveyou", "iloveyou")); + verify(userRepository).findUserByUserId(eq("42")); + } + + /** + * Method under test: {@link UserImpl#ChangePassword(String, String, String)} + */ + @Test + void testChangePassword3() { + // Arrange + User user = mock(User.class); + when(user.getPassword()).thenReturn("iloveyou"); + doNothing().when(user).setCourseStudents(Mockito.>any()); + doNothing().when(user).setCourseTeachers(Mockito.>any()); + doNothing().when(user).setCreatedDate(Mockito.any()); + doNothing().when(user).setEmail(Mockito.any()); + doNothing().when(user).setGroupStudents(Mockito.>any()); + doNothing().when(user).setName(Mockito.any()); + doNothing().when(user).setPassword(Mockito.any()); + doNothing().when(user).setRole(Mockito.any()); + doNothing().when(user).setUpdatedDate(Mockito.any()); + doNothing().when(user).setUserId(Mockito.any()); + doNothing().when(user).setUsername(Mockito.any()); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserId(Mockito.any())).thenReturn(user); + + // Act and Assert + assertThrows(DataIntegrityViolationException.class, () -> userImpl.ChangePassword("42", "iloveyou", "iloveyou")); + verify(user).getPassword(); + verify(user).setCourseStudents(isA(List.class)); + verify(user).setCourseTeachers(isA(List.class)); + verify(user).setCreatedDate(isA(LocalDateTime.class)); + verify(user).setEmail(eq("jane.doe@example.org")); + verify(user).setGroupStudents(isA(List.class)); + verify(user).setName(eq("Name")); + verify(user).setPassword(eq("iloveyou")); + verify(user).setRole(eq("Role")); + verify(user).setUpdatedDate(isA(LocalDateTime.class)); + verify(user).setUserId(eq("42")); + verify(user).setUsername(eq("janedoe")); + verify(userRepository).findUserByUserId(eq("42")); + } + + /** + * Method under test: {@link UserImpl#deleteById(String)} + */ + @Test + void testDeleteById() { + // Arrange + doNothing().when(userRepository).deleteById(Mockito.any()); + when(userRepository.existsById(Mockito.any())).thenReturn(true); + + // Act + userImpl.deleteById("42"); + + // Assert that nothing has changed + verify(userRepository).deleteById(eq("42")); + verify(userRepository).existsById(eq("42")); + assertTrue(userImpl.getAll().isEmpty()); + } + + /** + * Method under test: {@link UserImpl#deleteById(String)} + */ + @Test + void testDeleteById2() { + // Arrange + doThrow(new NoSuchElementException("foo")).when(userRepository).deleteById(Mockito.any()); + when(userRepository.existsById(Mockito.any())).thenReturn(true); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.deleteById("42")); + verify(userRepository).deleteById(eq("42")); + verify(userRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link UserImpl#deleteById(String)} + */ + @Test + void testDeleteById3() { + // Arrange + when(userRepository.existsById(Mockito.any())).thenReturn(false); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.deleteById("42")); + verify(userRepository).existsById(eq("42")); + } + + /** + * Method under test: {@link UserImpl#paginateUsers(GetUsersRequest)} + */ + @Test + void testPaginateUsers() { + // Arrange + ArrayList userList = new ArrayList<>(); + when(userRepository.findUsersByRoleAndSearchKeywordWithPagination(Mockito.any(), Mockito.any(), + Mockito.any())).thenReturn(userList); + + // Act + List actualPaginateUsersResult = userImpl.paginateUsers(new GetUsersRequest()); + + // Assert + verify(userRepository).findUsersByRoleAndSearchKeywordWithPagination(isNull(), isNull(), isNull()); + assertTrue(actualPaginateUsersResult.isEmpty()); + assertSame(userList, actualPaginateUsersResult); + } + + /** + * Method under test: {@link UserImpl#paginateUsers(GetUsersRequest)} + */ + @Test + void testPaginateUsers2() { + // Arrange + when(userRepository.findUsersByRoleAndSearchKeywordWithPagination(Mockito.any(), Mockito.any(), + Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.paginateUsers(new GetUsersRequest())); + verify(userRepository).findUsersByRoleAndSearchKeywordWithPagination(isNull(), isNull(), isNull()); + } + + /** + * Method under test: {@link UserImpl#saveUserToDatabase(MultipartFile)} + */ + @Test + void testSaveUserToDatabase() throws IOException { + // Arrange and Act + ResponseEntity> actualSaveUserToDatabaseResult = userImpl + .saveUserToDatabase(new MockMultipartFile("Name", new ByteArrayInputStream("AXAXAXAX".getBytes("UTF-8")))); + + // Assert + assertEquals(1, actualSaveUserToDatabaseResult.getBody().size()); + assertEquals(400, actualSaveUserToDatabaseResult.getStatusCodeValue()); + assertTrue(actualSaveUserToDatabaseResult.hasBody()); + assertTrue(actualSaveUserToDatabaseResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link UserImpl#saveUserToDatabase(MultipartFile)} + */ + @Test + void testSaveUserToDatabase2() throws IOException { + // Arrange + DataInputStream contentStream = mock(DataInputStream.class); + when(contentStream.readAllBytes()).thenReturn("AXAXAXAX".getBytes("UTF-8")); + doNothing().when(contentStream).close(); + + // Act + ResponseEntity> actualSaveUserToDatabaseResult = userImpl + .saveUserToDatabase(new MockMultipartFile("Name", contentStream)); + + // Assert + verify(contentStream).close(); + verify(contentStream).readAllBytes(); + assertEquals(1, actualSaveUserToDatabaseResult.getBody().size()); + assertEquals(400, actualSaveUserToDatabaseResult.getStatusCodeValue()); + assertTrue(actualSaveUserToDatabaseResult.hasBody()); + assertTrue(actualSaveUserToDatabaseResult.getHeaders().isEmpty()); + } + + /** + * Method under test: {@link UserImpl#loadUserByUsername(String)} + */ + @Test + void testLoadUserByUsername() throws UsernameNotFoundException { + // Arrange + User user = new User(); + user.setCourseStudents(new ArrayList<>()); + user.setCourseTeachers(new ArrayList<>()); + user.setCreatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setEmail("jane.doe@example.org"); + user.setGroupStudents(new ArrayList<>()); + user.setName("Name"); + user.setPassword("iloveyou"); + user.setRole("Role"); + user.setUpdatedDate(LocalDate.of(1970, 1, 1).atStartOfDay()); + user.setUserId("42"); + user.setUsername("janedoe"); + when(userRepository.findUserByUserName(Mockito.any())).thenReturn(user); + + // Act + UserDetails actualLoadUserByUsernameResult = userImpl.loadUserByUsername("janedoe"); + + // Assert + verify(userRepository).findUserByUserName(eq("janedoe")); + LocalTime expectedToLocalTimeResult = ((User) actualLoadUserByUsernameResult).getUpdatedDate().toLocalTime(); + assertSame(expectedToLocalTimeResult, ((User) actualLoadUserByUsernameResult).getCreatedDate().toLocalTime()); + } + + /** + * Method under test: {@link UserImpl#loadUserByUsername(String)} + */ + @Test + void testLoadUserByUsername2() throws UsernameNotFoundException { + // Arrange + when(userRepository.findUserByUserName(Mockito.any())).thenThrow(new NoSuchElementException("foo")); + + // Act and Assert + assertThrows(NoSuchElementException.class, () -> userImpl.loadUserByUsername("janedoe")); + verify(userRepository).findUserByUserName(eq("janedoe")); + } +}