RemoveStudentsJob.java

1
package edu.ucsb.cs156.frontiers.jobs;
2
3
import edu.ucsb.cs156.frontiers.entities.RosterStudent;
4
import edu.ucsb.cs156.frontiers.enums.OrgStatus;
5
import edu.ucsb.cs156.frontiers.repositories.RosterStudentRepository;
6
import edu.ucsb.cs156.frontiers.services.OrganizationMemberService;
7
import edu.ucsb.cs156.frontiers.services.jobs.JobContext;
8
import edu.ucsb.cs156.frontiers.services.jobs.JobContextConsumer;
9
import java.util.List;
10
import lombok.Builder;
11
import org.springframework.http.HttpStatus;
12
import org.springframework.web.client.HttpStatusCodeException;
13
14
@Builder
15
public class RemoveStudentsJob implements JobContextConsumer {
16
  private OrganizationMemberService organizationMemberService;
17
  private List<RosterStudent> students;
18
  private RosterStudentRepository rosterStudentRepository;
19
20
  @Override
21
  public void accept(JobContext c) throws Exception {
22
    for (RosterStudent student : students) {
23 1 1. accept : negated conditional → KILLED
      if (student.getCourse().getOrgName() != null
24 1 1. accept : negated conditional → KILLED
          && student.getCourse().getInstallationId() != null) {
25 2 1. accept : negated conditional → KILLED
2. accept : negated conditional → KILLED
        if (student.getGithubLogin() != null && student.getGithubId() != null) {
26
          try {
27 1 1. accept : removed call to edu/ucsb/cs156/frontiers/services/OrganizationMemberService::removeOrganizationMember → KILLED
            organizationMemberService.removeOrganizationMember(student);
28
            c.log("Removed student %s from Organization".formatted(student.getGithubLogin()));
29
          } catch (HttpStatusCodeException e) {
30 1 1. accept : negated conditional → KILLED
            if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
31
              c.log("Student %s not in Organization".formatted(student.getGithubLogin()));
32
            } else {
33
              throw new RuntimeException(e);
34
            }
35
          }
36 1 1. accept : removed call to edu/ucsb/cs156/frontiers/entities/RosterStudent::setGithubId → KILLED
          student.setGithubId(null);
37 1 1. accept : removed call to edu/ucsb/cs156/frontiers/entities/RosterStudent::setGithubLogin → KILLED
          student.setGithubLogin(null);
38 1 1. accept : removed call to edu/ucsb/cs156/frontiers/entities/RosterStudent::setOrgStatus → KILLED
          student.setOrgStatus(OrgStatus.REMOVED);
39
          rosterStudentRepository.save(student);
40
        }
41
      }
42
    }
43
  }
44
}

Mutations

23

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:spammed_stops_job()]
negated conditional → KILLED

24

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:testAccept_incompleteCourseData_doesNotCallRemoveOrganizationMember()]
negated conditional → KILLED

25

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:testAccept_incompleteGithubData_doesNotCallRemoveOrganizationMember()]
negated conditional → KILLED

2.2
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:spammed_stops_job()]
negated conditional → KILLED

27

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:spammed_stops_job()]
removed call to edu/ucsb/cs156/frontiers/services/OrganizationMemberService::removeOrganizationMember → KILLED

30

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:spammed_stops_job()]
negated conditional → KILLED

36

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:testAccept_validStudents_callsRemoveOrganizationMember()]
removed call to edu/ucsb/cs156/frontiers/entities/RosterStudent::setGithubId → KILLED

37

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:testAccept_validStudents_callsRemoveOrganizationMember()]
removed call to edu/ucsb/cs156/frontiers/entities/RosterStudent::setGithubLogin → KILLED

38

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.RemoveStudentsJobTests]/[method:testAccept_validStudents_callsRemoveOrganizationMember()]
removed call to edu/ucsb/cs156/frontiers/entities/RosterStudent::setOrgStatus → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0