public function testThatWithParamsDoesNotChangeRequest() { $Request = new Request('foo'); $this->assertSame('foo', $Request->getMethod()); $this->assertSame([], $Request->getParams()); $this->assertNull($Request->getId()); $OtherRequest = $Request->withParams(['foo' => 'bar']); $this->assertSame('foo', $Request->getMethod()); $this->assertSame([], $Request->getParams()); $this->assertNull($Request->getId()); $this->assertSame('foo', $OtherRequest->getMethod()); $this->assertSame(['foo' => 'bar'], $OtherRequest->getParams()); $this->assertNull($OtherRequest->getId()); }