RecommendationRequestController.java

1
package edu.ucsb.cs156.rec.controllers;
2
3
import edu.ucsb.cs156.rec.entities.RecommendationRequest;
4
import edu.ucsb.cs156.rec.entities.RequestType;
5
import edu.ucsb.cs156.rec.entities.User;
6
import edu.ucsb.cs156.rec.errors.EntityNotFoundException;
7
import edu.ucsb.cs156.rec.models.CurrentUser;
8
import edu.ucsb.cs156.rec.repositories.RecommendationRequestRepository;
9
import edu.ucsb.cs156.rec.repositories.RequestTypeRepository;
10
import edu.ucsb.cs156.rec.repositories.UserRepository;
11
import io.swagger.v3.oas.annotations.Operation;
12
import io.swagger.v3.oas.annotations.Parameter;
13
import io.swagger.v3.oas.annotations.tags.Tag;
14
import jakarta.validation.Valid;
15
import java.time.LocalDateTime;
16
import java.time.temporal.ChronoUnit;
17
import lombok.extern.slf4j.Slf4j;
18
import org.springframework.beans.factory.annotation.Autowired;
19
import org.springframework.format.annotation.DateTimeFormat;
20
import org.springframework.security.access.prepost.PreAuthorize;
21
import org.springframework.web.bind.annotation.DeleteMapping;
22
import org.springframework.web.bind.annotation.GetMapping;
23
import org.springframework.web.bind.annotation.PostMapping;
24
import org.springframework.web.bind.annotation.PutMapping;
25
import org.springframework.web.bind.annotation.RequestBody;
26
import org.springframework.web.bind.annotation.RequestMapping;
27
import org.springframework.web.bind.annotation.RequestParam;
28
import org.springframework.web.bind.annotation.RestController;
29
30
@Tag(name = "RecommendationRequest")
31
@RequestMapping("/api/recommendationrequest")
32
@RestController
33
@Slf4j
34
public class RecommendationRequestController extends ApiController {
35
36
  @Autowired RecommendationRequestRepository recommendationRequestRepository;
37
38
  @Autowired UserRepository userRepository;
39
40
  @Autowired RequestTypeRepository requestTypeRepository;
41
42
  /**
43
   * Any admin can delete a RecommendationRequest
44
   *
45
   * @param id the id of the RecommendationRequest to delete
46
   * @return a message indicating that the RecommendationRequest was deleted
47
   */
48
  @Operation(summary = "An admin can delete a RecommendationRequest")
49
  @PreAuthorize("hasRole('ROLE_ADMIN')")
50
  @DeleteMapping("/admin")
51
  public Object deleteRecommendationRequestAsAdmin(@Parameter(name = "id") @RequestParam Long id) {
52
    RecommendationRequest recommendationRequest =
53
        recommendationRequestRepository
54
            .findById(id)
55 1 1. lambda$deleteRecommendationRequestAsAdmin$0 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$deleteRecommendationRequestAsAdmin$0 → KILLED
            .orElseThrow(() -> new EntityNotFoundException(RecommendationRequest.class, id));
56
57 1 1. deleteRecommendationRequestAsAdmin : removed call to edu/ucsb/cs156/rec/repositories/RecommendationRequestRepository::delete → KILLED
    recommendationRequestRepository.delete(recommendationRequest);
58
59 1 1. deleteRecommendationRequestAsAdmin : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::deleteRecommendationRequestAsAdmin → KILLED
    return genericMessage("RecommendationRequest with id %s deleted".formatted(id));
60
  }
61
62
  /**
63
   * The user who posted a RecommendationRequest can delete their RecommendationRequest
64
   *
65
   * @param id the id of the RecommendationRequest to delete
66
   * @return a message indicating that the RecommendationRequest was deleted
67
   */
68
  @Operation(summary = "User can delete their RecommendationRequest")
69
  @PreAuthorize("hasRole('ROLE_USER')")
70
  @DeleteMapping("")
71
  public Object deleteRecommendationRequestAsUser(@Parameter(name = "id") @RequestParam Long id) {
72
    User currentUser = getCurrentUser().getUser();
73
    RecommendationRequest recommendationRequest =
74
        recommendationRequestRepository
75
            .findByIdAndRequester(id, currentUser)
76 1 1. lambda$deleteRecommendationRequestAsUser$1 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$deleteRecommendationRequestAsUser$1 → KILLED
            .orElseThrow(() -> new EntityNotFoundException(RecommendationRequest.class, id));
77
78 1 1. deleteRecommendationRequestAsUser : removed call to edu/ucsb/cs156/rec/repositories/RecommendationRequestRepository::delete → KILLED
    recommendationRequestRepository.delete(recommendationRequest);
79
80 1 1. deleteRecommendationRequestAsUser : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::deleteRecommendationRequestAsUser → KILLED
    return genericMessage("RecommendationRequest with id %s deleted".formatted(id));
81
  }
82
83
  /**
84
   * The professor can delete incoming RecommendationRequests
85
   *
86
   * @param id the id of the RecommendationRequest to delete
87
   * @return a message indicating that the RecommendationRequest was deleted
88
   */
89
  @Operation(summary = "Professor can delete their incoming RecommendationRequest")
90
  @PreAuthorize("hasRole('ROLE_PROFESSOR')")
91
  @DeleteMapping("/professor")
92
  public Object deleteRecommendationRequestAsProfessor(
93
      @Parameter(name = "id") @RequestParam Long id) {
94
    User currentUser = getCurrentUser().getUser();
95
    RecommendationRequest recommendationRequest =
96
        recommendationRequestRepository
97
            .findByIdAndProfessor(id, currentUser)
98 1 1. lambda$deleteRecommendationRequestAsProfessor$2 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$deleteRecommendationRequestAsProfessor$2 → KILLED
            .orElseThrow(() -> new EntityNotFoundException(RecommendationRequest.class, id));
99
100 1 1. deleteRecommendationRequestAsProfessor : removed call to edu/ucsb/cs156/rec/repositories/RecommendationRequestRepository::delete → KILLED
    recommendationRequestRepository.delete(recommendationRequest);
101
102 1 1. deleteRecommendationRequestAsProfessor : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::deleteRecommendationRequestAsProfessor → KILLED
    return genericMessage("RecommendationRequest with id %s deleted".formatted(id));
103
  }
104
105
  /**
106
   * The user who posted a RecommendationRequest can update their RecommendationRequest
107
   *
108
   * @param id the id of the Recommendation Request to update
109
   * @param incoming the updated Recommendation Request
110
   * @return the updated Recommendation Request object
111
   */
112
  @Operation(summary = "User can update their RecommendationRequest")
113
  @PreAuthorize("hasRole('ROLE_USER')")
114
  @PutMapping("")
115
  public RecommendationRequest updateRecommendationRequestAsUser(
116
      @Parameter(name = "id") @RequestParam Long id,
117
      @RequestBody @Valid RecommendationRequest incoming) {
118
119
    User currentUser = getCurrentUser().getUser();
120
    RecommendationRequest recommendationRequest =
121
        recommendationRequestRepository
122
            .findByIdAndRequester(id, currentUser)
123 1 1. lambda$updateRecommendationRequestAsUser$3 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$updateRecommendationRequestAsUser$3 → KILLED
            .orElseThrow(() -> new EntityNotFoundException(RecommendationRequest.class, id));
124
125 1 1. updateRecommendationRequestAsUser : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setDetails → KILLED
    recommendationRequest.setDetails(incoming.getDetails());
126
127
    recommendationRequestRepository.save(recommendationRequest);
128
129 1 1. updateRecommendationRequestAsUser : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::updateRecommendationRequestAsUser → KILLED
    return recommendationRequest;
130
  }
131
132
  /**
133
   * Prof can update a Recommendation Request's status
134
   *
135
   * @param id the id of the Recommendation Request to update
136
   * @param incoming the updated Recommendation Request
137
   * @return the updated Recommendation Request object
138
   */
139
  @Operation(summary = "A Professor can update a recommendation request's status")
140
  @PreAuthorize("hasRole('ROLE_PROFESSOR')")
141
  @PutMapping("/professor")
142
  public RecommendationRequest updateRecommendationRequestAsAdmin(
143
      @Parameter(name = "id") @RequestParam Long id,
144
      @RequestBody @Valid RecommendationRequest incoming) {
145
146
    RecommendationRequest recommendationRequest =
147
        recommendationRequestRepository
148
            .findById(id)
149 1 1. lambda$updateRecommendationRequestAsAdmin$4 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$updateRecommendationRequestAsAdmin$4 → KILLED
            .orElseThrow(() -> new EntityNotFoundException(RecommendationRequest.class, id));
150
151 1 1. updateRecommendationRequestAsAdmin : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setStatus → KILLED
    recommendationRequest.setStatus(incoming.getStatus());
152
153 1 1. updateRecommendationRequestAsAdmin : negated conditional → KILLED
    if ("COMPLETED".equalsIgnoreCase(incoming.getStatus())) {
154 1 1. updateRecommendationRequestAsAdmin : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setCompletionDate → KILLED
      recommendationRequest.setCompletionDate(LocalDateTime.now().truncatedTo(ChronoUnit.MINUTES));
155
    }
156
157
    recommendationRequestRepository.save(recommendationRequest);
158
159 1 1. updateRecommendationRequestAsAdmin : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::updateRecommendationRequestAsAdmin → KILLED
    return recommendationRequest;
160
  }
161
162
  /**
163
   * This method returns a list of all Recommendation Requests requested by current student.
164
   *
165
   * @return a list of all Recommendation Requests requested by the current user
166
   */
167
  @Operation(summary = "List all Recommendation Requests requested by current user")
168
  @PreAuthorize("hasRole('ROLE_USER')")
169
  @GetMapping("/requester/all")
170
  public Iterable<RecommendationRequest> allRequesterRecommendationRequests() {
171
    User currentUser = getCurrentUser().getUser();
172
    Iterable<RecommendationRequest> recommendationRequests =
173
        recommendationRequestRepository.findAllByRequesterId(currentUser.getId());
174 1 1. allRequesterRecommendationRequests : replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::allRequesterRecommendationRequests → KILLED
    return recommendationRequests;
175
  }
176
177
  /**
178
   * This method returns a list of all Recommendation Requests intended for current user who is a
179
   * professor.
180
   *
181
   * @return a list of all Recommendation Requests intended for the current user who is a professor
182
   */
183
  @Operation(summary = "List all Recommendation Requests for professor")
184
  @PreAuthorize("hasRole('ROLE_PROFESSOR')")
185
  @GetMapping("/professor/all")
186
  public Iterable<RecommendationRequest> allProfessorRecommendationRequests() {
187
    User currentUser = getCurrentUser().getUser();
188
    Iterable<RecommendationRequest> recommendationRequests =
189
        recommendationRequestRepository.findAllByProfessorId(currentUser.getId());
190 1 1. allProfessorRecommendationRequests : replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::allProfessorRecommendationRequests → KILLED
    return recommendationRequests;
191
  }
192
193
  /**
194
   * This method returns a single recommendation request where the current user is either the
195
   * requester or the professor.
196
   *
197
   * @param id id of the Recommendation Requests to get
198
   * @return a single recommendation request where the current user is either the requester or the
199
   *     professor
200
   */
201
  @Operation(
202
      summary =
203
          "Get a single recommendation request where the current user is either the requester or the professor")
204
  @PreAuthorize("hasRole('ROLE_USER')")
205
  @GetMapping("")
206
  public RecommendationRequest getById(@Parameter(name = "id") @RequestParam Long id) {
207
    Long currentUserId = getCurrentUser().getUser().getId();
208
    RecommendationRequest recommendationRequest =
209
        recommendationRequestRepository
210
            .findById(id)
211 1 1. lambda$getById$5 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$getById$5 → KILLED
            .orElseThrow(() -> new EntityNotFoundException(RecommendationRequest.class, id));
212 1 1. getById : negated conditional → KILLED
    if (recommendationRequest.getRequester().getId() != currentUserId
213 1 1. getById : negated conditional → KILLED
        && recommendationRequest.getProfessor().getId() != currentUserId) {
214
      throw new EntityNotFoundException(RecommendationRequest.class, id);
215
    }
216 1 1. getById : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::getById → KILLED
    return recommendationRequest;
217
  }
218
219
  /**
220
   * This method creates a new Recommendation Request. Accessible only to users with the role
221
   * "ROLE_USER" so professors and students can both create.
222
   *
223
   * @param professorId id from a dropdown of professors from the form in create page
224
   * @param recommendationType recommendation types of request
225
   * @param details details of request
226
   * @param dueDate submission date of request
227
   * @return the save recommendationrequests (with it's id field set by the database)
228
   */
229
  @Operation(summary = "Create a new recommendation request")
230
  @PreAuthorize("hasRole('ROLE_USER')")
231
  @PostMapping("/post")
232
  public RecommendationRequest postRecommendationRequests(
233
      @Parameter(name = "professorId") @RequestParam Long professorId,
234
      @Parameter(name = "recommendationType") @RequestParam String recommendationType,
235
      @Parameter(name = "details") @RequestParam String details,
236
      @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime dueDate) {
237
    // get current date right now and set status to pending
238
    CurrentUser currentUser = getCurrentUser();
239
    RecommendationRequest recommendationRequest = new RecommendationRequest();
240 1 1. postRecommendationRequests : negated conditional → KILLED
    if (!recommendationType.equals("Other")) {
241
      requestTypeRepository
242
          .findByRequestType(recommendationType)
243 1 1. lambda$postRecommendationRequests$6 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$postRecommendationRequests$6 → KILLED
          .orElseThrow(() -> new EntityNotFoundException(RequestType.class, recommendationType));
244
    }
245 1 1. postRecommendationRequests : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setRecommendationType → KILLED
    recommendationRequest.setRecommendationType(recommendationType);
246 1 1. postRecommendationRequests : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setDetails → KILLED
    recommendationRequest.setDetails(details);
247
    User professor =
248
        userRepository
249
            .findById(professorId)
250 1 1. lambda$postRecommendationRequests$7 : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$postRecommendationRequests$7 → KILLED
            .orElseThrow(() -> new EntityNotFoundException(User.class, professorId));
251 1 1. postRecommendationRequests : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setProfessor → KILLED
    recommendationRequest.setProfessor(professor);
252 1 1. postRecommendationRequests : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setRequester → KILLED
    recommendationRequest.setRequester(currentUser.getUser());
253 1 1. postRecommendationRequests : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setStatus → KILLED
    recommendationRequest.setStatus("PENDING");
254 1 1. postRecommendationRequests : removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setDueDate → KILLED
    recommendationRequest.setDueDate(dueDate);
255
256
    RecommendationRequest savedRecommendationRequest =
257
        recommendationRequestRepository.save(recommendationRequest);
258 1 1. postRecommendationRequests : replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::postRecommendationRequests → KILLED
    return savedRecommendationRequest;
259
  }
260
261
  /**
262
   * This method returns a list of recommendation requests with specified status for a professor.
263
   *
264
   * @return a list of recommendation requests with specified status for a professor.
265
   */
266
  @Operation(summary = "Get all recommendation requests with specified status for a professor")
267
  @GetMapping("/professor/filtered")
268
  @PreAuthorize("hasRole('ROLE_PROFESSOR')")
269
  public Iterable<RecommendationRequest> getRecommendationRequestByStatusForProfessor(
270
      @RequestParam String status) {
271
    User currentUser = getCurrentUser().getUser();
272
273 1 1. getRecommendationRequestByStatusForProfessor : replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::getRecommendationRequestByStatusForProfessor → KILLED
    return recommendationRequestRepository.findAllByProfessorIdAndStatus(
274
        currentUser.getId(), status);
275
  }
276
277
  /**
278
   * This method returns a list of all recommendation requests viewable by an admin user.
279
   *
280
   * @return a list of all recommendation requests
281
   */
282
  @Operation(summary = "Get all recommendation requests viewable by an admin user")
283
  @GetMapping("/admin")
284
  @PreAuthorize("hasRole('ROLE_ADMIN')")
285
  public Iterable<RecommendationRequest> getAllRecommendationRequests() {
286 1 1. getAllRecommendationRequests : replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::getAllRecommendationRequests → KILLED
    return recommendationRequestRepository.findAll();
287
  }
288
}

