UserCommonsController.java

1
package edu.ucsb.cs156.happiercows.controllers;
2
3
import com.fasterxml.jackson.core.JsonProcessingException;
4
import com.fasterxml.jackson.databind.ObjectMapper;
5
6
import org.springframework.beans.factory.annotation.Autowired;
7
8
import org.springframework.security.access.prepost.PreAuthorize;
9
import org.springframework.web.bind.annotation.GetMapping;
10
import org.springframework.web.bind.annotation.RequestMapping;
11
import org.springframework.web.bind.annotation.RequestParam;
12
import org.springframework.web.bind.annotation.RestController;
13
14
import edu.ucsb.cs156.happiercows.repositories.UserCommonsRepository;
15
import edu.ucsb.cs156.happiercows.repositories.CommonsRepository;
16
import edu.ucsb.cs156.happiercows.entities.User;
17
import edu.ucsb.cs156.happiercows.entities.UserCommons;
18
import edu.ucsb.cs156.happiercows.entities.Commons;
19
import edu.ucsb.cs156.happiercows.errors.EntityNotFoundException;
20
import edu.ucsb.cs156.happiercows.errors.NoCowsException;
21
import edu.ucsb.cs156.happiercows.errors.NotEnoughMoneyException;
22
import edu.ucsb.cs156.happiercows.errors.CommonsHiddenException;
23
import edu.ucsb.cs156.happiercows.errors.NotEnrolledInCourseAssociatedWithCommonsException;
24
import edu.ucsb.cs156.happiercows.services.CourseAccessService;
25
26
import io.swagger.v3.oas.annotations.tags.Tag;
27
import io.swagger.v3.oas.annotations.Operation;
28
import io.swagger.v3.oas.annotations.Parameter;
29
30
import org.springframework.http.ResponseEntity;
31
import org.springframework.web.bind.annotation.PutMapping;
32
33
@Tag(name = "User Commons")
34
@RequestMapping("/api/usercommons")
35
@RestController
36
public class UserCommonsController extends ApiController {
37
38
  @Autowired
39
  private UserCommonsRepository userCommonsRepository;
40
41
  @Autowired
42
  private CommonsRepository commonsRepository;
43
44
  @Autowired
45
  ObjectMapper mapper;
46
47
  @Autowired
48
  private CourseAccessService courseAccessService;
49
50
  @Operation(summary = "Get a specific user commons (admin only)")
51
  @PreAuthorize("hasRole('ROLE_ADMIN')")
52
  @GetMapping("")
53
  public UserCommons getUserCommonsById(
54
      @Parameter(name="userId") @RequestParam Long userId,
55
      @Parameter(name="commonsId") @RequestParam Long commonsId) throws JsonProcessingException {
56
57
    UserCommons userCommons = userCommonsRepository.findByCommonsIdAndUserId(commonsId, userId)
58
        .orElseThrow(
59 1 1. lambda$getUserCommonsById$0 : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$getUserCommonsById$0 → KILLED
            () -> new EntityNotFoundException(UserCommons.class, "commonsId", commonsId, "userId", userId));
60 1 1. getUserCommonsById : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::getUserCommonsById → KILLED
    return userCommons;
61
  }
62
63
  @Operation(summary = "Get a user commons for current user")
64
  @PreAuthorize("hasRole('ROLE_USER')")
65
  @GetMapping("/forcurrentuser")
66
  public UserCommons getUserCommonsById(
67
      @Parameter(name="commonsId") @RequestParam Long commonsId) throws JsonProcessingException {
68
69
    User u = getCurrentUser().getUser();
70
    Long userId = u.getId();
71
    Commons commons = commonsRepository.findById(commonsId)
72 1 1. lambda$getUserCommonsById$1 : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$getUserCommonsById$1 → KILLED
        .orElseThrow(() -> new EntityNotFoundException(Commons.class, commonsId));
73 1 1. getUserCommonsById : removed call to edu/ucsb/cs156/happiercows/controllers/UserCommonsController::ensureUserCanAccessCourseLinkedCommons → KILLED
    ensureUserCanAccessCourseLinkedCommons(u, commons);
74
    UserCommons userCommons = userCommonsRepository.findByCommonsIdAndUserId(commonsId, userId)
75
        .orElseThrow(
76 1 1. lambda$getUserCommonsById$2 : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$getUserCommonsById$2 → KILLED
            () -> new EntityNotFoundException(UserCommons.class, "commonsId", commonsId, "userId", userId));
77 1 1. getUserCommonsById : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::getUserCommonsById → KILLED
    return userCommons;
78
  }
79
80
  @Operation(summary = "Buy a cow, totalWealth updated")
81
  @PreAuthorize("hasRole('ROLE_USER')")
82
  @PutMapping("/buy")
83
  public ResponseEntity<String> putUserCommonsByIdBuy(
84
          @Parameter(name="commonsId") @RequestParam Long commonsId,
85
          @Parameter(name="numCows") @RequestParam int numCows) throws NotEnoughMoneyException, JsonProcessingException{
86
87
        User u = getCurrentUser().getUser();
88
        Long userId = u.getId();
89
90
        Commons commons = commonsRepository.findById(commonsId).orElseThrow( 
91 1 1. lambda$putUserCommonsByIdBuy$3 : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdBuy$3 → KILLED
          ()->new EntityNotFoundException(Commons.class, commonsId));
92
93 1 1. putUserCommonsByIdBuy : removed call to edu/ucsb/cs156/happiercows/controllers/UserCommonsController::ensureUserCanAccessCourseLinkedCommons → KILLED
        ensureUserCanAccessCourseLinkedCommons(u, commons);
94
95 1 1. putUserCommonsByIdBuy : negated conditional → KILLED
        if (commons.isHidden()) {
96
          throw new CommonsHiddenException(commonsId);
97
        }
98
99
        UserCommons userCommons = userCommonsRepository.findByCommonsIdAndUserId(commonsId, userId)
100
        .orElseThrow(
101 1 1. lambda$putUserCommonsByIdBuy$4 : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdBuy$4 → KILLED
            () -> new EntityNotFoundException(UserCommons.class, "commonsId", commonsId, "userId", userId));
102
103 3 1. putUserCommonsByIdBuy : negated conditional → KILLED
2. putUserCommonsByIdBuy : Replaced double multiplication with division → KILLED
3. putUserCommonsByIdBuy : changed conditional boundary → KILLED
        if(userCommons.getTotalWealth() >= (commons.getCowPrice() * numCows)){
104 3 1. putUserCommonsByIdBuy : Replaced double subtraction with addition → KILLED
2. putUserCommonsByIdBuy : removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setTotalWealth → KILLED
3. putUserCommonsByIdBuy : Replaced double multiplication with division → KILLED
          userCommons.setTotalWealth(userCommons.getTotalWealth() - (commons.getCowPrice() * numCows));
105 2 1. putUserCommonsByIdBuy : removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setNumOfCows → KILLED
2. putUserCommonsByIdBuy : Replaced integer addition with subtraction → KILLED
          userCommons.setNumOfCows(userCommons.getNumOfCows() + numCows);
106 2 1. putUserCommonsByIdBuy : removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setCowsBought → KILLED
2. putUserCommonsByIdBuy : Replaced integer addition with subtraction → KILLED
          userCommons.setCowsBought(userCommons.getCowsBought() + numCows);
107
        }
108
        else{
109
          throw new NotEnoughMoneyException("You need more money!");
110
        }
111
        userCommonsRepository.save(userCommons);
112
113
        String body = mapper.writeValueAsString(userCommons);
114 1 1. putUserCommonsByIdBuy : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::putUserCommonsByIdBuy → KILLED
        return ResponseEntity.ok().body(body);
115
    }
116
117
  @Operation(summary = "Sell a cow, totalWealth updated")
118
  @PreAuthorize("hasRole('ROLE_USER')")
119
  @PutMapping("/sell")
120
  public ResponseEntity<String> putUserCommonsByIdSell(
121
          @Parameter(name="commonsId") @RequestParam Long commonsId,
122
          @Parameter(name="numCows") @RequestParam int numCows) throws NoCowsException, JsonProcessingException {
123
        User u = getCurrentUser().getUser();
124
        Long userId = u.getId();
125
126
        Commons commons = commonsRepository.findById(commonsId).orElseThrow( 
127 1 1. lambda$putUserCommonsByIdSell$5 : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdSell$5 → KILLED
          ()->new EntityNotFoundException(Commons.class, commonsId));
128
129 1 1. putUserCommonsByIdSell : removed call to edu/ucsb/cs156/happiercows/controllers/UserCommonsController::ensureUserCanAccessCourseLinkedCommons → KILLED
        ensureUserCanAccessCourseLinkedCommons(u, commons);
130
131 1 1. putUserCommonsByIdSell : negated conditional → KILLED
        if (commons.isHidden()) {
132
          throw new CommonsHiddenException(commonsId);
133
        }
134
135
        UserCommons userCommons = userCommonsRepository.findByCommonsIdAndUserId(commonsId, userId)
136
        .orElseThrow(
137 1 1. lambda$putUserCommonsByIdSell$6 : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdSell$6 → KILLED
            () -> new EntityNotFoundException(UserCommons.class, "commonsId", commonsId, "userId", userId));
138
139
140 2 1. putUserCommonsByIdSell : changed conditional boundary → KILLED
2. putUserCommonsByIdSell : negated conditional → KILLED
        if(userCommons.getNumOfCows() >= numCows ){
141 2 1. putUserCommonsByIdSell : Replaced double division with multiplication → KILLED
2. putUserCommonsByIdSell : Replaced double multiplication with division → KILLED
          double cowValue = commons.getCowPrice() * userCommons.getCowHealth() / 100;
142 3 1. putUserCommonsByIdSell : Replaced double multiplication with division → KILLED
2. putUserCommonsByIdSell : removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setTotalWealth → KILLED
3. putUserCommonsByIdSell : Replaced double addition with subtraction → KILLED
          userCommons.setTotalWealth(userCommons.getTotalWealth() + (cowValue * numCows));
143 2 1. putUserCommonsByIdSell : removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setNumOfCows → KILLED
2. putUserCommonsByIdSell : Replaced integer subtraction with addition → KILLED
          userCommons.setNumOfCows(userCommons.getNumOfCows() - numCows);
144 2 1. putUserCommonsByIdSell : removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setCowsSold → KILLED
2. putUserCommonsByIdSell : Replaced integer addition with subtraction → KILLED
          userCommons.setCowsSold(userCommons.getCowsSold() + numCows);
145
        }
146
        else{
147
          throw new NoCowsException("You do not have enough cows to sell!");
148
        }
149
        userCommonsRepository.save(userCommons);
150
151
        String body = mapper.writeValueAsString(userCommons);
152 1 1. putUserCommonsByIdSell : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::putUserCommonsByIdSell → KILLED
        return ResponseEntity.ok().body(body);
153
    }
154
155
    
156
157
    @Operation(summary = "Get all user commons for a specific commons")
158
    @PreAuthorize("hasAnyRole('ROLE_USER', 'ROLE_ADMIN')")
159
    @GetMapping("/commons/all")
160
    public  ResponseEntity<String> getUsersCommonsByCommonsId(
161
        @Parameter(name="commonsId") @RequestParam Long commonsId) throws JsonProcessingException {
162
      Iterable<UserCommons> uc = userCommonsRepository.findByCommonsId(commonsId);
163
      
164
   
165
    String body = mapper.writeValueAsString(uc);
166 1 1. getUsersCommonsByCommonsId : replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::getUsersCommonsByCommonsId → KILLED
    return ResponseEntity.ok().body(body);
167
  }
168
169
  private void ensureUserCanAccessCourseLinkedCommons(User user, Commons commons) {
170 2 1. ensureUserCanAccessCourseLinkedCommons : negated conditional → KILLED
2. ensureUserCanAccessCourseLinkedCommons : negated conditional → KILLED
    if (commons.getCourseId() != null && !courseAccessService.isEligibleForCommons(user, commons)) {
171
      throw new NotEnrolledInCourseAssociatedWithCommonsException();
172
    }
173
  }
174
175
}

