1 // $Id: DDTTestCase.java 351 2008-08-14 20:20:56Z jg_hamburg $ 2 /******************************************************************************** 3 * DDTUnit, a Datadriven Approach to Unit- and Moduletesting 4 * Copyright (c) 2004, Joerg and Kai Gellien 5 * All rights reserved. 6 * 7 * The Software is provided under the terms of the Common Public License 1.0 8 * as provided with the distribution of DDTUnit in the file cpl-v10.html. 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * + Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * + Redistributions in binary form must reproduce the above 17 * copyright notice, this list of conditions and the following 18 * disclaimer in the documentation and/or other materials provided 19 * with the distribution. 20 * 21 * + Neither the name of the authors or DDTUnit, nor the 22 * names of its contributors may be used to endorse or promote 23 * products derived from this software without specific prior 24 * written permission. 25 * 26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR 30 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 31 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 32 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 33 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 34 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 35 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 36 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 ********************************************************************************/ 38 39 package junitx.ddtunit; 40 41 import junit.framework.TestResult; 42 43 public interface IDDTTestCase { 44 45 /** 46 * Run complete selected testmethod by generating a separate result und 47 * return this after execution. This contains all notification hooks to 48 * TestListener classes like TestRunner. 49 * 50 * @return result of executed test 51 */ 52 public abstract TestResult run(); 53 54 /** 55 * Run complete selected testmethod by generating a separate result und 56 * return this after execution. This contains all notification hooks to 57 * TestListener classes like TestRunner. 58 * 59 * @param result 60 * object generated externally, by a testrunner e.g.. 61 */ 62 public abstract void run(TestResult result); 63 64 /** 65 * Run a bare method cycle as defined in JUnit. Here the testdata 66 * initialization is performed. Because every testmethod should be run under 67 * its own fixture the execution of setUp and tearDown is inside of a 68 * subroutine. These methods will be executed inside of around every test 69 * representation of xml testdata definition. 70 * 71 * @throws Throwable 72 * that might come up during testmethod execution. 73 */ 74 public abstract void runBare() throws Throwable; 75 76 /** 77 * Count number of test datasets provided for method methodName. <br/>If 78 * dataset for this method is null, 1 will be returned (a standard JUnit 79 * method) 80 * 81 * @return Count of tests under method methodName 82 */ 83 public abstract int countMethodTests(); 84 85 /** 86 * @return Information about actual run test 87 */ 88 public abstract String runInfo(); 89 90 /** 91 * @return Returns the testName. 92 * @uml.property name="testName" 93 */ 94 public abstract String getTestName(); 95 96 /** 97 * @param testName The testName to set. 98 * @uml.property name="testName" 99 */ 100 public abstract void setTestName(String testName); 101 102 public abstract String getName(); 103 104 }