fail(); } catch (Exception $e) { $this->assertTrue($e instanceof Zend_Log_Exception); $this->assertRegExp('/not a stream/i', $e->getMessage()); } xml_parser_free($resource); } public function testConstructorWithValidStream() { $stream = fopen('php://memory', 'w+'); new Zend_Log_Writer_Stream($stream); } public function testConstructorWithValidUrl() { new Zend_Log_Writer_Stream('php://memory'); } public function testConstructorThrowsWhenModeSpecifiedForExistingStream() { $stream = fopen('php://memory', 'w+'); try { new Zend_Log_Writer_Stream($stream, 'w+'); $this->fail(); } catch (Exception $e) { $this->assertTrue($e instanceof Zend_Log_Exception); $this->assertRegExp('/existing stream/i', $e->getMessage()); } } public function testConstructorThrowsWhenStreamCannotBeOpened() { try { new Zend_Log_Writer_Stream(''); $this->fail(); } catch (Exception $e) { $this->assertTrue($e instanceof Zend_Log_Exception); $this->assertRegExp('/cannot be opened/i', $e->getMessage()); } } public function testWrite() { $stream = fopen('php://memory', 'w+'); $fields = array('message' => 'message-to-log'); $writer = new Zend_Log_Writer_Stream($stream); $writer->write($fields); rewind($stream); $contents = stream_get_contents($stream); fclose($stream); $this->assertContains($fields['message'], $contents); } public function testWriteThrowsWhenStreamWriteFails() { $stream = fopen('php://memory', 'w+'); $writer = new Zend_Log_Writer_Stream($stream); fclose($stream); try { $writer->write(array('message' => 'foo')); $this->fail(); } catch (Exception $e) { $this->assertTrue($e instanceof Zend_Log_Exception); $this->assertRegExp('/unable to write/i', $e->getMessage()); } } public function testShutdownClosesStreamResource() { $writer = new Zend_Log_Writer_Stream('php://memory', 'w+'); $writer->write(array('message' => 'this write should succeed')); $writer->shutdown(); try { $writer->write(array('message' => 'this write should fail')); $this->fail(); } catch (Exception $e) { $this->assertTrue($e instanceof Zend_Log_Exception); $this->assertRegExp('/unable to write/i', $e->getMessage()); } } public function testSettingNewFormatter() { $stream = fopen('php://memory', 'w+'); $writer = new Zend_Log_Writer_Stream($stream); $expected = 'foo'; $formatter = new Zend_Log_Formatter_Simple($expected); $writer->setFormatter($formatter); $writer->write(array('bar'=>'baz')); rewind($stream); $contents = stream_get_contents($stream); fclose($stream); $this->assertContains($expected, $contents); } public function testFactoryStream() { $cfg = array('log' => array('memory' => array( 'writerName' => "Mock", 'writerParams' => array( 'stream' => 'php://memory', 'mode' => 'a' ) ))); $logger = Zend_Log::factory($cfg['log']); $this->assertTrue($logger instanceof Zend_Log); } public function testFactoryUrl() { $cfg = array('log' => array('memory' => array( 'writerName' => "Mock", 'writerParams' => array( 'url' => 'http://localhost', 'mode' => 'a' ) ))); $logger = Zend_Log::factory($cfg['log']); $this->assertTrue($logger instanceof Zend_Log); } } if (PHPUnit_MAIN_METHOD == 'Zend_Log_Writer_StreamTest::main') { Zend_Log_Writer_StreamTest::main(); }