public function testCheckReturnsArrayIfAnExceptionIsThrown() { $file = $this->prophesize('SensioLabs\\DeprecationDetector\\FileInfo\\PhpFileInfo'); $file = $file->reveal(); $concreteChecker = $this->prophesize('SensioLabs\\DeprecationDetector\\Violation\\ViolationChecker\\ViolationCheckerInterface'); $concreteChecker->check($file)->willThrow(new \Exception())->shouldBeCalled(); $checker = new ComposedViolationChecker(array($concreteChecker->reveal())); $this->assertSame([], $checker->check($file)); }
/** * @param RuleSet $ruleSet * @param ParsedPhpFileFinder $files * * @return Violation[] */ protected function getViolations(RuleSet $ruleSet, ParsedPhpFileFinder $files) { $container = $this->getApplication()->getContainer(); // TODO: move to container? $checker = new ComposedViolationChecker(array(new ViolationChecker\ClassViolationChecker($ruleSet), new ViolationChecker\InterfaceViolationChecker($ruleSet), new ViolationChecker\MethodViolationChecker($ruleSet, $container['ancestor_resolver']), new ViolationChecker\SuperTypeViolationChecker($ruleSet), new ViolationChecker\TypeHintViolationChecker($ruleSet), new ViolationChecker\MethodDefinitionViolationChecker($ruleSet, $container['ancestor_resolver']))); $total = count($files); $container['event_dispatcher']->dispatch(ProgressEvent::CHECKER, new ProgressEvent(0, $total)); $result = array(); foreach ($files as $i => $file) { $result = array_merge($result, $checker->check($file)); $container['event_dispatcher']->dispatch(ProgressEvent::CHECKER, new ProgressEvent(++$i, $total)); } return $result; }