| /******************************************************************************* |
| * 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); |
| |
| } |