'db', 'server' => 1]; $dbi = $this->getMockBuilder(DatabaseInterface::class) ->disableOriginalConstructor() ->getMock(); $indexs = [ ['Schema' => 'Schema1', 'Key_name' => 'Key_name1', 'Column_name' => 'Column_name1'], ['Schema' => 'Schema2', 'Key_name' => 'Key_name2', 'Column_name' => 'Column_name2'], ['Schema' => 'Schema3', 'Key_name' => 'Key_name3', 'Column_name' => 'Column_name3'], ]; $dbi->expects($this->any())->method('getTableIndexes') ->willReturn($indexs); $GLOBALS['dbi'] = $dbi; //$_SESSION } public function testDoSaveData(): void { $sqlQuery = 'ALTER TABLE `db`.`table` DROP PRIMARY KEY, ADD UNIQUE ;'; $table = $this->getMockBuilder(Table::class) ->disableOriginalConstructor() ->getMock(); $table->expects($this->any())->method('getSqlQueryForIndexCreateOrEdit') ->willReturn($sqlQuery); $GLOBALS['dbi']->expects($this->any())->method('getTable') ->willReturn($table); $response = new ResponseStub(); $index = new Index(); $indexes = new Indexes($response, new Template(), $GLOBALS['dbi']); $request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/') ->withQueryParams(['ajax_request' => '1']); // Preview SQL $indexes->doSaveData($request, $index, false, $GLOBALS['db'], $GLOBALS['table'], true); $jsonArray = $response->getJSONResult(); $this->assertArrayHasKey('sql_data', $jsonArray); $this->assertStringContainsString($sqlQuery, $jsonArray['sql_data']); // Alter success $response->clear(); $indexes->doSaveData($request, $index, false, $GLOBALS['db'], $GLOBALS['table'], false); $jsonArray = $response->getJSONResult(); $this->assertArrayHasKey('index_table', $jsonArray); $this->assertArrayHasKey('message', $jsonArray); } }