<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Code Coverage for D:\work\log4php-trunk\src\main\php/LoggerThrowableInformation.php</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/bootstrap-responsive.min.css" rel="stylesheet">
  <link href="css/style.css" rel="stylesheet">
  <!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
 </head>
 <body>
  <header>
   <div class="container">
    <div class="row">
     <div class="span12">
      <ul class="breadcrumb">
        <li><a href="index.html">D:\work\log4php-trunk\src\main\php</a> <span class="divider">/</span></li>
        <li class="active">LoggerThrowableInformation.php</li>

      </ul>
     </div>
    </div>
   </div>
  </header>
  <div class="container">
   <table class="table table-bordered">
    <thead>
     <tr>
      <td>&nbsp;</td>
      <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
     </tr>
     <tr>
      <td>&nbsp;</td>
      <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
      <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
      <td colspan="3"><div align="center"><strong>Lines</strong></div></td>
     </tr>
    </thead>
    <tbody>
     <tr>
      <td class="success">Total</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1 / 1</div></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">3 / 3</div></td>
      <td class="success small"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">8 / 8</div></td>
     </tr>

     <tr>
      <td class="success">LoggerThrowableInformation</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1 / 1</div></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">3 / 3</div></td>
      <td class="success small">4</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">8 / 8</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#41">__construct(Exception $throwable)</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1 / 1</div></td>
      <td class="success small">1</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">2 / 2</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#50">getThrowable()</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1 / 1</div></td>
      <td class="success small">1</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1 / 1</div></td>
     </tr>

     <tr>
      <td class="success" colspan="4">&nbsp;<a href="#59">getStringRepresentation()</a></td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">1 / 1</div></td>
      <td class="success small">2</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 100.00%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">100.00%</div></td>
      <td class="success small"><div align="right">5 / 5</div></td>
     </tr>


    </tbody>
   </table>
   <table class="table table-borderless table-condensed">
    <tbody>
     <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine">&lt;?php</td></tr>
     <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine">/**</td></tr>
     <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"> * Licensed to the Apache Software Foundation (ASF) under one or more</td></tr>
     <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"> * contributor license agreements. See the NOTICE file distributed with</td></tr>
     <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"> * this work for additional information regarding copyright ownership.</td></tr>
     <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"> * The ASF licenses this file to You under the Apache License, Version 2.0</td></tr>
     <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"> * (the &quot;License&quot;); you may not use this file except in compliance with</td></tr>
     <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"> * the License. You may obtain a copy of the License at</td></tr>
     <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"> *       http://www.apache.org/licenses/LICENSE-2.0</td></tr>
     <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"> * Unless required by applicable law or agreed to in writing, software</td></tr>
     <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</td></tr>
     <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</td></tr>
     <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"> * See the License for the specific language governing permissions and</td></tr>
     <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"> * limitations under the License.</td></tr>
     <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"> * @package log4php</td></tr>
     <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"> */</td></tr>
     <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine">/**</td></tr>
     <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"> * The internal representation of throwables.</td></tr>
     <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"> * @package log4php</td></tr>
     <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"> * @since 2.1</td></tr>
     <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"> */</td></tr>
     <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine">class LoggerThrowableInformation {</td></tr>
     <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine">    /** @var Exception Throwable to log */</td></tr>
     <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine">    private $throwable;</td></tr>
     <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine">    /** @var array Array of throwable messages */</td></tr>
     <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine">    private $throwableArray;</td></tr>
     <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine">     * Create a new instance</td></tr>
     <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine">     *</td></tr>
     <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine">     * @param $throwable - a throwable as a exception</td></tr>
     <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine">     * @param $logger - Logger reference</td></tr>
     <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine">    public function __construct(Exception $throwable) {</td></tr>
     <tr class="success popin" data-title="6 tests cover line 42" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerLoggingEventTest::testGetThrowableInformation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testConstructor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testExceptionChain&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testGetThrowable&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderMongoDBTest::testFormatThrowableInfo&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderMongoDBTest::testFormatThrowableInfoWithInnerException&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine">        $this-&gt;throwable = $throwable;</td></tr>
     <tr class="success popin" data-title="6 tests cover line 43" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerLoggingEventTest::testGetThrowableInformation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testConstructor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testExceptionChain&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testGetThrowable&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderMongoDBTest::testFormatThrowableInfo&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderMongoDBTest::testFormatThrowableInfoWithInnerException&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine">    * Return source exception</td></tr>
     <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine">    *</td></tr>
     <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine">    * @return Exception</td></tr>
     <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine">    */</td></tr>
     <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine">    public function getThrowable() {</td></tr>
     <tr class="success popin" data-title="3 tests cover line 51" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testGetThrowable&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderMongoDBTest::testFormatThrowableInfo&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderMongoDBTest::testFormatThrowableInfoWithInnerException&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine">        return $this-&gt;throwable;</td></tr>
     <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine">     * @desc Returns string representation of throwable</td></tr>
     <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine">     *</td></tr>
     <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine">     * @return array</td></tr>
     <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine">    public function getStringRepresentation() {</td></tr>
     <tr class="success popin" data-title="3 tests cover line 60" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerLoggingEventTest::testGetThrowableInformation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testConstructor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testExceptionChain&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine">        if (!is_array($this-&gt;throwableArray)) {</td></tr>
     <tr class="success popin" data-title="3 tests cover line 61" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerLoggingEventTest::testGetThrowableInformation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testConstructor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testExceptionChain&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine">            $renderer = new LoggerRendererException();</td></tr>
     <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"></td></tr>
     <tr class="success popin" data-title="3 tests cover line 63" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerLoggingEventTest::testGetThrowableInformation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testConstructor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testExceptionChain&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine">            $this-&gt;throwableArray = explode(&quot;\n&quot;, $renderer-&gt;render($this-&gt;throwable));</td></tr>
     <tr class="success popin" data-title="3 tests cover line 64" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerLoggingEventTest::testGetThrowableInformation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testConstructor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testExceptionChain&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"></td></tr>
     <tr class="success popin" data-title="3 tests cover line 66" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerLoggingEventTest::testGetThrowableInformation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testConstructor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerThrowableInformationTest::testExceptionChain&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine">        return $this-&gt;throwableArray;</td></tr>
     <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine">}</td></tr>

    </tbody>
   </table>
   <footer>
    <h4>Legend</h4>
    <p>
     <span class="success"><strong>Executed</strong></span>
     <span class="danger"><strong>Not Executed</strong></span>
     <span class="warning"><strong>Dead Code</strong></span>
    </p>
    <p>
     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.2.3</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.13</a> and <a href="http://phpunit.de/">PHPUnit 3.7.6</a> at Sat Oct 13 8:58:14 BST 2012.</small>
    </p>
   </footer>
  </div>
  <script src="js/jquery.min.js" type="text/javascript"></script>
  <script src="js/bootstrap.min.js" type="text/javascript"></script>
  <script type="text/javascript">$('.popin').popover({trigger: 'hover'});</script>
 </body>
</html>
