Crud\Test\TestCase\Listener\ApiListenerTest::testCheckRequestMethods PHP Method

testCheckRequestMethods() public method

testCheckRequestMethods
public testCheckRequestMethods ( $apiConfig, $exception, $requestMethods ) : void
return void
    public function testCheckRequestMethods($apiConfig, $exception, $requestMethods)
    {
        $listener = $this->getMockBuilder('\\Crud\\Listener\\ApiListener')->setMethods(['_action', '_request'])->disableOriginalConstructor()->getMock();
        $action = $this->getMockBuilder('\\Crud\\Action\\IndexAction')->setMethods(['config'])->disableOriginalConstructor()->getMock();
        $request = $this->getMockBuilder('\\Cake\\Network\\Request')->setMethods(['is'])->disableOriginalConstructor()->getMock();
        $listener->expects($this->at(0))->method('_action')->will($this->returnValue($action));
        $action->expects($this->at(0))->method('config')->with('api')->will($this->returnValue($apiConfig));
        if (!empty($apiConfig['methods'])) {
            $listener->expects($this->at(1))->method('_request')->will($this->returnValue($request));
            $r = 0;
            foreach ($requestMethods as $method => $bool) {
                $request->expects($this->at($r++))->method('is')->with($method)->will($this->returnValue($bool));
            }
        } else {
            $listener->expects($this->never())->method('_request');
        }
        if (is_string($exception)) {
            $this->setExpectedException($exception);
        }
        $this->setReflectionClassInstance($listener);
        $result = $this->callProtectedMethod('_checkRequestMethods', [], $listener);
        if (is_bool($exception)) {
            $this->assertEquals($exception, $result);
        }
    }