ReportingActionPerformer.java

1
package com.github.dakusui.actionunit.visitors;
2
3
import com.github.dakusui.actionunit.core.Action;
4
import com.github.dakusui.actionunit.core.Context;
5
import com.github.dakusui.actionunit.io.Writer;
6
import org.slf4j.Logger;
7
import org.slf4j.LoggerFactory;
8
9
import java.util.LinkedHashMap;
10
import java.util.Map;
11
import java.util.function.Predicate;
12
13
import static java.util.Objects.requireNonNull;
14
15
public class ReportingActionPerformer extends ActionPerformer {
16
  private static final Logger              LOGGER = LoggerFactory.getLogger(ReportingActionPerformer.class);
17
  private final        Map<Action, Record> report;
18
19
  public ReportingActionPerformer() {
20
    this(Context.create(), new LinkedHashMap<>());
21
  }
22
23
  public ReportingActionPerformer(Context context, Map<Action, Record> report) {
24
    super(context);
25
    this.report = report;
26
  }
27
28
  @Override
29
  protected Action.Visitor newInstance(Context context) {
30 1 1. newInstance : replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::newInstance → KILLED
    return new ReportingActionPerformer(context, this.report);
31
  }
32
33
  @Override
34
  protected void callAccept(Action action, Action.Visitor visitor) {
35
    Record record;
36
    synchronized (report) {
37 1 1. lambda$callAccept$0 : replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::lambda$callAccept$0 → KILLED
      record = report.computeIfAbsent(action, a -> createRecord());
38
    }
39 1 1. callAccept : negated conditional → KILLED
    if (record == null) {
40
      LOGGER.error("record became null for action:{}({})", action, action.getClass());
41
      assert false;
42
    }
43
    long timeStartedInMillis = record.started();
44
    try {
45 1 1. callAccept : removed call to com/github/dakusui/actionunit/core/Action::accept → KILLED
      action.accept(visitor);
46 2 1. callAccept : Replaced long subtraction with addition → SURVIVED
2. callAccept : removed call to com/github/dakusui/actionunit/visitors/Record::succeeded → KILLED
      record.succeeded(System.currentTimeMillis() - timeStartedInMillis);
47
    } catch (Throwable t) {
48 2 1. callAccept : Replaced long subtraction with addition → SURVIVED
2. callAccept : removed call to com/github/dakusui/actionunit/visitors/Record::failed → KILLED
      record.failed(System.currentTimeMillis() - timeStartedInMillis, t);
49
      throw t;
50
    }
51
  }
52
53
  public void perform(Action action) {
54 1 1. perform : removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::callAccept → KILLED
    callAccept(requireNonNull(action), this);
55
  }
56
57
  public void performAndReport(Action action, Writer writer) {
58
    try {
59 1 1. performAndReport : removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::perform → KILLED
      perform(action);
60
    } finally {
61 1 1. performAndReport : removed call to com/github/dakusui/actionunit/visitors/ActionReporter::report → KILLED
      new ActionReporter(writer, this.getReport()).report(action);
62
    }
63
  }
64
65
  public void performAndReport(Predicate<Action> conditionToSquashAction, Action action, Writer warnWriter, Writer infoWriter, Writer debugWriter, Writer traceWriter, int forcePrintLevelForUnexercisedActions) {
66
    try {
67 1 1. performAndReport : removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::perform → NO_COVERAGE
      perform(action);
68
    } finally {
69 1 1. performAndReport : removed call to com/github/dakusui/actionunit/visitors/ActionReporter::report → NO_COVERAGE
      new ActionReporter(conditionToSquashAction, warnWriter, infoWriter, debugWriter, traceWriter, this.getReport(), forcePrintLevelForUnexercisedActions).report(action);
70
    }
71
  }
72
73
  public void performAndReport(Action action, Writer warnWriter, Writer infoWriter, Writer debugWriter, Writer traceWriter, int forcePrintLevelForUnexercisedActions) {
74 1 1. performAndReport : removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::performAndReport → NO_COVERAGE
    performAndReport(ActionReporter.DEFAULT_CONDITION_TO_SQUASH_ACTION, action, warnWriter, infoWriter, debugWriter, traceWriter, forcePrintLevelForUnexercisedActions);
75
  }
76
77
  public Map<Action, Record> getReport() {
78 1 1. getReport : replaced return value with Collections.emptyMap for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::getReport → KILLED
    return this.report;
79
  }
80
81
  protected Record createRecord() {
82 1 1. createRecord : replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::createRecord → KILLED
    return new Record();
83
  }
84
85
  public static ReportingActionPerformer create() {
86 1 1. create : replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::create → KILLED
    return new ReportingActionPerformer();
87
  }
88
}