Mutations

59

1.1
Location : lambda$getUserCommonsById$0
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_getUserCommonsById_nonexists_admin()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$getUserCommonsById$0 → KILLED

60

1.1
Location : getUserCommonsById
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_getUserCommonsById_exists_admin()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::getUserCommonsById → KILLED

72

1.1
Location : lambda$getUserCommonsById$1
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_getUserCommonsById_when_commons_does_not_exist()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$getUserCommonsById$1 → KILLED

73

1.1
Location : getUserCommonsById
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_getUserCommonsById_course_linked_commons_requires_current_enrollment()]
removed call to edu/ucsb/cs156/happiercows/controllers/UserCommonsController::ensureUserCanAccessCourseLinkedCommons → KILLED

76

1.1
Location : lambda$getUserCommonsById$2
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_getUserCommonsById_nonexists()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$getUserCommonsById$2 → KILLED

77

1.1
Location : getUserCommonsById
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_getUserCommonsById_exists()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::getUserCommonsById → KILLED

91

1.1
Location : lambda$putUserCommonsByIdBuy$3
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_buyCow_commons_does_not_exist()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdBuy$3 → KILLED

93

1.1
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_buyCow_course_linked_commons_requires_current_enrollment()]
removed call to edu/ucsb/cs156/happiercows/controllers/UserCommonsController::ensureUserCanAccessCourseLinkedCommons → KILLED

