GradeHistoryController.java

1
package edu.ucsb.cs156.courses.controllers;
2
3
 import edu.ucsb.cs156.courses.entities.GradeHistory;
4
5
 import edu.ucsb.cs156.courses.repositories.GradeHistoryRepository;
6
 import edu.ucsb.cs156.courses.services.UCSBGradeHistoryService;
7
 import edu.ucsb.cs156.courses.utilities.CourseUtilities;
8
 import io.swagger.annotations.Api;
9
 import io.swagger.annotations.ApiOperation;
10
 import lombok.extern.slf4j.Slf4j;
11
12
 import com.fasterxml.jackson.databind.ObjectMapper;
13
14
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.http.HttpStatus;
16
 import org.springframework.http.ResponseEntity;
17
 import org.springframework.security.access.prepost.PreAuthorize;
18
 import org.springframework.web.bind.annotation.GetMapping;
19
 import org.springframework.web.bind.annotation.PostMapping;
20
21
 import org.springframework.web.bind.annotation.RequestMapping;
22
 import org.springframework.web.bind.annotation.RequestParam;
23
 import org.springframework.web.bind.annotation.RequestPart;
24
25
 import org.springframework.web.bind.annotation.RestController;
26
 import org.springframework.web.multipart.MultipartFile;
27
 import org.springframework.web.server.ResponseStatusException;
28
29
 import java.io.IOException;
30
 import java.io.InputStreamReader;
31
 import java.io.Reader;
32
 import java.util.List;
33
34
 @Slf4j
35
 @Api(description = "API for grade history data")
36
 @RequestMapping("/api/gradehistory")
37
 @RestController
38
 public class GradeHistoryController extends ApiController {
39
     @Autowired
40
     GradeHistoryRepository gradeHistoryRepository;
41
42
     @Autowired
43
     ObjectMapper mapper;
44
45
     @ApiOperation(value = "Get grade history for a course")
46
     @GetMapping(value = "/search", produces = "application/json")
47
     public Iterable<GradeHistory> gradeHistoryBySubjectAreaAndCourseNumber(
48
         @RequestParam String subjectArea,
49
         @RequestParam String courseNumber
50
     )  {
51
       String course=CourseUtilities.makeFormattedCourseId(subjectArea, courseNumber);
52
       Iterable<GradeHistory> gradeHistoryRows = gradeHistoryRepository.findByCourse(course);
53 1 1. gradeHistoryBySubjectAreaAndCourseNumber : replaced return value with null for edu/ucsb/cs156/courses/controllers/GradeHistoryController::gradeHistoryBySubjectAreaAndCourseNumber → KILLED
       return gradeHistoryRows;
54
     }
55
56
     @ApiOperation(value = "Get all grade history")
57
     @PreAuthorize("hasRole('ROLE_ADMIN')")
58
     @GetMapping("/all")
59
     public Iterable<GradeHistory> allHistory() {
60
         Iterable<GradeHistory> gradeHistoryRows = gradeHistoryRepository.findAll();
61 1 1. allHistory : replaced return value with null for edu/ucsb/cs156/courses/controllers/GradeHistoryController::allHistory → SURVIVED
         return gradeHistoryRows;
62
     }
63
64
    
65
}

Mutations

53

1.1
Location : gradeHistoryBySubjectAreaAndCourseNumber
Killed by : edu.ucsb.cs156.courses.controllers.GradeHistoryControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.controllers.GradeHistoryControllerTests]/[method:test_getGradeHistory()]
replaced return value with null for edu/ucsb/cs156/courses/controllers/GradeHistoryController::gradeHistoryBySubjectAreaAndCourseNumber → KILLED

61

1.1
Location : allHistory
Killed by : none
replaced return value with null for edu/ucsb/cs156/courses/controllers/GradeHistoryController::allHistory → SURVIVED

Active mutators

Tests examined


Report generated by PIT 1.7.3