lithium\tests\cases\test\filter\ComplexityTest::testApply PHP Method

testApply() public method

It tests the cyclomatic complexity of the FooObject class and its methods.
See also: lithium\test\filter\Complexity::apply()
public testApply ( )
    public function testApply()
    {
        $collection = new CollectionMock();
        $group = new GroupMock();
        $group->add($this->_paths['testClassTest']);
        $this->report->group = $group;
        InspectorMock::applyFilter('methods', function ($self, $params, $chain) {
            return array('foo' => array(1), 'bar' => array(2));
            // return 2 methods
        });
        InspectorMock::applyFilter('lines', function ($self, $params, $chain) {
            return 'return;';
            // return a single return
        });
        ParserMock::applyFilter('tokenize', function ($self, $params, $chain) {
            return array(1, 2, 3);
            // always return 3 methods
        });
        $group->applyFilter('tests', function ($self, $params, $chain) use($collection) {
            return $collection;
        });
        $collection->applyFilter('invoke', function ($self, $params, $chain) {
            return array('FooObject');
        });
        Complexity::apply($this->report, $group->tests(), array('classes' => array('parser' => 'lithium\\analysis\\parser\\Mock', 'inspector' => 'lithium\\analysis\\inspector\\Mock')));
        $results = array_pop($this->report->results['filters'][$this->_paths['complexity']]);
        $expected = array($this->_paths['testClass'] => array('foo' => 4, 'bar' => 4));
        $this->assertEqual($expected, $results);
    }