Skip to content

Commit 05965b9

Browse files
authored
Merge pull request #10 from portphp/validate-from-metadata
Add support for validation from metadata (e.g., annotations)
2 parents c79e6a4 + 7dac2e6 commit 05965b9

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

spec/Step/ValidatorStepSpec.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,21 @@ function($item) use ($step, $next) {
9393
}
9494
);
9595
}
96+
97+
function it_validates_an_item_from_metadata(
98+
ValidatorInterface $validator,
99+
ConstraintViolationListInterface $list
100+
) {
101+
$next = function() {};
102+
$list->count()->willReturn(1);
103+
$item = new \stdClass();
104+
$validator->validate($item)->willReturn($list);
105+
106+
$this->process(
107+
$item,
108+
$next
109+
);
110+
111+
$this->getViolations()->shouldReturn([1 => $list]);
112+
}
96113
}

src/Step/ValidatorStep.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,12 @@ public function getViolations()
8383
*/
8484
public function process($item, callable $next)
8585
{
86-
$constraints = new Constraints\Collection($this->constraints);
87-
$list = $this->validator->validate($item, $constraints);
86+
if (count($this->constraints) > 0) {
87+
$constraints = new Constraints\Collection($this->constraints);
88+
$list = $this->validator->validate($item, $constraints);
89+
} else {
90+
$list = $this->validator->validate($item);
91+
}
8892

8993
if (count($list) > 0) {
9094
$this->violations[$this->line] = $list;

0 commit comments

Comments
 (0)