1 package org.testng.internal.annotations; 2 3 import org.testng.IRetryAnalyzer; 4 import org.testng.annotations.ITestAnnotation; 5 6 7 /** 8 * An implementation of ITest 9 * 10 * Created on Dec 20, 2005 11 * @author <a href="mailto:cedric@beust.com">Cedric Beust</a> 12 */ 13 public class TestAnnotation extends TestOrConfiguration implements ITestAnnotation { 14 private long m_invocationTimeOut = 0; 15 private int m_invocationCount = 1; 16 private int m_threadPoolSize = 0; 17 private int m_successPercentage = 100; 18 private String m_dataProvider = ""; 19 private boolean m_alwaysRun = false; 20 private Class<?>[] m_expectedExceptions = {}; 21 private String m_expectedExceptionsMessageRegExp = ".*"; 22 private String m_suiteName = ""; 23 private String m_testName = ""; 24 private boolean m_singleThreaded = false; 25 private boolean m_sequential = false; 26 private Class<?> m_dataProviderClass = null; 27 private IRetryAnalyzer m_retryAnalyzer = null; 28 private boolean m_skipFailedInvocations = false; 29 private boolean m_ignoreMissingDependencies = false; 30 31 /** 32 * @return the expectedExceptions 33 */ 34 @Override getExpectedExceptions()35 public Class<?>[] getExpectedExceptions() { 36 return m_expectedExceptions; 37 } 38 39 /** 40 * @param expectedExceptions the expectedExceptions to set 41 */ 42 @Override setExpectedExceptions(Class<?>[] expectedExceptions)43 public void setExpectedExceptions(Class<?>[] expectedExceptions) { 44 m_expectedExceptions = expectedExceptions; 45 } 46 47 @Override getExpectedExceptionsMessageRegExp()48 public String getExpectedExceptionsMessageRegExp() { 49 return m_expectedExceptionsMessageRegExp; 50 } 51 52 @Override setExpectedExceptionsMessageRegExp( String expectedExceptionsMessageRegExp)53 public void setExpectedExceptionsMessageRegExp( 54 String expectedExceptionsMessageRegExp) { 55 m_expectedExceptionsMessageRegExp = expectedExceptionsMessageRegExp; 56 } 57 58 @Override setAlwaysRun(boolean alwaysRun)59 public void setAlwaysRun(boolean alwaysRun) { 60 m_alwaysRun = alwaysRun; 61 } 62 63 @Override setDataProvider(String dataProvider)64 public void setDataProvider(String dataProvider) { 65 m_dataProvider = dataProvider; 66 } 67 68 @Override getDataProviderClass()69 public Class<?> getDataProviderClass() { 70 return m_dataProviderClass; 71 } 72 73 @Override setDataProviderClass(Class<?> dataProviderClass)74 public void setDataProviderClass(Class<?> dataProviderClass) { 75 m_dataProviderClass = dataProviderClass; 76 } 77 78 @Override setInvocationCount(int invocationCount)79 public void setInvocationCount(int invocationCount) { 80 m_invocationCount = invocationCount; 81 } 82 83 @Override setSuccessPercentage(int successPercentage)84 public void setSuccessPercentage(int successPercentage) { 85 m_successPercentage = successPercentage; 86 } 87 88 @Override getInvocationCount()89 public int getInvocationCount() { 90 return m_invocationCount; 91 } 92 93 @Override invocationTimeOut()94 public long invocationTimeOut() { 95 return m_invocationTimeOut; 96 } 97 98 @Override setInvocationTimeOut(long timeOut)99 public void setInvocationTimeOut(long timeOut) { 100 m_invocationTimeOut = timeOut; 101 } 102 103 104 @Override getSuccessPercentage()105 public int getSuccessPercentage() { 106 return m_successPercentage; 107 } 108 109 @Override getDataProvider()110 public String getDataProvider() { 111 return m_dataProvider; 112 } 113 114 @Override getAlwaysRun()115 public boolean getAlwaysRun() { 116 return m_alwaysRun; 117 } 118 119 @Override getThreadPoolSize()120 public int getThreadPoolSize() { 121 return m_threadPoolSize; 122 } 123 124 @Override setThreadPoolSize(int threadPoolSize)125 public void setThreadPoolSize(int threadPoolSize) { 126 m_threadPoolSize = threadPoolSize; 127 } 128 129 @Override getSuiteName()130 public String getSuiteName() { 131 return m_suiteName; 132 } 133 134 @Override setSuiteName(String xmlSuite)135 public void setSuiteName(String xmlSuite) { 136 m_suiteName = xmlSuite; 137 } 138 139 @Override getTestName()140 public String getTestName() { 141 return m_testName; 142 } 143 144 @Override setTestName(String xmlTest)145 public void setTestName(String xmlTest) { 146 m_testName = xmlTest; 147 } 148 149 @Override getSingleThreaded()150 public boolean getSingleThreaded() { 151 return m_singleThreaded; 152 } 153 154 @Override setSingleThreaded(boolean singleThreaded)155 public void setSingleThreaded(boolean singleThreaded) { 156 m_singleThreaded = singleThreaded; 157 } 158 159 @Override getSequential()160 public boolean getSequential() { 161 return m_sequential; 162 } 163 164 @Override setSequential(boolean sequential)165 public void setSequential(boolean sequential) { 166 m_sequential = sequential; 167 } 168 169 @Override getRetryAnalyzer()170 public IRetryAnalyzer getRetryAnalyzer() { 171 return m_retryAnalyzer; 172 } 173 174 @Override setRetryAnalyzer(Class<?> c)175 public void setRetryAnalyzer(Class<?> c) { 176 m_retryAnalyzer = null; 177 178 if (c != null && IRetryAnalyzer.class.isAssignableFrom(c)) { 179 try { 180 m_retryAnalyzer = (IRetryAnalyzer) c.newInstance(); 181 } 182 catch (InstantiationException | IllegalAccessException e) { 183 // The class will never be called. 184 } 185 } 186 } 187 188 @Override setSkipFailedInvocations(boolean skip)189 public void setSkipFailedInvocations(boolean skip) { 190 m_skipFailedInvocations = skip; 191 } 192 193 @Override skipFailedInvocations()194 public boolean skipFailedInvocations() { 195 return m_skipFailedInvocations; 196 } 197 198 @Override setIgnoreMissingDependencies(boolean ignore)199 public void setIgnoreMissingDependencies(boolean ignore) { 200 m_ignoreMissingDependencies = ignore; 201 } 202 203 @Override ignoreMissingDependencies()204 public boolean ignoreMissingDependencies() { 205 return m_ignoreMissingDependencies; 206 } 207 } 208