Mutations

55

1.1
Location : lambda$deleteRecommendationRequestAsAdmin$0
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:admin_can_not_delete_recommendation_request_that_does_not_exist()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$deleteRecommendationRequestAsAdmin$0 → KILLED

57

1.1
Location : deleteRecommendationRequestAsAdmin
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:admin_can_delete_recommendation_request()]
removed call to edu/ucsb/cs156/rec/repositories/RecommendationRequestRepository::delete → KILLED

59

1.1
Location : deleteRecommendationRequestAsAdmin
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:admin_can_delete_recommendation_request()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::deleteRecommendationRequestAsAdmin → KILLED

76

1.1
Location : lambda$deleteRecommendationRequestAsUser$1
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:user_can_not_delete_belonging_to_another_user()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$deleteRecommendationRequestAsUser$1 → KILLED

78

1.1
Location : deleteRecommendationRequestAsUser
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:user_can_delete_their_recommendation_request()]
removed call to edu/ucsb/cs156/rec/repositories/RecommendationRequestRepository::delete → KILLED

80

1.1
Location : deleteRecommendationRequestAsUser
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:user_can_delete_their_recommendation_request()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::deleteRecommendationRequestAsUser → KILLED

98

1.1
Location : lambda$deleteRecommendationRequestAsProfessor$2
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:professor_tries_to_delete_non_existant_recommendation_request_and_gets_right_error_message()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$deleteRecommendationRequestAsProfessor$2 → KILLED

