/** * Performs the crap index analysis. * * @param PHP_Depend_Code_NodeIterator $packages The context source tree. * * @return void */ private function _analyze(PHP_Depend_Code_NodeIterator $packages) { $this->_metrics = array(); $this->_ccnAnalyzer->analyze($packages); $this->fireStartAnalyzer(); foreach ($packages as $package) { $package->accept($this); } $this->fireEndAnalyzer(); }
/** * Processes all {@link PHP_Depend_Code_Package} code nodes. * * @param PHP_Depend_Code_NodeIterator $packages All code packages. * * @return void */ public function analyze(PHP_Depend_Code_NodeIterator $packages) { if ($this->_nodeMetrics === null) { // First check for the require cc analyzer if ($this->_cyclomaticAnalyzer === null) { throw new RuntimeException('Missing required CC analyzer.'); } $this->fireStartAnalyzer(); $this->_cyclomaticAnalyzer->analyze($packages); // Init node metrics $this->_nodeMetrics = array(); // Visit all nodes foreach ($packages as $package) { $package->accept($this); } $this->fireEndAnalyzer(); } }
/** * testAnalyzerAlsoCalculatesCCNAndCCN2OfClosureInMethod * * @return void * @covers PHP_Depend_Metrics_CyclomaticComplexity_Analyzer * @group pdepend * @group pdepend::metrics * @group pdepend::metrics::cyclomaticcomplexity * @group unittest */ public function testAnalyzerAlsoCalculatesCCNAndCCN2OfClosureInMethod() { $analyzer = new PHP_Depend_Metrics_CyclomaticComplexity_Analyzer(); $analyzer->analyze(self::parseTestCaseSource(__METHOD__)); $expected = array('ccn' => 3, 'ccn2' => 3); $actual = $analyzer->getProjectMetrics(); $this->assertEquals($expected, $actual); }
/** * Tests the result of the phpunit logger with some real analyzers. * * @return void * @covers PHP_Depend_Log_Phpunit_Xml * @group pdepend * @group pdepend::logs * @group pdepend::logs::summary * @group unittest */ public function testPHPUnitLoggerResult() { $packages = self::parseTestCaseSource(__METHOD__); $logger = new PHP_Depend_Log_Phpunit_Xml(); $logger->setLogFile($this->_tempFile); $logger->setCode($packages); $analyzer0 = new PHP_Depend_Metrics_CyclomaticComplexity_Analyzer(); $analyzer0->analyze($packages); $analyzer1 = new PHP_Depend_Metrics_ClassLevel_Analyzer(); $analyzer1->addAnalyzer($analyzer0); $analyzer1->analyze($packages); $analyzer2 = new PHP_Depend_Metrics_CodeRank_Analyzer(); $analyzer2->analyze($packages); $analyzer3 = new PHP_Depend_Metrics_Coupling_Analyzer(); $analyzer3->analyze($packages); $analyzer4 = new PHP_Depend_Metrics_Hierarchy_Analyzer(); $analyzer4->analyze($packages); $analyzer5 = new PHP_Depend_Metrics_Inheritance_Analyzer(); $analyzer5->analyze($packages); $analyzer6 = new PHP_Depend_Metrics_NodeCount_Analyzer(); $analyzer6->analyze($packages); $analyzer7 = new PHP_Depend_Metrics_NodeLoc_Analyzer(); $analyzer7->analyze($packages); $logger->log($analyzer0); $logger->log($analyzer1); $logger->log($analyzer2); $logger->log($analyzer3); $logger->log($analyzer4); $logger->log($analyzer5); $logger->log($analyzer6); $logger->log($analyzer7); $logger->close(); $actual = file_get_contents($this->_tempFile); $expected = $this->_loadExpected('phpunit-log.xml'); $this->assertXmlStringEqualsXmlString($expected, $actual); }