001/**
002 * Powerunit - A JDK1.8 test framework
003 * Copyright (C) 2014 Mathieu Boretti.
004 *
005 * This file is part of Powerunit
006 *
007 * Powerunit is free software: you can redistribute it and/or modify
008 * it under the terms of the GNU General Public License as published by
009 * the Free Software Foundation, either version 3 of the License, or
010 * (at your option) any later version.
011 *
012 * Powerunit is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
015 * GNU General Public License for more details.
016 * 
017 * You should have received a copy of the GNU General Public License
018 * along with Powerunit. If not, see <http://www.gnu.org/licenses/>.
019 */
020package ch.powerunit;
021
022import java.lang.annotation.Documented;
023import java.lang.annotation.ElementType;
024import java.lang.annotation.Retention;
025import java.lang.annotation.RetentionPolicy;
026import java.lang.annotation.Target;
027
028/**
029 * This annotation is used on a class that is the <i>public</i> interface of a
030 * test framework.
031 * <p>
032 * This annotation is used to indicate which test class must be used when the
033 * annotation <code>{@link TestDelegate}</code> is used in a test for an
034 * instance of the class annotated with this annotation. The instance of this
035 * class will be passed to the real test class.
036 * 
037 * @author borettim
038 * @since 0.2.0
039 */
040@Documented
041@Retention(RetentionPolicy.RUNTIME)
042@Target(ElementType.TYPE)
043public @interface TestInterface {
044    /**
045     * The real test class linked with this test interface.
046     * 
047     * @return the real test class.
048     */
049    Class<?> value();
050}