95

1.1
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_buyCow_for_user_not_in_commons()]
negated conditional → KILLED

101

1.1
Location : lambda$putUserCommonsByIdBuy$4
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_buyCow_for_user_not_in_commons()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdBuy$4 → KILLED

103

1.1
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_not_enough_money()]
negated conditional → KILLED

2.2
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_not_enough_money()]
Replaced double multiplication with division → KILLED

3.3
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
changed conditional boundary → KILLED

104

1.1
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
Replaced double subtraction with addition → KILLED

2.2
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setTotalWealth → KILLED

3.3
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists()]
Replaced double multiplication with division → KILLED

105

1.1
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setNumOfCows → KILLED

2.2
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
Replaced integer addition with subtraction → KILLED

106

1.1
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setCowsBought → KILLED

2.2
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
Replaced integer addition with subtraction → KILLED

114

1.1
Location : putUserCommonsByIdBuy
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_BuyCow_commons_exists_user_has_exact_amount_needed()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::putUserCommonsByIdBuy → KILLED

127

1.1
Location : lambda$putUserCommonsByIdSell$5
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_sellCow_commons_does_not_exist()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdSell$5 → KILLED

129

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_sellCow_course_linked_commons_requires_current_enrollment()]
removed call to edu/ucsb/cs156/happiercows/controllers/UserCommonsController::ensureUserCanAccessCourseLinkedCommons → KILLED

