setRequest( new FauxRequest( $params, true ) ); $main = new ApiMain( $context ); if ( $class !== null ) { $main->getModuleManager()->addModule( $this->printerName, 'format', $class ); } $result = $main->getResult(); $result->addArrayType( null, 'default' ); foreach ( $data as $k => $v ) { $result->addValue( null, $k, $v ); } $printer = $main->createPrinterByName( $this->printerName ); $printer->initPrinter(); $printer->execute(); ob_start(); try { $printer->closePrinter(); return ob_get_clean(); } catch ( Exception $ex ) { ob_end_clean(); throw $ex; } } /** * @dataProvider provideGeneralEncoding */ public function testGeneralEncoding( array $data, $expect, array $params = array() ) { if ( isset( $params['SKIP'] ) ) { $this->markTestSkipped( $expect ); } $this->assertSame( $expect, $this->encodeData( $params, $data ) ); } }