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