Skip to content

Commit 220d926

Browse files
author
Adi
committed
Merge pull request #7 from AlexHaxe/dev
added FileLengthCheck and ParameterNumberCheck
2 parents 7d7d442 + 8eb0d1d commit 220d926

File tree

8 files changed

+341
-2
lines changed

8 files changed

+341
-2
lines changed

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ More information in [wiki page](https://github.com/adireddy/haxe-checkstyle/wiki
5454
"severity": "ERROR"
5555
}
5656
},
57+
{
58+
"type": "FileLength",
59+
"props": {
60+
"severity": "WARNING",
61+
"max": 2000
62+
}
63+
},
5764
{
5865
"type": "HexadecimalLiterals",
5966
"props": {
@@ -101,6 +108,14 @@ More information in [wiki page](https://github.com/adireddy/haxe-checkstyle/wiki
101108
"severity": "ERROR"
102109
}
103110
},
111+
{
112+
"type": "ParameterNumber",
113+
"props": {
114+
"severity": "INFO",
115+
"max": 10,
116+
"ignoreOverriddenMethods": false
117+
}
118+
},
104119
{
105120
"type": "PublicPrivate",
106121
"props": {
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package checkstyle.checks;
2+
3+
import checkstyle.LintMessage.SeverityLevel;
4+
import haxeparser.Data.Token;
5+
6+
@name("FileLength")
7+
@desc("Max number of lines per file (default 2000)")
8+
class FileLengthCheck extends Check {
9+
10+
public var severity:String = "WARNING";
11+
12+
public var max:Int = 2000;
13+
14+
override function _actualRun() {
15+
if (_checker.lines.length > max) log('Too many lines in file (> ${max})', _checker.lines.length, 1, Reflect.field(SeverityLevel, severity));
16+
}
17+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package checkstyle.checks;
2+
3+
import checkstyle.LintMessage.SeverityLevel;
4+
import haxeparser.Data;
5+
import haxe.macro.Expr;
6+
7+
@name("ParameterNumber")
8+
@desc("Max number of parameters per method (default 10)")
9+
class ParameterNumberCheck extends Check {
10+
11+
public var severity:String = "INFO";
12+
public var max:Int = 10;
13+
public var ignoreOverriddenMethods:Bool = false;
14+
15+
override function _actualRun() {
16+
for (td in _checker.ast.decls) {
17+
switch (td.decl){
18+
case EClass(d):
19+
checkFields(d);
20+
default:
21+
}
22+
}
23+
}
24+
25+
function checkFields(d:Definition<ClassFlag, Array<Field>>) {
26+
for (field in d.data) {
27+
checkField(field);
28+
}
29+
}
30+
31+
function checkField(f:Field) {
32+
if (ignoreOverriddenMethods && f.access.indexOf(AOverride) >= 0) return;
33+
switch (f.kind) {
34+
case FFun(fun):
35+
if ((fun.args != null) && (fun.args.length > max)) {
36+
_warnMaxParameter(f.name, f.pos);
37+
}
38+
default:
39+
}
40+
}
41+
42+
function _warnMaxParameter(name:String, pos:Position) {
43+
logPos('Too many parameters for function: ${name} (> ${max})', pos, Reflect.field(SeverityLevel, severity));
44+
}
45+
}

resources/config.json

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
"severity": "ERROR"
3333
}
3434
},
35+
{
36+
"type": "FileLength",
37+
"props": {
38+
"severity": "WARNING",
39+
"max": 2000
40+
}
41+
},
3542
{
3643
"type": "HexadecimalLiterals",
3744
"props": {
@@ -84,6 +91,14 @@
8491
"severity": "ERROR"
8592
}
8693
},
94+
{
95+
"type": "ParameterNumber",
96+
"props": {
97+
"severity": "INFO",
98+
"max": 10,
99+
"ignoreOverriddenMethods": false
100+
}
101+
},
87102
{
88103
"type": "PublicPrivate",
89104
"props": {
@@ -138,4 +153,4 @@
138153
}
139154
}
140155
]
141-
}
156+
}

run.n

2.31 KB
Binary file not shown.

test/FileLengthCheckTest.hx

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
package ;
2+
3+
import checkstyle.checks.FileLengthCheck;
4+
5+
class FileLengthCheckTest extends CheckTestCase {
6+
7+
public function testCorrectLineCount() {
8+
var msg = checkMessage(FileLengthTests.TEST2000, new FileLengthCheck());
9+
assertEquals('', msg);
10+
11+
msg = checkMessage(FileLengthTests.TEST41, new FileLengthCheck());
12+
assertEquals('', msg);
13+
}
14+
15+
public function testDefaultFileLength() {
16+
var msg = checkMessage(FileLengthTests.TEST2001, new FileLengthCheck());
17+
assertEquals('Too many lines in file (> 2000)', msg);
18+
}
19+
20+
public function testConfigurableFileLength() {
21+
var check = new FileLengthCheck();
22+
check.max = 40;
23+
24+
var msg = checkMessage(FileLengthTests.TEST41, check);
25+
assertEquals('Too many lines in file (> 40)', msg);
26+
}
27+
}
28+
29+
class FileLengthTests {
30+
public static inline var TEST2001:String = "
31+
class Test {
32+
public function new() {
33+
}
34+
// 10 20 30 40 49 // 6
35+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
36+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 106
37+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
38+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 206
39+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
40+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 306
41+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
42+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 406
43+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
44+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 506
45+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
46+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 606
47+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
48+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 706
49+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
50+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 806
51+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
52+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 906
53+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
54+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1006
55+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
56+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1106
57+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
58+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1206
59+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
60+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1306
61+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
62+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1406
63+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
64+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1506
65+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
66+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1606
67+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
68+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1706
69+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
70+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1806
71+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
72+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1906
73+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
74+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n // 2000
75+
}"; // 2001
76+
77+
public static inline var TEST2000:String = "
78+
class Test {
79+
public function new() {
80+
}
81+
// 10 20 30 40 49 // 6
82+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
83+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 106
84+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
85+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 206
86+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
87+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 306
88+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
89+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 406
90+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
91+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 506
92+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
93+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 606
94+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
95+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 706
96+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
97+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 806
98+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
99+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 906
100+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
101+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1006
102+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
103+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1106
104+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
105+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1206
106+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
107+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1306
108+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
109+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1406
110+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
111+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1506
112+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
113+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1606
114+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
115+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1706
116+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
117+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1806
118+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
119+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n // 1906
120+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
121+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n // 1999
122+
}"; // 2000
123+
124+
public static inline var TEST41:String = "
125+
class Test {
126+
public function new() {
127+
}
128+
// 10 20 30 40 49 // 6
129+
\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n // 40
130+
}"; // 41
131+
}

