1
2
3
4 package net.sourceforge.pmd.testframework;
5
6 import java.util.ArrayList;
7 import java.util.List;
8 import java.util.Properties;
9
10 import net.sourceforge.pmd.Rule;
11 import net.sourceforge.pmd.lang.LanguageVersion;
12
13 import org.junit.Ignore;
14
15
16
17
18 @Ignore("this is not a unit test")
19 public class TestDescriptor {
20 private Rule rule;
21 private Properties properties;
22 private String description;
23 private int numberOfProblemsExpected;
24 private List<String> expectedMessages = new ArrayList<String>();
25 private List<Integer> expectedLineNumbers = new ArrayList<Integer>();
26 private String code;
27 private LanguageVersion languageVersion;
28 private boolean reinitializeRule = true;
29 private boolean isRegressionTest = true;
30 private int numberInDocument = -1;
31
32
33 public TestDescriptor() {
34
35 }
36
37 public TestDescriptor(String code, String description, int numberOfProblemsExpected, Rule rule) {
38 this(code, description, numberOfProblemsExpected, rule, rule.getLanguage().getDefaultVersion());
39 }
40
41 public TestDescriptor(String code, String description, int numberOfProblemsExpected, Rule rule, LanguageVersion languageVersion) {
42 this.rule = rule;
43 this.code = code;
44 this.description = description;
45 this.numberOfProblemsExpected = numberOfProblemsExpected;
46 this.languageVersion = languageVersion;
47 }
48
49 public int getNumberInDocument() {
50 return numberInDocument;
51 }
52
53 public void setNumberInDocument(int numberInDocument) {
54 this.numberInDocument = numberInDocument;
55 }
56
57 public void setExpectedMessages(List<String> messages) {
58 expectedMessages.clear();
59 expectedMessages.addAll(messages);
60 }
61
62 public List<String> getExpectedMessages() {
63 return expectedMessages;
64 }
65
66 public void setExpectedLineNumbers(List<Integer> expectedLineNumbers) {
67 this.expectedLineNumbers.clear();
68 this.expectedLineNumbers.addAll(expectedLineNumbers);
69 }
70
71 public List<Integer> getExpectedLineNumbers() {
72 return expectedLineNumbers;
73 }
74
75 public void setProperties(Properties properties) {
76 this.properties = properties;
77 }
78
79 public Properties getProperties() {
80 return properties;
81 }
82
83 public String getCode() {
84 return code;
85 }
86
87 public LanguageVersion getLanguageVersion() {
88 return languageVersion;
89 }
90
91 public String getDescription() {
92 return description;
93 }
94
95 public int getNumberOfProblemsExpected() {
96 return numberOfProblemsExpected;
97 }
98
99 public Rule getRule() {
100 return rule;
101 }
102
103 public boolean getReinitializeRule() {
104 return reinitializeRule;
105 }
106
107 public void setReinitializeRule(boolean reinitializeRule) {
108 this.reinitializeRule = reinitializeRule;
109 }
110
111
112
113
114
115
116
117 public static boolean inRegressionTestMode() {
118 boolean inRegressionMode = true;
119 try {
120
121 String property = System.getProperty("pmd.regress");
122 if (property != null) {
123 inRegressionMode = Boolean.parseBoolean(property);
124 }
125 } catch (IllegalArgumentException e) {
126 }
127
128 return inRegressionMode;
129 }
130
131 public boolean isRegressionTest() {
132 return isRegressionTest;
133 }
134
135 public void setRegressionTest(boolean isRegressionTest) {
136 this.isRegressionTest = isRegressionTest;
137 }
138 }