* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class MessageTest extends TestCase { public function testConstructor() { $message = new Message(['foo' => 'bar'], new StringStream('foobar')); $this->assertEquals(['foo' => ['bar']], $message->getHeaders()); $this->assertInstanceOf('PSX\Http\StreamInterface', $message->getBody()); $this->assertEquals('foobar', (string) $message->getBody()); $message = new Message(['foo' => 'bar'], 'foobar'); $this->assertEquals(['foo' => ['bar']], $message->getHeaders()); $this->assertInstanceOf('PSX\Http\StreamInterface', $message->getBody()); $this->assertEquals('foobar', (string) $message->getBody()); $message = new Message(['foo' => 'bar']); $this->assertEquals(['foo' => ['bar']], $message->getHeaders()); $this->assertInstanceOf('PSX\Http\StreamInterface', $message->getBody()); $this->assertEquals('', (string) $message->getBody()); $message = new Message(); $this->assertEquals([], $message->getHeaders()); $this->assertInstanceOf('PSX\Http\StreamInterface', $message->getBody()); $this->assertEquals('', (string) $message->getBody()); } public function testGetSetHeaders() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', 'bar' => array('foo', 'bar'), )); $headers = $message->getHeaders(); $this->assertTrue(is_array($headers['foo'])); $this->assertEquals(array('bar'), $headers['foo']); $this->assertTrue(is_array($headers['bar'])); $this->assertEquals(array('foo', 'bar'), $headers['bar']); foreach ($headers as $name => $value) { $this->assertTrue(is_array($value)); } // set headers must overwrite all existing headers $message->setHeaders(array( 'foo' => 'bar', )); $this->assertTrue($message->hasHeader('foo')); $this->assertFalse($message->hasHeader('bar')); } public function testHasHeader() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', )); $this->assertTrue($message->hasHeader('foo')); $this->assertFalse($message->hasHeader('bar')); $this->assertTrue($message->hasHeader('FOO')); $this->assertFalse($message->hasHeader('BAR')); } public function testGetHeader() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', )); $this->assertEquals('bar', $message->getHeader('foo')); $this->assertEquals(null, $message->getHeader('bar')); $this->assertEquals('bar', $message->getHeader('FOO')); $this->assertEquals(null, $message->getHeader('BAR')); } public function testGetHeaderLines() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', )); $this->assertEquals(array('bar'), $message->getHeaderLines('foo')); $this->assertEquals(array(), $message->getHeaderLines('bar')); $this->assertEquals(array('bar'), $message->getHeaderLines('FOO')); $this->assertEquals(array(), $message->getHeaderLines('BAR')); } public function testSetHeader() { $message = new Message(); $this->assertFalse($message->hasHeader('foo')); $this->assertFalse($message->hasHeader('FOO')); $message->setHeader('foo', 'bar'); $this->assertTrue($message->hasHeader('foo')); $this->assertTrue($message->hasHeader('FOO')); } public function testAddHeader() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', )); $this->assertEquals('bar', $message->getHeader('foo')); $this->assertEquals(array('bar'), $message->getHeaderLines('foo')); $this->assertEquals('bar', $message->getHeader('FOO')); $this->assertEquals(array('bar'), $message->getHeaderLines('FOO')); // now we add the same header again which must be added to the existing // header $message->addHeader('foo', 'foo'); $this->assertEquals('bar, foo', $message->getHeader('foo')); $this->assertEquals(array('bar', 'foo'), $message->getHeaderLines('foo')); $this->assertEquals('bar, foo', $message->getHeader('FOO')); $this->assertEquals(array('bar', 'foo'), $message->getHeaderLines('FOO')); } public function testAddHeaderCaseInsensitive() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', )); $this->assertEquals('bar', $message->getHeader('foo')); $this->assertEquals(array('bar'), $message->getHeaderLines('foo')); $this->assertEquals('bar', $message->getHeader('FOO')); $this->assertEquals(array('bar'), $message->getHeaderLines('FOO')); // now we add the same header again which must be added to the existing // header $message->addHeader('FOO', 'foo'); $this->assertEquals('bar, foo', $message->getHeader('foo')); $this->assertEquals(array('bar', 'foo'), $message->getHeaderLines('foo')); $this->assertEquals('bar, foo', $message->getHeader('FOO')); $this->assertEquals(array('bar', 'foo'), $message->getHeaderLines('FOO')); } public function testRemoveHeader() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', )); $this->assertTrue($message->hasHeader('foo')); $this->assertTrue($message->hasHeader('FOO')); $message->removeHeader('foo'); $this->assertFalse($message->hasHeader('foo')); $this->assertFalse($message->hasHeader('FOO')); } public function testRemoveCaseInsensitive() { $message = new Message(); $message->setHeaders(array( 'foo' => 'bar', )); $this->assertTrue($message->hasHeader('foo')); $this->assertTrue($message->hasHeader('FOO')); $message->removeHeader('FOO'); $this->assertFalse($message->hasHeader('foo')); $this->assertFalse($message->hasHeader('FOO')); } public function testSetBody() { $message = new Message(); $message->setBody(new StringStream('foobar')); $this->assertEquals('foobar', (string) $message->getBody()); } public function testSetBodyString() { $message = new Message(array(), 'foobar'); $this->assertEquals('foobar', (string) $message->getBody()); } public function testSetBodyNull() { $message = new Message(array(), null); $this->assertEquals('', (string) $message->getBody()); } public function testSetBodyResource() { $handle = fopen('php://memory', 'r+'); fwrite($handle, 'foobar'); $message = new Message(array(), $handle); $this->assertEquals('foobar', (string) $message->getBody()); } public function testInvalidBody() { $this->expectException(\InvalidArgumentException::class); new Message(array('foo' => 'bar'), new \stdClass()); } } __halt_compiler();----SIGNATURE:----MRtGXrDiNYLiZD6vjnGp6z+iiw4BvahNMAtdUCWplB57oxmczAJ4VYPLiu1BHqIA0nvCnrNzUEVYG+ktxexHvqDx3p6lBj4mjnbkXKbvhTVYPwiKnadg2d7IQll4eRNKShBrEc3LqXNJ+ls6avllSUQ3O524IXKO30ycThD4pmxdzEVHWw+tCidzEkrJluvmoUhwq/2pXoyY4NykYf9OklyEgZvca7J5SZtRaKK2qA/6b1SnJN10bfMOenFCpXKrB9iFZJSujvOsBQduSZUMCCBn/SjZ+rL5HnEai4WKX3N0Dfys/pkYKiZSQ3WClE3LPBkCGI5uN7cQvKcw9pxRDjR1D95gsUDCRwBABt+Z39OQ/psQu71qY+sYw10l+h0n1R4m1SHrxehvs8fAZLujzCrCSdY8NgXOX46YDq6pNp+bpGdulO6pRnzEZzAGGPPGBaEKUYVMRLxranuS13vlk0AuFzzo8hdjGebuYrQg7ADIhPhGOlMy6aHqOXiBytoZ+AUQ3YuWoiazc+RzZ0hjuu52oC5FZDlEQPUtZvbwUvCsZgY8QtV4J9L8sLHX7cbtxxZdCf8VNXesnAsESwM5piCO5B5pO5RMM4OmE5MGQKWtlT7z0/OgxGnf9+bPiWjzOYea7DXighGaBOEwaEqH6swVSH2j6vDE8WGvWuSR0E8=----ATTACHMENT:----NTIyNDA5MjM3MTA1OTQ4NyA2OTg2MjA3NzEzNTMwMDc3IDEyNzM3NzE0NzUyMTc4Mzc=