10000 allow consumers to mock all methods · symfony/symfony@3227303 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3227303

Browse files
committed
allow consumers to mock all methods
1 parent 81b954b commit 3227303

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed

src/Symfony/Component/Validator/Test/ConstraintValidatorTestCase.php

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)
0