public function testInit()
{
// create a servlet context mock instance
$mockServletContext = $this->getMockBuilder($servletContextInterface = 'AppserverIo\\Appserver\\ServletEngine\\Servlets\\Mock\\MockServletContextInterface')->setMethods(get_class_methods($servletContextInterface))->getMock();
// mock the necessary method
$mockServletContext->expects($this->once())->method('getAppBase')->will($this->returnValue($webappPath = '/opt/appserver/webapps'));
$mockServletContext->expects($this->once())->method('getBaseDirectory')->will($this->returnValue($webappPath = '/opt/appserver'));
// create a servlet config mock instance
$mockServletConfig = $this->getMockBuilder($servletConfigInterface = 'AppserverIo\\Psr\\Servlet\\ServletConfigInterface')->setMethods(get_class_methods($servletConfigInterface))->getMock();
// mock the necessary method
$mockServletConfig->expects($this->once())->method('getWebappPath')->will($this->returnValue($webappPath = '/opt/appserver/webapps/test'));
$mockServletConfig->expects($this->exactly(2))->method('getServletContext')->will($this->returnValue($mockServletContext));
// create and initialize a servlet instance
$servlet = new DhtmlServlet();
$servlet->init($mockServletConfig);
// check that the servlet has been initilized successfully
$this->assertSame($webappPath, $servlet->getWebappPath());
$this->assertSame(get_class($servlet), $servlet->getPoweredBy());
}