UpdateFinalsDataJob.java

1
package edu.ucsb.cs156.courses.jobs;
2
3
import edu.ucsb.cs156.courses.collections.ConvertedSectionCollection;
4
import edu.ucsb.cs156.courses.documents.ConvertedSection;
5
import edu.ucsb.cs156.courses.documents.FinalExam;
6
import edu.ucsb.cs156.courses.models.Quarter;
7
import edu.ucsb.cs156.courses.services.UCSBCurriculumService;
8
import edu.ucsb.cs156.courses.services.jobs.JobContext;
9
import edu.ucsb.cs156.courses.services.jobs.JobContextConsumer;
10
import java.util.List;
11
import lombok.AllArgsConstructor;
12
import lombok.Getter;
13
14
@AllArgsConstructor
15
@Getter
16
public class UpdateFinalsDataJob implements JobContextConsumer {
17
  private String start_quarterYYYYQ;
18
  private String end_quarterYYYYQ;
19
  private UCSBCurriculumService ucsbCurriculumService;
20
  private ConvertedSectionCollection convertedSectionCollection;
21
22
  @Override
23
  public void accept(JobContext ctx) throws Exception {
24
    List<Quarter> quarters = Quarter.quarterList(start_quarterYYYYQ, end_quarterYYYYQ);
25
    for (Quarter quarter : quarters) {
26
      String quarterYYYYQ = quarter.getYYYYQ();
27 1 1. accept : removed call to edu/ucsb/cs156/courses/jobs/UpdateFinalsDataJob::updateFinals → KILLED
      updateFinals(ctx, quarterYYYYQ);
28
    }
29
  }
30
31
  public void updateFinals(JobContext ctx, String quarterYYYYQ) throws Exception {
32 1 1. updateFinals : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED
    ctx.log("Updating final exam info for [" + quarterYYYYQ + "]");
33
34
    List<ConvertedSection> convertedSections =
35
        convertedSectionCollection.findByQuarterRange(quarterYYYYQ, quarterYYYYQ);
36
37 1 1. updateFinals : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED
    ctx.log(
38
        "Attempting to update final exams for "
39
            + convertedSections.size()
40
            + " sections in MongoDB...");
41
42
    int updatedSections = 0;
43
    int errors = 0;
44
45
    for (ConvertedSection section : convertedSections) {
46
      String enrollCd = section.getSection().getEnrollCode();
47
      try {
48
        FinalExam finalExam = ucsbCurriculumService.getFinalExamObject(quarterYYYYQ, enrollCd);
49 1 1. updateFinals : removed call to edu/ucsb/cs156/courses/documents/ConvertedSection::setFinalExam → KILLED
        section.setFinalExam(finalExam);
50
        convertedSectionCollection.save(section);
51 1 1. updateFinals : Changed increment from 1 to -1 → KILLED
        updatedSections++;
52
      } catch (Exception e) {
53 1 1. updateFinals : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED
        ctx.log("Error saving final exam: " + e.getMessage());
54 1 1. updateFinals : Changed increment from 1 to -1 → KILLED
        errors++;
55
      }
56
    }
57
58 1 1. updateFinals : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED
    ctx.log(String.format("%d final exams updated, %d errors", updatedSections, errors));
59 1 1. updateFinals : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED
    ctx.log("Final exam info for [" + quarterYYYYQ + "] has been updated");
60
  }
61
}

Mutations

27

1.1
Location : accept
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_success()]
removed call to edu/ucsb/cs156/courses/jobs/UpdateFinalsDataJob::updateFinals → KILLED

32

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_success()]
removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED

37

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_success()]
removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED

49

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_with_updates()]
removed call to edu/ucsb/cs156/courses/documents/ConvertedSection::setFinalExam → KILLED

51

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_with_updates()]
Changed increment from 1 to -1 → KILLED

53

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_with_errors()]
removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED

54

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_with_errors()]
Changed increment from 1 to -1 → KILLED

58

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_success()]
removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED

59

1.1
Location : updateFinals
Killed by : edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests.[engine:junit-jupiter]/[class:edu.ucsb.cs156.courses.jobs.UpdateFinalsDataJobTests]/[method:test_log_output_success()]
removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED

Active mutators

Tests examined


Report generated by PIT 1.7.3