2424
2525class  TooManyParametersCheckTest  {
2626  @ Test 
27-   void  testOneVariableShouldNotAddIssue () {
27+   void  testImplOkParamsShouldNotAddIssue () {
2828    CheckVerifier .newVerifier ()
2929        .withCheck (new  TooManyParametersCheck ())
3030        .onFile (
@@ -37,7 +37,7 @@ void testOneVariableShouldNotAddIssue() {
3737  }
3838
3939  @ Test 
40-   void  testTooManyVariablesShouldAddIssue () {
40+   void  testImplOnlyTooManyParamsShouldAddIssue () {
4141    CheckVerifier .newVerifier ()
4242        .withCheck (new  TooManyParametersCheck ())
4343        .onFile (
@@ -57,4 +57,144 @@ void testTooManyVariablesShouldAddIssue() {
5757                .appendImpl ("end;" ))
5858        .verifyIssues ();
5959  }
60+ 
61+   @ Test 
62+   void  testImplAndDeclTooManyParamsShouldAddIssue () {
63+     CheckVerifier .newVerifier ()
64+         .withCheck (new  TooManyParametersCheck ())
65+         .onFile (
66+             new  DelphiTestUnitBuilder ()
67+                 .appendDecl ("procedure Foo( // Noncompliant" )
68+                 .appendDecl ("  Param1: Boolean;" )
69+                 .appendDecl ("  Param2: Boolean;" )
70+                 .appendDecl ("  Param3: Boolean;" )
71+                 .appendDecl ("  Param4: Boolean;" )
72+                 .appendDecl ("  Param5: Boolean;" )
73+                 .appendDecl ("  Param6: Boolean;" )
74+                 .appendDecl ("  Param7: Boolean;" )
75+                 .appendDecl ("  Param8: Boolean" )
76+                 .appendDecl (");" )
77+                 .appendImpl ("procedure Foo(" )
78+                 .appendImpl ("  Param1: Boolean;" )
79+                 .appendImpl ("  Param2: Boolean;" )
80+                 .appendImpl ("  Param3: Boolean;" )
81+                 .appendImpl ("  Param4: Boolean;" )
82+                 .appendImpl ("  Param5: Boolean;" )
83+                 .appendImpl ("  Param6: Boolean;" )
84+                 .appendImpl ("  Param7: Boolean;" )
85+                 .appendImpl ("  Param8: Boolean" )
86+                 .appendImpl (");" )
87+                 .appendImpl ("begin" )
88+                 .appendImpl ("  // do nothing" )
89+                 .appendImpl ("end;" ))
90+         .verifyIssues ();
91+   }
92+ 
93+   @ Test 
94+   void  testImplAndDeclOkParamsShouldNotAddIssue () {
95+     CheckVerifier .newVerifier ()
96+         .withCheck (new  TooManyParametersCheck ())
97+         .onFile (
98+             new  DelphiTestUnitBuilder ()
99+                 .appendDecl ("procedure Foo(" )
100+                 .appendDecl ("  Param1: Boolean;" )
101+                 .appendDecl ("  Param2: Boolean" )
102+                 .appendDecl (");" )
103+                 .appendImpl ("procedure Foo(" )
104+                 .appendImpl ("  Param1: Boolean;" )
105+                 .appendImpl ("  Param2: Boolean" )
106+                 .appendImpl (");" )
107+                 .appendImpl ("begin" )
108+                 .appendImpl ("  // do nothing" )
109+                 .appendImpl ("end;" ))
110+         .verifyNoIssues ();
111+   }
112+ 
113+   @ Test 
114+   void  testDeclOnlyTooManyParamsShouldAddIssue () {
115+     CheckVerifier .newVerifier ()
116+         .withCheck (new  TooManyParametersCheck ())
117+         .onFile (
118+             new  DelphiTestUnitBuilder ()
119+                 .appendDecl ("procedure Foo( // Noncompliant" )
120+                 .appendDecl ("  Param1: Boolean;" )
121+                 .appendDecl ("  Param2: Boolean;" )
122+                 .appendDecl ("  Param3: Boolean;" )
123+                 .appendDecl ("  Param4: Boolean;" )
124+                 .appendDecl ("  Param5: Boolean;" )
125+                 .appendDecl ("  Param6: Boolean;" )
126+                 .appendDecl ("  Param7: Boolean;" )
127+                 .appendDecl ("  Param8: Boolean" )
128+                 .appendDecl (");" ))
129+         .verifyIssues ();
130+   }
131+ 
132+   @ Test 
133+   void  testInterfaceTooManyParamsShouldAddIssue () {
134+     CheckVerifier .newVerifier ()
135+         .withCheck (new  TooManyParametersCheck ())
136+         .onFile (
137+             new  DelphiTestUnitBuilder ()
138+                 .appendDecl ("type IMyIntf = interface" )
139+                 .appendDecl ("  procedure Foo( // Noncompliant" )
140+                 .appendDecl ("    Param1: Boolean;" )
141+                 .appendDecl ("    Param2: Boolean;" )
142+                 .appendDecl ("    Param3: Boolean;" )
143+                 .appendDecl ("    Param4: Boolean;" )
144+                 .appendDecl ("    Param5: Boolean;" )
145+                 .appendDecl ("    Param6: Boolean;" )
146+                 .appendDecl ("    Param7: Boolean;" )
147+                 .appendDecl ("    Param8: Boolean" )
148+                 .appendDecl ("  );" )
149+                 .appendDecl ("end;" ))
150+         .verifyIssues ();
151+   }
152+ 
153+   @ Test 
154+   void  testConstructorTooManyParamsShouldAddIssue () {
155+     var  check  = new  TooManyParametersCheck ();
156+     check .max  = 9999 ;
157+ 
158+     CheckVerifier .newVerifier ()
159+         .withCheck (new  TooManyParametersCheck ())
160+         .onFile (
161+             new  DelphiTestUnitBuilder ()
162+                 .appendDecl ("type TMyObj = class(TObject)" )
163+                 .appendDecl ("  constructor Create( // Noncompliant" )
164+                 .appendDecl ("    Param1: Boolean;" )
165+                 .appendDecl ("    Param2: Boolean;" )
166+                 .appendDecl ("    Param3: Boolean;" )
167+                 .appendDecl ("    Param4: Boolean;" )
168+                 .appendDecl ("    Param5: Boolean;" )
169+                 .appendDecl ("    Param6: Boolean;" )
170+                 .appendDecl ("    Param7: Boolean;" )
171+                 .appendDecl ("    Param8: Boolean" )
172+                 .appendDecl ("  );" )
173+                 .appendDecl ("end;" ))
174+         .verifyIssues ();
175+   }
176+ 
177+   @ Test 
178+   void  testNonConstructorTooManyParamsShouldAddIssue () {
179+     var  check  = new  TooManyParametersCheck ();
180+     check .constructorMax  = 9999 ;
181+ 
182+     CheckVerifier .newVerifier ()
183+         .withCheck (new  TooManyParametersCheck ())
184+         .onFile (
185+             new  DelphiTestUnitBuilder ()
186+                 .appendDecl ("type TMyObj = class(TObject)" )
187+                 .appendDecl ("  procedure Create( // Noncompliant" )
188+                 .appendDecl ("    Param1: Boolean;" )
189+                 .appendDecl ("    Param2: Boolean;" )
190+                 .appendDecl ("    Param3: Boolean;" )
191+                 .appendDecl ("    Param4: Boolean;" )
192+                 .appendDecl ("    Param5: Boolean;" )
193+                 .appendDecl ("    Param6: Boolean;" )
194+                 .appendDecl ("    Param7: Boolean;" )
195+                 .appendDecl ("    Param8: Boolean" )
196+                 .appendDecl ("  );" )
197+                 .appendDecl ("end;" ))
198+         .verifyIssues ();
199+   }
60200}
0 commit comments