|
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
|