Mutations

30

1.1
Location : newInstance
Killed by : com.github.dakusui.actionunit.scenarios.Compat2ActionSupportTest$AttemptTest.attemptTest1a(com.github.dakusui.actionunit.scenarios.Compat2ActionSupportTest$AttemptTest)
replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::newInstance → KILLED

37

1.1
Location : lambda$callAccept$0
Killed by : com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest.givenUnsupportedCompositeAction$whenPerformed$thenExceptionThrown(com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest)
replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::lambda$callAccept$0 → KILLED

39

1.1
Location : callAccept
Killed by : com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest.givenUnsupportedCompositeAction$whenPerformed$thenExceptionThrown(com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest)
negated conditional → KILLED

45

1.1
Location : callAccept
Killed by : com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction.givenErrorAction$whenRunAndPrinted$thenPrintedCorrectly(com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction)
removed call to com/github/dakusui/actionunit/core/Action::accept → KILLED

46

1.1
Location : callAccept
Killed by : none
Replaced long subtraction with addition → SURVIVED

2.2
Location : callAccept
Killed by : com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction.givenPassingAction$whenRunAndPrinted$thenPrintedCorrectly(com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction)
removed call to com/github/dakusui/actionunit/visitors/Record::succeeded → KILLED

48

1.1
Location : callAccept
Killed by : none
Replaced long subtraction with addition → SURVIVED

2.2
Location : callAccept
Killed by : com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction.givenErrorAction$whenRunAndPrinted$thenPrintedCorrectly(com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction)
removed call to com/github/dakusui/actionunit/visitors/Record::failed → KILLED

54

1.1
Location : perform
Killed by : com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction.givenErrorAction$whenRunAndPrinted$thenPrintedCorrectly(com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction)
removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::callAccept → KILLED

59

1.1
Location : performAndReport
Killed by : com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction.givenErrorAction$whenRunAndPrinted$thenPrintedCorrectly(com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction)
removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::perform → KILLED

61

1.1
Location : performAndReport
Killed by : com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction.givenErrorAction$whenRunAndPrinted$thenPrintedCorrectly(com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction)
removed call to com/github/dakusui/actionunit/visitors/ActionReporter::report → KILLED

67

1.1
Location : performAndReport
Killed by : none
removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::perform → NO_COVERAGE

69

1.1
Location : performAndReport
Killed by : none
removed call to com/github/dakusui/actionunit/visitors/ActionReporter::report → NO_COVERAGE

74

1.1
Location : performAndReport
Killed by : none
removed call to com/github/dakusui/actionunit/visitors/ReportingActionPerformer::performAndReport → NO_COVERAGE

78

1.1
Location : getReport
Killed by : com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction.givenErrorAction$whenRunAndPrinted$thenPrintedCorrectly(com.github.dakusui.actionunit.ut.ReportingActionPerformerTest$SimpleAction)
replaced return value with Collections.emptyMap for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::getReport → KILLED

82

1.1
Location : createRecord
Killed by : com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest.givenUnsupportedCompositeAction$whenPerformed$thenExceptionThrown(com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest)
replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::createRecord → KILLED

86

1.1
Location : create
Killed by : com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest.givenUnsupportedSimpleAction$whenPerformed$thenExceptionThrown(com.github.dakusui.actionunit.scenarios.ActionPrinterTest$StdOutErrTest$WithResultVariationTest)
replaced return value with null for com/github/dakusui/actionunit/visitors/ReportingActionPerformer::create → KILLED

Active mutators

Tests examined


Report generated by PIT 1.7.3