From 8dfc630b8aa9061dbe8b1c444d46a266f7507259 Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Tue, 3 Nov 2026 20:58:37 +0000 Subject: [PATCH] Accept RequestMethod cases in Request constructor --- src/Request.php | 6 +++++- test/phpunit/RequestTest.php | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Request.php b/src/Request.php index e6a9650..188ee5a 100644 --- a/src/Request.php +++ b/src/Request.php @@ -15,10 +15,14 @@ class Request implements RequestInterface { /** @SuppressWarnings("StaticAccess") */ public function __construct( - string $method, + RequestMethod|string $method, UriInterface $uri, RequestHeaders $headers ) { + if($method instanceof RequestMethod) { + $method = $method->name; + } + $this->method = RequestMethod::filterMethodName($method); $this->uri = $uri; $this->headers = $headers; diff --git a/test/phpunit/RequestTest.php b/test/phpunit/RequestTest.php index e938f41..6b8169d 100644 --- a/test/phpunit/RequestTest.php +++ b/test/phpunit/RequestTest.php @@ -53,6 +53,18 @@ public function testGetMethod() { ); } + public function testConstructorAcceptsRequestMethodCases():void { + foreach(RequestMethod::cases() as $method) { + $request = new Request( + $method, + self::getUriMock(), + self::getHeadersMock() + ); + + self::assertSame($method->name, $request->getMethod()); + } + } + public function testWithMethod() { $req = new Request( "get",