100

1.1
Location : deleteRecommendationRequestAsProfessor
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:professor_can_delete_their_recommendation_request()]
removed call to edu/ucsb/cs156/rec/repositories/RecommendationRequestRepository::delete → KILLED

102

1.1
Location : deleteRecommendationRequestAsProfessor
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:professor_can_delete_their_recommendation_request()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::deleteRecommendationRequestAsProfessor → KILLED

123

1.1
Location : lambda$updateRecommendationRequestAsUser$3
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:user_can_not_put_recommendation_request_for_another_user()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$updateRecommendationRequestAsUser$3 → KILLED

125

1.1
Location : updateRecommendationRequestAsUser
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:user_logged_in_put_recommendation_request()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setDetails → KILLED

129

1.1
Location : updateRecommendationRequestAsUser
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:user_logged_in_put_recommendation_request()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::updateRecommendationRequestAsUser → KILLED

149

1.1
Location : lambda$updateRecommendationRequestAsAdmin$4
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:prof_can_not_put_recommendation_request_that_does_not_exist()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$updateRecommendationRequestAsAdmin$4 → KILLED

151

1.1
Location : updateRecommendationRequestAsAdmin
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:prof_can_put_incomplete_recommendation_request()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setStatus → KILLED

153

1.1
Location : updateRecommendationRequestAsAdmin
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:prof_can_put_incomplete_recommendation_request()]
negated conditional → KILLED