test/ParameterNumberCheckTest.hx

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
package ;
2+
3+
import checkstyle.checks.ParameterNumberCheck;
4+
5+
class ParameterNumberCheckTest extends CheckTestCase {
6+
7+
public function testNoParams() {
8+
var msg = checkMessage(ParameterNumberTests.TEST1, new ParameterNumberCheck());
9+
assertEquals('', msg);
10+
}
11+
12+
public function test10Parameters() {
13+
var msg = checkMessage(ParameterNumberTests.TEST2, new ParameterNumberCheck());
14+
assertEquals('', msg);
15+
}
16+
17+
public function test11Parameters() {
18+
var msg = checkMessage(ParameterNumberTests.TEST3, new ParameterNumberCheck());
19+
assertEquals('Too many parameters for function: test2 (> 10)', msg);
20+
}
21+
22+
public function testMaxParameter() {
23+
var check = new ParameterNumberCheck();
24+
check.max = 11;
25+
var msg = checkMessage(ParameterNumberTests.TEST3, check);
26+
assertEquals('', msg);
27+
28+
check.max = 3;
29+
30+
var msg = checkMessage(ParameterNumberTests.TEST4, check);
31+
assertEquals('', msg);
32+
33+
msg = checkMessage(ParameterNumberTests.TEST3, check);
34+
assertEquals('Too many parameters for function: test2 (> 3)', msg);
35+
}
36+
37+
public function testInterface() {
38+
var msg = checkMessage(ParameterNumberTests.TEST5, new ParameterNumberCheck());
39+
assertEquals('Too many parameters for function: test4 (> 10)', msg);
40+
}
41+
42+
public function testIgnoreOverridenMethods() {
43+
var check = new ParameterNumberCheck();
44+
check.ignoreOverriddenMethods = true;
45+
46+
var msg = checkMessage(ParameterNumberTests.TEST3, check);
47+
assertEquals('', msg);
48+
}
49+
}
50+
51+
class ParameterNumberTests {
52+
public static inline var TEST1:String = "
53+
class Test {
54+
var testVar1:Int;
55+
public function test():Void {}
56+
}";
57+
58+
public static inline var TEST2:String =
59+
"class Test {
60+
public function test1(param1:Int,
61+
param2:Int,
62+
param3:Int,
63+
param4:Int,
64+
param5:Int,
65+
param6:Int,
66+
param7:Int,
67+
param8:Int,
68+
param9:Int,
69+
param10:Int) {
70+
return;
71+
}
72+
}";
73+
74+
public static inline var TEST3:String =
75+
"class Test {
76+
override public function test2(param1:Int,
77+
param2:Int,
78+
param3:Int,
79+
param4:Int,
80+
param5:Int,
81+
param6:Int,
82+
param7:Int,
83+
param8:Int,
84+
param9:Int,
85+
param10:Int,
86+
param11:Int) {
87+
return;
88+
}
89+
}";
90+
91+
public static inline var TEST4:String =
92+
"class Test {
93+
public function test3(param1:Int,
94+
param2:Int,
95+
param3:Int) {
96+
return;
97+
}
98+
}";
99+
100+
public static inline var TEST5:String =
101+
"interface ITest {
102+
public function test4(param1:Int,
103+
param2:Int,
104+
param3:Int,
105+
param4:Int,
106+
param5:Int,
107+
param6:Int,
108+
param7:Int,
109+
param8:Int,
110+
param9:Int,
111+
param10:Int,
112+
param11:Int);
113+
}";
114+
}

test/TestMain.hx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ class TestMain {
1313
runner.add(new IndentationCharacterCheckTest());
1414
runner.add(new LineLengthCheckTest());
1515
runner.add(new ListenerNameCheckTest());
16+
runner.add(new FileLengthCheckTest());
1617
runner.add(new MethodLengthCheckTest());
1718
runner.add(new NamingCheckTest());
1819
runner.add(new OverrideCheckTest());
20+
runner.add(new ParameterNumberCheckTest());
1921
runner.add(new PublicPrivateCheckTest());
2022
runner.add(new ReturnCheckTest());
2123
runner.add(new SpacingCheckTest());
@@ -32,4 +34,4 @@ class TestMain {
3234
static function main() {
3335
new TestMain();
3436
}
35-
}
37+
}

0 commit comments

Comments
 (0)