carbidecpp22devenv/plugins/org.eclipse.test.source_3.5.0.r20080925/src/org.junit4_4.5.0.v20090423/junitsrc/org/junit/Test.java
changeset 636 3ef299ba838f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/carbidecpp22devenv/plugins/org.eclipse.test.source_3.5.0.r20080925/src/org.junit4_4.5.0.v20090423/junitsrc/org/junit/Test.java	Fri Dec 04 11:49:54 2009 -0600
@@ -0,0 +1,68 @@
+package org.junit;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * <p>The <code>Test</code> annotation tells JUnit that the <code>public void</code> method
+ * to which it is attached can be run as a test case. To run the method,
+ * JUnit first constructs a fresh instance of the class then invokes the
+ * annotated method. Any exceptions thrown by the test will be reported
+ * by JUnit as a failure. If no exceptions are thrown, the test is assumed
+ * to have succeeded.</p>
+ * 
+ * <p>A simple test looks like this:
+ * <pre>
+ * public class Example {
+ *    <b>&#064;Test</b> 
+ *    public void method() {
+ *       org.junit.Assert.assertTrue( new ArrayList().isEmpty() );
+ *    }
+ * }
+ * </pre>
+ * </p>
+ * 
+ * <p>The <code>Test</code> annotation supports two optional parameters.
+ * The first, <code>expected</code>, declares that a test method should throw
+ * an exception. If it doesn't throw an exception or if it throws a different exception
+ * than the one declared, the test fails. For example, the following test succeeds:
+ * <pre>
+ *    &#064;Test(<b>expected=IndexOutOfBoundsException.class</b>) public void outOfBounds() {
+ *       new ArrayList&lt;Object&gt;().get(1);
+ *    }
+ * </pre></p>
+ * 
+ * <p>The second optional parameter, <code>timeout</code>, causes a test to fail if it takes 
+ * longer than a specified amount of clock time (measured in milliseconds). The following test fails:
+ * <pre>
+ *    &#064;Test(<b>timeout=100</b>) public void infinity() {
+ *       while(true);
+ *    }
+ * </pre></p>
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD})
+public @interface Test {
+	
+	/**
+	 * Default empty exception
+	 */
+	static class None extends Throwable {
+		private static final long serialVersionUID= 1L;		
+		private None() {
+		}
+	}
+	
+	/**
+	 * Optionally specify <code>expected</code>, a Throwable, to cause a test method to succeed iff 
+	 * an exception of the specified class is thrown by the method.
+	 */
+	Class<? extends Throwable> expected() default None.class;
+	
+	/** 
+	 * Optionally specify <code>timeout</code> in milliseconds to cause a test method to fail if it
+	 * takes longer than that number of milliseconds.*/
+	long timeout() default 0L; 
+}