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}