assertSame(200, $r->getStatusCode()); $this->assertEquals('OK', $r->getReasonPhrase()); } public function testCanGiveCustomReason() { $r = new Response(200, [], null, '1.1', 'bar'); $this->assertEquals('bar', $r->getReasonPhrase()); } public function testCanGiveCustomProtocolVersion() { $r = new Response(200, [], null, '1000'); $this->assertEquals('1000', $r->getProtocolVersion()); } public function testCanCreateNewResponseWithStatusAndNoReason() { $r = new Response(200); $r2 = $r->withStatus(201); $this->assertEquals(200, $r->getStatusCode()); $this->assertEquals('OK', $r->getReasonPhrase()); $this->assertEquals(201, $r2->getStatusCode()); $this->assertEquals('Created', $r2->getReasonPhrase()); } public function testCanCreateNewResponseWithStatusAndReason() { $r = new Response(200); $r2 = $r->withStatus(201, 'Foo'); $this->assertEquals(200, $r->getStatusCode()); $this->assertEquals('OK', $r->getReasonPhrase()); $this->assertEquals(201, $r2->getStatusCode()); $this->assertEquals('Foo', $r2->getReasonPhrase()); } public function testCreatesResponseWithAddedHeaderArray() { $r = new Response(); $r2 = $r->withAddedHeader('foo', ['baz', 'bar']); $this->assertFalse($r->hasHeader('foo')); $this->assertEquals('baz, bar', $r2->getHeaderLine('foo')); } public function testReturnsIdentityWhenRemovingMissingHeader() { $r = new Response(); $this->assertSame($r, $r->withoutHeader('foo')); } public function testAlwaysReturnsBody() { $r = new Response(); $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody()); } public function testCanSetHeaderAsArray() { $r = new Response(200, [ 'foo' => ['baz ', ' bar '] ]); $this->assertEquals('baz, bar', $r->getHeaderLine('foo')); $this->assertEquals(['baz', 'bar'], $r->getHeader('foo')); } public function testSameInstanceWhenSameBody() { $r = new Response(200, [], 'foo'); $b = $r->getBody(); $this->assertSame($r, $r->withBody($b)); } public function testNewInstanceWhenNewBody() { $r = new Response(200, [], 'foo'); $b2 = Psr7\stream_for('abc'); $this->assertNotSame($r, $r->withBody($b2)); } public function testSameInstanceWhenSameProtocol() { $r = new Response(200); $this->assertSame($r, $r->withProtocolVersion('1.1')); } public function testNewInstanceWhenNewProtocol() { $r = new Response(200); $this->assertNotSame($r, $r->withProtocolVersion('1.0')); } public function testNewInstanceWhenRemovingHeader() { $r = new Response(200, ['Foo' => 'Bar']); $r2 = $r->withoutHeader('Foo'); $this->assertNotSame($r, $r2); $this->assertFalse($r2->hasHeader('foo')); } public function testNewInstanceWhenAddingHeader() { $r = new Response(200, ['Foo' => 'Bar']); $r2 = $r->withAddedHeader('Foo', 'Baz'); $this->assertNotSame($r, $r2); $this->assertEquals('Bar, Baz', $r2->getHeaderLine('foo')); } public function testNewInstanceWhenAddingHeaderThatWasNotThereBefore() { $r = new Response(200, ['Foo' => 'Bar']); $r2 = $r->withAddedHeader('Baz', 'Bam'); $this->assertNotSame($r, $r2); $this->assertEquals('Bam', $r2->getHeaderLine('Baz')); $this->assertEquals('Bar', $r2->getHeaderLine('Foo')); } public function testRemovesPreviouslyAddedHeaderOfDifferentCase() { $r = new Response(200, ['Foo' => 'Bar']); $r2 = $r->withHeader('foo', 'Bam'); $this->assertNotSame($r, $r2); $this->assertEquals('Bam', $r2->getHeaderLine('Foo')); } public function testBodyConsistent() { $r = new Response(200, [], '0'); $this->assertEquals('0', (string)$r->getBody()); } }