CockpitTestAttemptReport constructor

CockpitTestAttemptReport({
  1. required String attemptId,
  2. required int number,
  3. required CockpitRunOutcome outcome,
  4. required DateTime startedAt,
  5. required DateTime finishedAt,
  6. required int durationMs,
  7. required String targetId,
  8. CockpitFailure? failure,
  9. Iterable<CockpitArtifactReference> artifacts = const <CockpitArtifactReference>[],
})

Creates a CockpitTestAttemptReport.

Implementation

CockpitTestAttemptReport({
  required this.attemptId,
  required this.number,
  required this.outcome,
  required this.startedAt,
  required this.finishedAt,
  required this.durationMs,
  required this.targetId,
  this.failure,
  Iterable<CockpitArtifactReference> artifacts =
      const <CockpitArtifactReference>[],
}) : artifacts = List<CockpitArtifactReference>.unmodifiable(artifacts) {
  CockpitTestValueReader.string(attemptId, r'$.attemptId', id: true);
  if (number < 1 || durationMs < 0 || finishedAt.isBefore(startedAt)) {
    throw const FormatException(
      'Attempt report timing or number is invalid.',
    );
  }
  CockpitTestValueReader.string(targetId, r'$.targetId', id: true);
  if ((outcome == CockpitRunOutcome.passed) == (failure != null)) {
    throw const FormatException(
      'Attempt report outcome and failure disagree.',
    );
  }
}