131

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_sellCow_for_user_not_in_commons()]
negated conditional → KILLED

137

1.1
Location : lambda$putUserCommonsByIdSell$6
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_sellCow_for_user_not_in_commons()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::lambda$putUserCommonsByIdSell$6 → KILLED

140

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
changed conditional boundary → KILLED

2.2
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_commons_exists_no_cow_to_sell()]
negated conditional → KILLED

141

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
Replaced double division with multiplication → KILLED

2.2
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
Replaced double multiplication with division → KILLED

142

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
Replaced double multiplication with division → KILLED

2.2
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setTotalWealth → KILLED

3.3
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
Replaced double addition with subtraction → KILLED

143

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setNumOfCows → KILLED

2.2
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
Replaced integer subtraction with addition → KILLED

144

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
removed call to edu/ucsb/cs156/happiercows/entities/UserCommons::setCowsSold → KILLED

2.2
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
Replaced integer addition with subtraction → KILLED

152

1.1
Location : putUserCommonsByIdSell
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_SellCow_course_linked_commons_allows_current_enrollment()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::putUserCommonsByIdSell → KILLED

166

1.1
Location : getUsersCommonsByCommonsId
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_Admin_getAllUserCommonsById_exists()]
replaced return value with null for edu/ucsb/cs156/happiercows/controllers/UserCommonsController::getUsersCommonsByCommonsId → KILLED

170

1.1
Location : ensureUserCanAccessCourseLinkedCommons
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_sellCow_for_user_not_in_commons()]
negated conditional → KILLED

2.2
Location : ensureUserCanAccessCourseLinkedCommons
Killed by : edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.happiercows.controllers.UserCommonsControllerTests]/[method:test_getUserCommonsById_course_linked_commons_requires_current_enrollment()]
negated conditional → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0