@@ -10,10 +10,16 @@ class TestValidation extends TestCase{
1010 /**
1111 * @dataProvider dataProviderValidation
1212 */
13- function testValidation ($ data ,$ validationSequence ,$ expectedErrors ){
13+ function testValidation ($ data ,$ validationSequence ,$ expectedErrors ,$ expectedData = null ){
14+ $ originalData = json_decode (json_encode ($ data ),true );
1415 $ validation = new Validation ('data ' , $ data );
1516 call_user_func ($ validationSequence ,$ validation );
1617 $ this ->assertEquals ($ expectedErrors , $ validation ->getValidationErrors ());
18+ if ($ expectedData != null ){
19+ $ this ->assertEquals ($ expectedData , $ data );
20+ }else {
21+ $ this ->assertEquals ($ originalData , $ data );
22+ }
1723 }
1824
1925 function dataProviderValidation (){
@@ -94,7 +100,135 @@ function($validation){
94100 $ validation ->containsOnly (['a ' ,'b ' ,'c ' ])->key ('b ' )->required ()->key ('A ' )->isNumeric ()->in ([10 ,20 ,30 ,40 ]);
95101 },
96102 ['b ' =>['A ' =>'invalid ' ]]
97- ]
103+ ],
104+ 'require failure ' =>[
105+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ],
106+ function ($ validation ){
107+ $ validation ->containsOnly (['a ' ,'b ' ,'c ' ,'d ' ])->key ('d ' )->required ();
108+ },
109+ ['d ' =>'missing ' ],
110+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ,'d ' =>null ]
111+ ],
112+ 'default value ' =>[
113+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ],
114+ function ($ validation ){
115+ $ validation ->containsOnly (['a ' ,'b ' ,'c ' ,'d ' ])->key ('d ' )->defaultValue ('P ' );
116+ },
117+ [],
118+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ,'d ' =>'P ' ]
119+ ],
120+ 'isNumeric Failure ' =>[
121+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ],
122+ function ($ validation ){
123+ $ validation ->key ('c ' )->isNumeric ()->inRange (0 );
124+ },
125+ ['c ' =>'invalid ' ]
126+ ],
127+ 'isInt Success ' =>[
128+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ],
129+ function ($ validation ){
130+ $ validation ->key ('b ' )->key ('A ' )->isInt ();
131+ },
132+ []
133+ ],
134+ 'isInt Failure ' =>[
135+ ['a ' =>'x ' ,'b ' =>['A ' =>200.50 ],'c ' =>'z ' ],
136+ function ($ validation ){
137+ $ validation ->key ('b ' )->key ('A ' )->isInt ();
138+ },
139+ ['b ' =>['A ' =>'invalid ' ]]
140+ ],
141+ 'inRange Failure 1 ' =>[
142+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ],
143+ function ($ validation ){
144+ $ validation ->key ('b ' )->key ('A ' )->isInt ()->inRange (400 );
145+ },
146+ ['b ' =>['A ' =>'invalid ' ]]
147+ ],
148+ 'inRange Failure 2 ' =>[
149+ ['a ' =>'x ' ,'b ' =>['A ' =>200 ],'c ' =>'z ' ],
150+ function ($ validation ){
151+ $ validation ->key ('b ' )->key ('A ' )->isInt ()->inRange (0 ,100 );
152+ },
153+ ['b ' =>['A ' =>'invalid ' ]]
154+ ],
155+ 'isTimestamp Success ' =>[
156+ ['a ' =>'x ' ,'b ' =>'15th April 2018 ' ,'c ' =>'z ' ],
157+ function ($ validation ){
158+ $ validation ->key ('b ' )->isTimestamp ();
159+ },
160+ []
161+ ],
162+ 'isTimestamp Failure ' =>[
163+ ['a ' =>'x ' ,'b ' =>'2018-April-2802 ' ,'c ' =>'z ' ],
164+ function ($ validation ){
165+ $ validation ->key ('b ' )->isTimestamp ();
166+ },
167+ ['b ' =>'invalid ' ]
168+ ],
169+ 'isArray Success ' =>[
170+ ['a ' =>[['p ' =>1 ],['q ' =>2 ]],'b ' =>'y ' ,'c ' =>'z ' ],
171+ function ($ validation ){
172+ $ validation ->key ('a ' )->isArray ()->hasCount (1 ,3 );
173+ },
174+ []
175+ ],
176+ 'isArray Failure ' =>[
177+ ['a ' =>'{"p":1,"q":2} ' ,'b ' =>'y ' ,'c ' =>'z ' ],
178+ function ($ validation ){
179+ $ validation ->key ('a ' )->isArray ()->hasCount (1 ,3 );
180+ },
181+ ['a ' =>'invalid ' ]
182+ ],
183+ 'hasCount Failure ' =>[
184+ ['a ' =>[['p ' =>1 ],['q ' =>2 ]],'b ' =>'y ' ,'c ' =>'z ' ],
185+ function ($ validation ){
186+ $ validation ->key ('a ' )->isArray ()->hasCount (3 ,10 );
187+ },
188+ ['a ' =>'invalid ' ]
189+ ],
190+ 'isBoolean Success ' =>[
191+ ['a ' =>'x ' ,'b ' =>true ,'c ' =>'z ' ],
192+ function ($ validation ){
193+ $ validation ->key ('b ' )->isBoolean ();
194+ },
195+ []
196+ ],
197+ 'isBoolean Failure ' =>[
198+ ['a ' =>'x ' ,'b ' =>200 ,'c ' =>'z ' ],
199+ function ($ validation ){
200+ $ validation ->key ('b ' )->isBoolean ();
201+ },
202+ ['b ' =>'invalid ' ]
203+ ],
204+ 'match Success ' =>[
205+ [
'a ' =>
'[email protected] ' ,
'b ' =>
true ,
'c ' =>
'z ' ],
206+ function ($ validation ){
207+ $ validation ->key ('a ' )->match ('/([a-z]|[A-Z]|\.)*\@([a-z]|[A-Z]|\.)*/ ' );
208+ },
209+ []
210+ ],
211+ 'match Failure ' =>[
212+ ['a ' =>'Raghavendragmail.com ' ,'b ' =>true ,'c ' =>'z ' ],
213+ function ($ validation ){
214+ $ validation ->key ('a ' )->match ('/([a-z]|[A-Z]|\.)*\@([a-z]|[A-Z]|\.)*/ ' );
215+ },
216+ ['a ' =>'invalid ' ]
217+ ],
218+ 'hasLength Success ' =>[
219+ [
'a ' =>
'[email protected] ' ,
'b ' =>
true ,
'c ' =>
'z ' ],
220+ function ($ validation ){
221+ $ validation ->key ('a ' )->match ('/([a-z]|[A-Z]|\.)*\@([a-z]|[A-Z]|\.)*/ ' )->hasLength (1 ,255 );
222+ },
223+ []
224+ ],
225+ 'hasLength Failure ' =>[
226+ ['a ' =>'Raghavendragmail.com ' ,'b ' =>true ,'c ' =>'z ' ],
227+ function ($ validation ){
228+ $ validation ->key ('a ' )->hasLength (1 ,10 );
229+ },
230+ ['a ' =>'invalid ' ]
231+ ],
98232
99233 ];
100234 }
0 commit comments