StatisticsController.java

1
package edu.ucsb.cs156.dining.controllers;
2
3
import edu.ucsb.cs156.dining.repositories.MenuItemRepository;
4
import edu.ucsb.cs156.dining.repositories.ReviewRepository;
5
import edu.ucsb.cs156.dining.statuses.ModerationStatus;
6
import io.swagger.v3.oas.annotations.Operation;
7
import io.swagger.v3.oas.annotations.tags.Tag;
8
import java.time.LocalDateTime;
9
import lombok.extern.slf4j.Slf4j;
10
import org.springframework.beans.factory.annotation.Autowired;
11
import org.springframework.security.access.prepost.PreAuthorize;
12
import org.springframework.web.bind.annotation.GetMapping;
13
import org.springframework.web.bind.annotation.RequestMapping;
14
import org.springframework.web.bind.annotation.RestController;
15
16
@Tag(name = "Statistics")
17
@RequestMapping("/api/statistics")
18
@RestController
19
@Slf4j
20
public class StatisticsController extends ApiController {
21
22
  @Autowired ReviewRepository reviewRepository;
23
24
  @Autowired MenuItemRepository menuItemRepository;
25
26
  public record StatisticsSummary(
27
      long totalApprovedReviews,
28
      long totalMenuItemsReviewed,
29
      long totalCommonsCovered,
30
      LocalDateTime lastUpdated) {}
31
32
  @Operation(summary = "Get a summary of review statistics")
33
  @PreAuthorize("hasRole('ROLE_USER')")
34
  @GetMapping(value = "", produces = "application/json")
35
  public StatisticsSummary getSummary() {
36 1 1. getSummary : replaced return value with null for edu/ucsb/cs156/dining/controllers/StatisticsController::getSummary → KILLED
    return new StatisticsSummary(
37
        reviewRepository.countByStatus(ModerationStatus.APPROVED),
38
        reviewRepository.countDistinctItemsByStatus(ModerationStatus.APPROVED),
39
        reviewRepository.countDistinctCommonsByStatus(ModerationStatus.APPROVED),
40
        reviewRepository.findMaxDateEditedByStatus(ModerationStatus.APPROVED));
41
  }
42
}

Mutations

36

1.1
Location : getSummary
Killed by : edu.ucsb.cs156.dining.controllers.StatisticsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.dining.controllers.StatisticsControllerTests]/[method:api_statistics_user_logged_in_returns_expected_shape()]
replaced return value with null for edu/ucsb/cs156/dining/controllers/StatisticsController::getSummary → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0