You will need to pass a controller instance to the ComponentRegistry, 
otherwise there will be none to get in the component's initialise function

On Sunday, November 2, 2014 3:12:54 PM UTC+1, Radharadhya Dasa wrote:
>
> Hi, I am not able to create a test for my plugins component.
>
> Component:
> namespace RBruteForce\Controller\Component;
>
> use Cake\Controller\Component;
> use Cake\Routing\Router;
> use Cake\ORM\TableRegistry;
>
> class RBruteForceComponent extends Component {
>
>     public function initialize(array $config) {
>         $this->controller = $this->_registry->getController();
>         $this->request = $this->controller->request;
>         $this->response = $this->controller->response;
>     }
>
>
> Test:
> namespace RBruteForce\Test\TestCase\Controller\Component;
>
> use RBruteForce\Controller\Component\RBruteForceComponent;
> use Cake\TestSuite\TestCase;
> use Cake\Controller\Controller;
> use Cake\Controller\ComponentRegistry;
> use Cake\Network\Request;
> use Cake\Network\Response;
>
> class RBruteForceComponentTest extends TestCase {
>
>     public $component = null;
>     public $controller = null;
>
>     public function setUp() {
>         parent::setUp();
>         // Setup our component and fake test controller
>         $collection = new ComponentRegistry();
>         $this->component = new RBruteForceComponent($collection);
>
>         $request = new Request();
>         $response = new Response();
>         $this->controller = $this->getMock(
>             'Cake\Controller\Controller',
>             [],
>             [$request, $response]
>         );
>     }
>
>
> If I try to run the test I got the following error mesage:
> Notice Error: Trying to get property of non-object in 
> [/home/rrd/public_html/plugins/RBruteForce/src/Controller/Component/RBruteForceComponent.php,
>  
> line 28]
>
> Line 28 is: 
> $this->request = $this->controller->request;
>
> It seems that $this->controller is not created.
>
> Anyone has an idea what is wrong?
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to