createDatabaseInterface(); Current::$server = 2; Current::$whereClause = null; $_POST = []; } public function testChangeRowsController(): void { $request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/') ->withParsedBody(['rows_to_delete' => 'row']); $mock = self::createMock(ChangeController::class); $mock->expects(self::once())->method('__invoke')->with($request) ->willReturn(ResponseFactory::create()->createResponse()); (new ChangeRowsController(new ResponseRenderer(), $mock))($request); self::assertSame([], Current::$whereClause); } public function testWithoutRowsToDelete(): void { $request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/') ->withParsedBody(['goto' => 'goto']); $mock = self::createMock(ChangeController::class); $mock->expects(self::never())->method('__invoke')->with($request) ->willReturn(ResponseFactory::create()->createResponse()); $response = new ResponseRenderer(); (new ChangeRowsController($response, $mock))($request); self::assertSame(['message' => 'No row selected.'], $response->getJSONResult()); self::assertFalse($response->hasSuccessState()); self::assertNull(Current::$whereClause); } public function testWithRowsToDelete(): void { $request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/') ->withParsedBody(['goto' => 'goto', 'rows_to_delete' => ['key1' => 'row1', 'key2' => 'row2']]); $mock = self::createMock(ChangeController::class); $mock->expects(self::once())->method('__invoke')->with($request) ->willReturn(ResponseFactory::create()->createResponse()); (new ChangeRowsController(new ResponseRenderer(), $mock))($request); self::assertSame(['row1', 'row2'], Current::$whereClause); } }