AppserverIo\Appserver\ServletEngine\Servlets\DhtmlServletTest::testServiceWithServletPath PHP Method

testServiceWithServletPath() public method

This tests the service() method with a request, prepared with a servlet path.
public testServiceWithServletPath ( ) : void
return void
    public function testServiceWithServletPath()
    {
        // initialize the controller with mocked methods
        $mockServlet = $this->getMockBuilder('AppserverIo\\Appserver\\ServletEngine\\Servlets\\DhtmlServlet')->setMethods(array('getWebappPath', 'getPoweredBy'))->getMock();
        // mock the necessary methods
        $mockServlet->expects($this->once())->method('getWebappPath')->will($this->returnValue(__DIR__));
        $mockServlet->expects($this->once())->method('getPoweredBy')->will($this->returnValue(get_class($mockServlet)));
        // create a mock servlet request instance
        $mockServletRequest = $this->getMockBuilder('AppserverIo\\Appserver\\ServletEngine\\Http\\Request')->setMethods(array('getServletPath'))->getMock();
        // mock the necessary methods
        $mockServletRequest->expects($this->once())->method('getServletPath')->will($this->returnValue('/_files/my_template.dhtml'));
        // create a mock servlet response instance
        $mockServletResponse = $this->getMockBuilder('AppserverIo\\Appserver\\ServletEngine\\Http\\Response')->setMethods(array('hasHeader', 'getHeader', 'addHeader', 'appendBodyStream'))->getMock();
        // mock the necessary methods
        $mockServletResponse->expects($this->once())->method('hasHeader')->with(HttpProtocol::HEADER_X_POWERED_BY)->will($this->returnValue(true));
        $mockServletResponse->expects($this->once())->method('getHeader')->with(HttpProtocol::HEADER_X_POWERED_BY)->will($this->returnValue($poweredBy = 'AppserverIo\\Routlt\\ControllerServlet'));
        $mockServletResponse->expects($this->once())->method('addHeader')->with(HttpProtocol::HEADER_X_POWERED_BY, $poweredBy . ', ' . get_class($mockServlet));
        $mockServletResponse->expects($this->once())->method('appendBodyStream')->with('Hello World!');
        // invoke the method we want to test
        $mockServlet->service($mockServletRequest, $mockServletResponse);
    }