All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.carrotsearch.ant.tasks.junit4.events.aggregated.AggregatedTestResultEvent Maven / Gradle / Ivy

The newest version!
package com.carrotsearch.ant.tasks.junit4.events.aggregated;

import java.util.Collections;
import java.util.List;

import org.junit.runner.Description;

import com.carrotsearch.ant.tasks.junit4.SlaveInfo;
import com.carrotsearch.ant.tasks.junit4.events.IEvent;
import com.carrotsearch.ant.tasks.junit4.events.mirrors.FailureMirror;
import com.google.common.collect.Lists;

/**
 * A single test's execution information.
 */
public class AggregatedTestResultEvent implements AggregatedResultEvent {
  private final Description suite;
  private final Description description;
  private final SlaveInfo slave;

  private TestStatus status = TestStatus.OK;
  private List failures = Lists.newArrayList();

  private List eventStream;
  private int executionTime;

  private boolean hasFailures;
  private boolean hasErrors;
  private boolean hasIgnoredAssumptions;

  public AggregatedTestResultEvent(SlaveInfo slave, Description suiteDescription, Description description) {
    this.description = description;
    this.suite = suiteDescription;
    this.slave = slave;
  }

  @Override
  public Description getDescription() {
    return description;
  }
  
  @Override
  public boolean isSuccessful() {
    return status == TestStatus.OK || 
           status == TestStatus.IGNORED ||
           status == TestStatus.IGNORED_ASSUMPTION;
  }

  public Description getSuiteDescription() {
    return suite;
  }

  @Override
  public SlaveInfo getSlave() {
    return slave;
  }

  @Override
  public List getFailures() {
    return Collections.unmodifiableList(failures);
  }

  /**
   * Execution time in millis.
   */
  public int getExecutionTime() {
    return executionTime;
  }

  /**
   * Raw {@link IEvent} stream received during the duration of this test. 
   */
  @Override
  public List getEventStream() {
    return Collections.unmodifiableList(eventStream);
  }

  /**
   * Exit status for this test.
   */
  public TestStatus getStatus() {
    return status;
  }
  
  void setIgnored() {
    assert status == TestStatus.OK;
    status = TestStatus.IGNORED;
  }

  void addFailure(FailureMirror failure) {
    failures.add(failure);

    hasFailures           |= failure.isAssertionViolation();
    hasIgnoredAssumptions |= failure.isAssumptionViolation();
    hasErrors             |= failure.isErrorViolation();
  }

  void complete(int time, List eventStream) {
    this.eventStream = eventStream;
    this.executionTime = time;

    if (hasErrors) {
      status = TestStatus.ERROR;
    } else if (hasFailures) {
      status = TestStatus.FAILURE;
    } else if (hasIgnoredAssumptions) {
      status = TestStatus.IGNORED_ASSUMPTION;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy