public function testGetViolations() { $violation = $this->prophesize('SensioLabs\\DeprecationDetector\\Violation\\Violation')->reveal(); $filteredViolation = $this->prophesize('SensioLabs\\DeprecationDetector\\Violation\\Violation')->reveal(); $expected = array($violation); $phpFileInfo = $this->prophesize('SensioLabs\\DeprecationDetector\\FileInfo\\PhpFileInfo')->reveal(); $ruleSet = $this->prophesize('SensioLabs\\DeprecationDetector\\RuleSet\\RuleSet')->reveal(); $violationChecker = $this->prophesize('SensioLabs\\DeprecationDetector\\Violation\\ViolationChecker\\ViolationCheckerInterface'); $violationChecker->check($phpFileInfo, $ruleSet)->willReturn(array($violation, $filteredViolation))->shouldBeCalled(); $violationFilter = $this->prophesize('SensioLabs\\DeprecationDetector\\Violation\\ViolationFilter\\ViolationFilterInterface'); $violationFilter->isViolationFiltered($violation)->willReturn(false)->shouldBeCalled(); $violationFilter->isViolationFiltered($filteredViolation)->willReturn(true)->shouldBeCalled(); $violationDetector = new ViolationDetector($violationChecker->reveal(), $violationFilter->reveal()); $this->assertEquals($expected, $violationDetector->getViolations($ruleSet, array($phpFileInfo))); }
/** * @param string $sourceArg * @param string $ruleSetArg * * @return Violation[] * * @throws \Exception */ public function checkForDeprecations($sourceArg, $ruleSetArg) { $this->output->startProgress(); $this->output->startRuleSetGeneration(); $ruleSet = $this->ruleSetLoader->loadRuleSet($ruleSetArg); $ruleSet->merge($this->preDefinedRuleSet); $this->output->endRuleSetGeneration(); $this->output->startUsageDetection(); // TODO: Move to AncestorResolver not hard coded $lib = is_dir($ruleSetArg) ? $ruleSetArg : realpath('vendor'); $this->ancestorResolver->setSourcePaths(array($sourceArg, $lib)); $result = $this->deprecationFinder->parsePhpFiles($sourceArg); $violations = $this->violationDetector->getViolations($ruleSet, $result->parsedFiles()); $this->output->endUsageDetection(); $this->output->startOutputRendering(); $this->renderer->renderViolations($violations, $result->parserErrors()); $this->output->endOutputRendering(); $this->output->endProgress($result->fileCount(), count($violations)); return $violations; }