CreateStudentOrStaffRepositoriesJob.java

1
package edu.ucsb.cs156.frontiers.jobs;
2
3
import edu.ucsb.cs156.frontiers.entities.Course;
4
import edu.ucsb.cs156.frontiers.entities.CourseStaff;
5
import edu.ucsb.cs156.frontiers.entities.RosterStudent;
6
import edu.ucsb.cs156.frontiers.enums.OrgStatus;
7
import edu.ucsb.cs156.frontiers.enums.RepositoryCreationOption;
8
import edu.ucsb.cs156.frontiers.enums.RepositoryPermissions;
9
import edu.ucsb.cs156.frontiers.services.RepositoryService;
10
import edu.ucsb.cs156.frontiers.services.jobs.JobContext;
11
import edu.ucsb.cs156.frontiers.services.jobs.JobContextConsumer;
12
import lombok.Builder;
13
14
@Builder
15
public class CreateStudentOrStaffRepositoriesJob implements JobContextConsumer {
16
  Course course;
17
  RepositoryService repositoryService;
18
  String repositoryPrefix;
19
  Boolean isPrivate;
20
  RepositoryPermissions permissions;
21
22
  @Builder.Default RepositoryCreationOption creationOption = RepositoryCreationOption.STUDENTS_ONLY;
23
24
  @Override
25
  public Course getCourse() {
26 1 1. getCourse : replaced return value with null for edu/ucsb/cs156/frontiers/jobs/CreateStudentOrStaffRepositoriesJob::getCourse → KILLED
    return this.course;
27
  }
28
29
  @Override
30
  public void accept(JobContext ctx) throws Exception {
31
    ctx.log("Processing...");
32
33 2 1. accept : negated conditional → KILLED
2. accept : negated conditional → KILLED
    if (creationOption == RepositoryCreationOption.STUDENTS_ONLY
34
        || creationOption == RepositoryCreationOption.STUDENTS_AND_STAFF) {
35
      for (RosterStudent student : course.getRosterStudents()) {
36 1 1. accept : negated conditional → KILLED
        if (student.getGithubLogin() != null
37 1 1. accept : negated conditional → KILLED
            && (student.getOrgStatus() == OrgStatus.MEMBER
38 1 1. accept : negated conditional → KILLED
                || student.getOrgStatus() == OrgStatus.OWNER)) {
39 1 1. accept : removed call to edu/ucsb/cs156/frontiers/services/RepositoryService::createStudentRepository → KILLED
          repositoryService.createStudentRepository(
40
              course, student, repositoryPrefix, isPrivate, permissions);
41
        }
42
      }
43
    }
44
45 2 1. accept : negated conditional → KILLED
2. accept : negated conditional → KILLED
    if (creationOption == RepositoryCreationOption.STAFF_ONLY
46
        || creationOption == RepositoryCreationOption.STUDENTS_AND_STAFF) {
47
      for (CourseStaff staff : course.getCourseStaff()) {
48 1 1. accept : negated conditional → KILLED
        if (staff.getGithubLogin() != null
49 1 1. accept : negated conditional → KILLED
            && (staff.getOrgStatus() == OrgStatus.MEMBER
50 1 1. accept : negated conditional → KILLED
                || staff.getOrgStatus() == OrgStatus.OWNER)) {
51 1 1. accept : removed call to edu/ucsb/cs156/frontiers/services/RepositoryService::createStaffRepository → KILLED
          repositoryService.createStaffRepository(
52
              course, staff, repositoryPrefix, isPrivate, permissions);
53
        }
54
      }
55
    }
56
57
    ctx.log("Done");
58
  }
59
}

Mutations

26

1.1
Location : getCourse
Killed by : edu.ucsb.cs156.frontiers.jobs.CreateStudentOrStaffRepositoriesJobTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.CreateStudentOrStaffRepositoriesJobTest]/[method:testGetCourse_returnsCoursePassedToBuilder()]
replaced return value with null for edu/ucsb/cs156/frontiers/jobs/CreateStudentOrStaffRepositoriesJob::getCourse → KILLED

33

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

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

36

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

37

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

38

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

39

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.CreateStudentOrStaffRepositoriesJobTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.CreateStudentOrStaffRepositoriesJobTest]/[method:testCreateStudentRepository_owner()]
removed call to edu/ucsb/cs156/frontiers/services/RepositoryService::createStudentRepository → KILLED

45

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

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

48

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

49

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

50

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

51

1.1
Location : accept
Killed by : edu.ucsb.cs156.frontiers.jobs.CreateStudentOrStaffRepositoriesJobTest.[engine:junit-jupiter]/[class:edu.ucsb.cs156.frontiers.jobs.CreateStudentOrStaffRepositoriesJobTest]/[method:testCreateStaffRepository_owner()]
removed call to edu/ucsb/cs156/frontiers/services/RepositoryService::createStaffRepository → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0