@@ -112,10 +112,44 @@ protected function createContext()
112112 $ context ->setNode ($ this ->value , $ this ->object , $ this ->metadata , $ this ->propertyPath );
113113 $ context ->setConstraint ($ this ->constraint );
114114
115+ $ contextualValidator = $ this ->getMockBuilder (AssertingContextualValidator::class)
116+ ->setMethods ([
117+ 'atPath ' ,
118+ 'validate ' ,
119+ 'validateProperty ' ,
120+ 'validatePropertyValue ' ,
121+ 'getViolations ' ,
122+ ])
123+ ->getMock ();
124+ $ contextualValidator ->expects ($ this ->any ())
125+ ->method ('atPath ' )
126+ ->willReturnCallback (function ($ path ) use ($ contextualValidator ) {
127+ return $ contextualValidator ->doAtPath ($ path );
128+ });
129+ $ contextualValidator ->expects ($ this ->any ())
130+ ->method ('validate ' )
131+ ->willReturnCallback (function ($ value , $ constraints = null , $ groups = null ) use ($ contextualValidator ) {
132+ return $ contextualValidator ->doValidate ($ value , $ constraints , $ groups );
133+ });
134+ $ contextualValidator ->expects ($ this ->any ())
135+ ->method ('validateProperty ' )
136+ ->willReturnCallback (function ($ object , $ propertyName , $ groups = null ) use ($ contextualValidator ) {
137+ return $ contextualValidator ->validateProperty ($ object , $ propertyName , $ groups );
138+ });
139+ $ contextualValidator ->expects ($ this ->any ())
140+ ->method ('validatePropertyValue ' )
141+ ->willReturnCallback (function ($ objectOrClass , $ propertyName , $ value , $ groups = null ) use ($ contextualValidator ) {
142+ return $ contextualValidator ->doValidatePropertyValue ($ objectOrClass , $ propertyName , $ value , $ groups );
143+ });
144+ $ contextualValidator ->expects ($ this ->any ())
145+ ->method ('getViolations ' )
146+ ->willReturnCallback (function () use ($ contextualValidator ) {
147+ return $ contextualValidator ->doGetViolations ();
148+ });
115149 $ validator ->expects ($ this ->any ())
116150 ->method ('inContext ' )
117151 ->with ($ context )
118- ->willReturn ($ this -> getMockBuilder (AssertingContextualValidator::class)-> setMethods ( null )-> getMock () );
152+ ->willReturn ($ contextualValidator );
119153
120154 return $ context ;
121155 }
@@ -353,6 +387,10 @@ class AssertingContextualValidator implements ContextualValidatorInterface
353387 private $ expectedValidate = [];
354388
355389 public function atPath ($ path )
390+ {
391+ }
392+
393+ public function doAtPath ($ path )
356394 {
357395 Assert::assertFalse ($ this ->expectNoValidate , 'No validation calls have been expected. ' );
358396
@@ -366,6 +404,10 @@ public function atPath($path)
366404 }
367405
368406 public function validate ($ value , $ constraints = null , $ groups = null )
407+ {
408+ }
409+
410+ public function doValidate ($ value , $ constraints = null , $ groups = null )
369411 {
370412 Assert::assertFalse ($ this ->expectNoValidate , 'No validation calls have been expected. ' );
371413
@@ -379,11 +421,19 @@ public function validate($value, $constraints = null, $groups = null)
379421 }
380422
381423 public function validateProperty ($ object , $ propertyName , $ groups = null )
424+ {
425+ }
426+
427+ public function doValidateProperty ($ object , $ propertyName , $ groups = null )
382428 {
383429 return $ this ;
384430 }
385431
386432 public function validatePropertyValue ($ objectOrClass , $ propertyName , $ value , $ groups = null )
433+ {
434+ }
435+
436+ public function doValidatePropertyValue ($ objectOrClass , $ propertyName , $ value , $ groups = null )
387437 {
388438 return $ this ;
389439 }
@@ -392,6 +442,10 @@ public function getViolations()
392442 {
393443 }
394444
445+ public function doGetViolations ()
446+ {
447+ }
448+
395449 public function expectNoValidate ()
396450 {
397451 $ this ->expectNoValidate = true ;
0 commit comments