*/
class DerivativeRequest extends FauxRequest {
private $base;
+ private $ip;
/**
* @param WebRequest $base
}
public function getIP() {
- return $this->base->getIP();
+ return $this->ip ?: $this->base->getIP();
+ }
+
+ public function setIP( $ip ) {
+ $this->ip = $ip;
}
public function getProtocol() {
--- /dev/null
+<?php
+
+/**
+ * @covers DerivativeRequest
+ */
+class DerivativeRequestTest extends PHPUnit\Framework\TestCase {
+
+ public function testSetIp() {
+ $original = new WebRequest();
+ $original->setIP( '1.2.3.4' );
+ $derivative = new DerivativeRequest( $original, [] );
+
+ $this->assertEquals( '1.2.3.4', $derivative->getIP() );
+
+ $derivative->setIP( '5.6.7.8' );
+
+ $this->assertEquals( '5.6.7.8', $derivative->getIP() );
+ $this->assertEquals( '1.2.3.4', $original->getIP() );
+ }
+
+}