154

1.1
Location : updateRecommendationRequestAsAdmin
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:prof_can_put_complete_recommendation_request()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setCompletionDate → KILLED

159

1.1
Location : updateRecommendationRequestAsAdmin
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:prof_can_put_incomplete_recommendation_request()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::updateRecommendationRequestAsAdmin → KILLED

174

1.1
Location : allRequesterRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:logged_in_user_can_get_all_recommendation_requests_by_them()]
replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::allRequesterRecommendationRequests → KILLED

190

1.1
Location : allProfessorRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:logged_in_professors_can_get_all_recommendation_requests_for_them()]
replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::allProfessorRecommendationRequests → KILLED

211

1.1
Location : lambda$getById$5
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:test_that_logged_in_user_can_get_by_id_when_the_id_does_not_exist()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$getById$5 → KILLED

212

1.1
Location : getById
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:test_that_logged_in_user_cannot_get_by_id_when_the_id_exists_and_they_arent_professor_or_requester()]
negated conditional → KILLED

213

1.1
Location : getById
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:test_that_logged_in_user_can_get_by_id_when_the_id_exists_and_they_are_professor()]
negated conditional → KILLED

216

1.1
Location : getById
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:test_that_logged_in_user_can_get_by_id_when_the_id_exists_and_they_are_professor()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::getById → KILLED

