1<?php 2/** 3 * Zend Framework (http://framework.zend.com/) 4 * 5 * @link http://github.com/zendframework/zf2 for the canonical source repository 6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) 7 * @license http://framework.zend.com/license/new-bsd New BSD License 8 */ 9 10namespace ZendTest\Stdlib; 11 12use PHPUnit\Framework\TestCase; 13use Zend\Stdlib\Exception\InvalidArgumentException; 14use Zend\Stdlib\Message; 15 16class MessageTest extends TestCase 17{ 18 public function testMessageCanSetAndGetContent() 19 { 20 $message = new Message(); 21 $ret = $message->setContent('I can set content'); 22 $this->assertInstanceOf('Zend\Stdlib\Message', $ret); 23 $this->assertEquals('I can set content', $message->getContent()); 24 } 25 26 public function testMessageCanSetAndGetMetadataKeyAsString() 27 { 28 $message = new Message(); 29 $ret = $message->setMetadata('foo', 'bar'); 30 $this->assertInstanceOf('Zend\Stdlib\Message', $ret); 31 $this->assertEquals('bar', $message->getMetadata('foo')); 32 $this->assertEquals(['foo' => 'bar'], $message->getMetadata()); 33 } 34 35 public function testMessageCanSetAndGetMetadataKeyAsArray() 36 { 37 $message = new Message(); 38 $ret = $message->setMetadata(['foo' => 'bar']); 39 $this->assertInstanceOf('Zend\Stdlib\Message', $ret); 40 $this->assertEquals('bar', $message->getMetadata('foo')); 41 } 42 43 public function testMessageGetMetadataWillUseDefaultValueIfNoneExist() 44 { 45 $message = new Message(); 46 $this->assertEquals('bar', $message->getMetadata('foo', 'bar')); 47 } 48 49 public function testMessageThrowsExceptionOnInvalidKeyForMetadataSet() 50 { 51 $message = new Message(); 52 53 $this->expectException(InvalidArgumentException::class); 54 $message->setMetadata(new \stdClass()); 55 } 56 57 public function testMessageThrowsExceptionOnInvalidKeyForMetadataGet() 58 { 59 $message = new Message(); 60 61 $this->expectException(InvalidArgumentException::class); 62 $message->getMetadata(new \stdClass()); 63 } 64 65 public function testMessageToStringWorks() 66 { 67 $message = new Message(); 68 $message->setMetadata(['Foo' => 'bar', 'One' => 'Two']); 69 $message->setContent('This is my content'); 70 $expected = "Foo: bar\r\nOne: Two\r\n\r\nThis is my content"; 71 $this->assertEquals($expected, $message->toString()); 72 } 73} 74