blob: ad6dbe442dec88d5f1dd279979be7ddcb12fbd96 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2012 Anton Gorenkov
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Anton Gorenkov - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.testsrunner.model;
/**
* Base interface to the structural item of test hierarchy (test suite or test
* case).
*
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface ITestItem {
/**
* Represents status of the test item.
*
* @note Order of values is significant (cause enumeration values comparison
* is necessary)
*/
public enum Status {
NotRun, Skipped, Passed, Failed, Aborted;
public boolean isError() {
return (this == Failed) || (this == Aborted);
}
}
/**
* @return name of the test item.
*/
public String getName();
/**
* Returns status of the test item.
* For test case it is its own status.
* For test suite it is the greatest status of all its children.
*
* @return test item status
*/
public Status getStatus();
/**
* Returns execution time (in milliseconds) of the test item.
* For test case it is its own execution time.
* For test suite it is the sum of execution time of all its children.
*
* @return item execution time (in milliseconds)
*/
public int getTestingTime();
/**
* Returns parent of the current test item or null if not available
* (e.g. it is a root test suite).
*
* @return parent or null
*/
public ITestSuite getParent();
/**
* Returns <code>true</code> if test item has children.
* Always returns <code>false</code> for test cases.
*
* @return true if has children
*/
public boolean hasChildren();
/**
* Returns all the children of the test item.
* For test case always returns empty array.
* For test suite returns all child test suites and test cases.
*
* @return array of test item children
*/
public ITestItem[] getChildren();
/**
* Visitor pattern support for the tests hierarchy.
*
* @param visitor - any object that supports visitor interface
*/
public void visit(IModelVisitor visitor);
}