240

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:rec_type_not_table_and_not_other()]
negated conditional → KILLED

243

1.1
Location : lambda$postRecommendationRequests$6
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:rec_type_not_table_and_not_other()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$postRecommendationRequests$6 → KILLED

245

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_with_existing_professor()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setRecommendationType → KILLED

246

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_with_existing_professor()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setDetails → KILLED

250

1.1
Location : lambda$postRecommendationRequests$7
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_without_existing_professor()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::lambda$postRecommendationRequests$7 → KILLED

251

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_with_existing_professor()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setProfessor → KILLED

252

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_with_existing_professor()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setRequester → KILLED

253

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_with_existing_professor()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setStatus → KILLED

254

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_with_existing_professor()]
removed call to edu/ucsb/cs156/rec/entities/RecommendationRequest::setDueDate → KILLED

258

1.1
Location : postRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:a_user_can_post_a_new_recommendation_request_with_existing_professor()]
replaced return value with null for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::postRecommendationRequests → KILLED

273

1.1
Location : getRecommendationRequestByStatusForProfessor
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestTests]/[method:test_professor_can_get_recommendation_request_by_type()]
replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::getRecommendationRequestByStatusForProfessor → KILLED

286

1.1
Location : getAllRecommendationRequests
Killed by : edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.rec.controllers.RecommendationRequestControllerTest]/[method:admins_can_get_all_requests()]
replaced return value with Collections.emptyList for edu/ucsb/cs156/rec/controllers/RecommendationRequestController::getAllRecommendationRequests → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0