getMockBuilder('PMA\libraries\DatabaseInterface') ->disableOriginalConstructor() ->getMock(); $dbi->expects($this->once()) ->method('query') ->will($this->returnValue(true)); $dbi->expects($this->at(1)) ->method('fetchAssoc') ->will($this->returnValue($row)); $dbi->expects($this->at(2)) ->method('fetchAssoc') ->will($this->returnValue(false)); $dbi->expects($this->once()) ->method('freeResult') ->will($this->returnValue(true)); $container = Container::getDefaultContainer(); $container->set('dbi', $dbi); $class = new ReflectionClass('\PMA\libraries\controllers\server\ServerPluginsController'); $method = $class->getMethod('_getPluginsHtml'); $method->setAccessible(true); $ctrl = new ServerPluginsController(); $html = $method->invoke($ctrl); //validate 1:Items $this->assertContains( 'Plugin', $html ); $this->assertContains( 'Description', $html ); $this->assertContains( 'Version', $html ); $this->assertContains( 'Author', $html ); $this->assertContains( 'License', $html ); //validate 2: one Item HTML $this->assertContains( 'plugin_name1', $html ); $this->assertContains( 'plugin_description1', $html ); $this->assertContains( 'plugin_version1', $html ); $this->assertContains( 'plugin_author1', $html ); $this->assertContains( 'plugin_license1', $html ); } }