'test_db', 'table' => 'table_for_chart', 'printview' => '1', 'sql_query' => 'SELECT * FROM `test_db`.`table_for_chart`;', 'single_table' => 'true', 'unlim_num_rows' => '4', ]; $_REQUEST['unlim_num_rows'] = '4'; $_REQUEST['pos'] = '0'; $fieldsMeta = [ new FieldMetadata( MYSQLI_TYPE_LONG, MYSQLI_PRI_KEY_FLAG | MYSQLI_NUM_FLAG | MYSQLI_NOT_NULL_FLAG, (object) ['name' => 'id', 'table' => 'table_for_chart'] ), new FieldMetadata( MYSQLI_TYPE_LONG, MYSQLI_NUM_FLAG | MYSQLI_NOT_NULL_FLAG, (object) ['name' => 'amount', 'table' => 'table_for_chart'] ), new FieldMetadata( MYSQLI_TYPE_DATE, MYSQLI_NOT_NULL_FLAG, (object) ['name' => 'date', 'table' => 'table_for_chart'] ), ]; $dummyDbi = $this->createDbiDummy(); $dummyDbi->addSelectDb('test_db'); $dummyDbi->addResult('SHOW TABLES LIKE \'table_for_chart\';', [['table_for_chart']]); $dummyDbi->addSelectDb('test_db'); $dummyDbi->addResult( 'SELECT * FROM `test_db`.`table_for_chart`;', [ ['1', '7', '2022-02-08'], ['2', '5', '2022-02-09'], ['3', '3', '2022-02-10'], ['4', '9', '2022-02-11'], ], ['id', 'amount', 'date'], $fieldsMeta ); $dbi = $this->createDatabaseInterface($dummyDbi); $GLOBALS['dbi'] = $dbi; $response = new ResponseRenderer(); $template = new Template(); $expected = $template->render('table/chart/tbl_chart', [ 'url_params' => [ 'db' => 'test_db', 'table' => 'table_for_chart', 'goto' => 'index.php?route=/sql&lang=en', 'back' => 'index.php?route=/table/sql&lang=en', 'reload' => 1, ], 'keys' => ['id', 'amount', 'date'], 'fields_meta' => $fieldsMeta, 'table_has_a_numeric_column' => true, 'start_and_number_of_rows_fieldset' => [ 'pos' => 0, 'unlim_num_rows' => 4, 'rows' => 25, 'sql_query' => 'SELECT * FROM `test_db`.`table_for_chart`;', ], ]); (new ChartController($response, $template, $dbi))($this->createStub(ServerRequest::class)); $this->assertSame($expected, $response->getHTMLResult()); } }