1<?php 2 3/** 4 * Hoa 5 * 6 * 7 * @license 8 * 9 * New BSD License 10 * 11 * Copyright © 2007-2017, Hoa community. All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions are met: 15 * * Redistributions of source code must retain the above copyright 16 * notice, this list of conditions and the following disclaimer. 17 * * Redistributions in binary form must reproduce the above copyright 18 * notice, this list of conditions and the following disclaimer in the 19 * documentation and/or other materials provided with the distribution. 20 * * Neither the name of the Hoa nor the names of its contributors may be 21 * used to endorse or promote products derived from this software without 22 * specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE 28 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 * POSSIBILITY OF SUCH DAMAGE. 35 */ 36 37namespace Hoa\Exception\Test\Unit; 38 39use Hoa\Event; 40use Hoa\Exception\Exception as SUT; 41use Hoa\Test; 42 43/** 44 * Class \Hoa\Exception\Test\Unit\Exception. 45 * 46 * Test suite of the exception class. 47 * 48 * @copyright Copyright © 2007-2017 Hoa community 49 * @license New BSD License 50 */ 51class Exception extends Test\Unit\Suite 52{ 53 public function case_is_an_idle_exception() 54 { 55 $this 56 ->when($result = new SUT('foo')) 57 ->then 58 ->object($result) 59 ->isInstanceOf('Hoa\Exception\Idle'); 60 } 61 62 public function case_event_is_registered() 63 { 64 $this 65 ->given(new SUT('foo')) 66 ->when($result = Event::eventExists('hoa://Event/Exception')) 67 ->then 68 ->boolean($result) 69 ->isTrue(); 70 } 71 72 public function case_event_is_sent() 73 { 74 $self = $this; 75 76 $this 77 ->given( 78 Event::getEvent('hoa://Event/Exception')->attach( 79 function (Event\Bucket $bucket) use ($self, &$called) { 80 $called = true; 81 82 $self 83 ->object($bucket->getSource()) 84 ->isInstanceOf('Hoa\Exception\Exception') 85 ->string($bucket->getSource()->getMessage()) 86 ->isEqualTo('foo') 87 ->object($bucket->getData()) 88 ->isIdenticalTo($bucket->getSource()); 89 } 90 ) 91 ) 92 ->when(new SUT('foo')) 93 ->then 94 ->boolean($called) 95 ->isTrue(); 96 } 97} 98