*/ class SetLogLevelHandlerTest extends TestCase { public function testSupports(): void { $request = $this->createSetLogLevelRequest(LoggingLevel::Info); $handler = new SetLogLevelHandler(); $this->assertTrue($handler->supports($request)); } public function testDoesNotSupportOtherRequests(): void { $otherRequest = $this->createMock(Request::class); $handler = new SetLogLevelHandler(); $this->assertFalse($handler->supports($otherRequest)); } public function testHandleAllLogLevelsAndSupport(): void { $handler = new SetLogLevelHandler(); foreach (LoggingLevel::cases() as $level) { $request = $this->createSetLogLevelRequest($level); $session = $this->getMockBuilder(Session::class) ->disableOriginalConstructor() ->onlyMethods(['set']) ->getMock(); $session->expects($this->once()) ->method('set') ->with(Protocol::SESSION_LOGGING_LEVEL, $level->value); $response = $handler->handle($request, $session); $this->assertEquals($request->getId(), $response->id); $this->assertInstanceOf(EmptyResult::class, $response->result); } } private function createSetLogLevelRequest(LoggingLevel $level): SetLogLevelRequest { return SetLogLevelRequest::fromArray([ 'jsonrpc' => '2.0', 'method' => SetLogLevelRequest::getMethod(), 'id' => 'test-request-'.uniqid(), 'params' => [ 'level' => $level->value, ], ]); } }