<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>TestLogXF xref</title>
<link type="text/css" rel="stylesheet" href="../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *</em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j;
<a name="18" href="#18">18</a>  
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <em class="jxr_javadoccomment">/**</em>
<a name="23" href="#23">23</a>  <em class="jxr_javadoccomment"> * Unit test for LogXF.</em>
<a name="24" href="#24">24</a>  <em class="jxr_javadoccomment"> */</em>
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/TestLogXF.html">TestLogXF</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="26" href="#26">26</a>      <em class="jxr_javadoccomment">/**</em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">     * Logger.</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">     */</em>
<a name="29" href="#29">29</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger = Logger.getLogger(
<a name="30" href="#30">30</a>              <span class="jxr_string">"org.apache.log4j.formatter.TestLogXF"</span>);
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>      <em class="jxr_javadoccomment">/**</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">     * Create the test case</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment">     *</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">     * @param testName name of the test case</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">     */</em>
<a name="37" href="#37">37</a>      <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/TestLogXF.html">TestLogXF</a>(String testName) {
<a name="38" href="#38">38</a>          <strong class="jxr_keyword">super</strong>(testName);
<a name="39" href="#39">39</a>      }
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>      <em class="jxr_javadoccomment">/**</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     * Post test clean up.</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     */</em>
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() {
<a name="46" href="#46">46</a>          LogManager.resetConfiguration();
<a name="47" href="#47">47</a>      }
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/TestLogXF.html">BadStringifier</a> {
<a name="50" href="#50">50</a>          <strong class="jxr_keyword">private</strong> <a href="../../../org/apache/log4j/TestLogXF.html">BadStringifier</a>() {}
<a name="51" href="#51">51</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../org/apache/log4j/TestLogXF.html">BadStringifier</a> INSTANCE = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/TestLogXF.html">BadStringifier</a>();
<a name="52" href="#52">52</a>          <strong class="jxr_keyword">public</strong> String toString() {
<a name="53" href="#53">53</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException();
<a name="54" href="#54">54</a>          }
<a name="55" href="#55">55</a>      }
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <em class="jxr_javadoccomment">/**</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * Test LogXF.entering with null class and method.</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     */</em>
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEnteringNullNull() {
<a name="62" href="#62">62</a>          <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="63" href="#63">63</a>          logger.setLevel(Level.DEBUG);
<a name="64" href="#64">64</a>          LogXF.entering(logger, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="65" href="#65">65</a>          assertEquals(<span class="jxr_string">"null.null ENTRY"</span>, capture.getMessage());
<a name="66" href="#66">66</a>      }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>      <em class="jxr_javadoccomment">/**</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * Test LogXF.entering with null class, method and parameter.</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     */</em>
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEnteringNullNullNull() {
<a name="73" href="#73">73</a>          <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="74" href="#74">74</a>          logger.setLevel(Level.DEBUG);
<a name="75" href="#75">75</a>          LogXF.entering(logger, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, (String) <strong class="jxr_keyword">null</strong>);
<a name="76" href="#76">76</a>          assertEquals(<span class="jxr_string">"null.null ENTRY null"</span>, capture.getMessage());
<a name="77" href="#77">77</a>      }
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>      <em class="jxr_javadoccomment">/**</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * Test LogXF.entering with null class, method and parameters.</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
<a name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEnteringNullNullNullArray() {
<a name="83" href="#83">83</a>          <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="84" href="#84">84</a>          logger.setLevel(Level.DEBUG);
<a name="85" href="#85">85</a>          LogXF.entering(logger, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, (Object[]) <strong class="jxr_keyword">null</strong>);
<a name="86" href="#86">86</a>          assertEquals(<span class="jxr_string">"null.null ENTRY {}"</span>, capture.getMessage());
<a name="87" href="#87">87</a>      }
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>      <em class="jxr_javadoccomment">/**</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * Test LogXF.entering with class and method.</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
<a name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEntering() {
<a name="93" href="#93">93</a>          <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="94" href="#94">94</a>          logger.setLevel(Level.DEBUG);
<a name="95" href="#95">95</a>          LogXF.entering(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>);
<a name="96" href="#96">96</a>          assertEquals(<span class="jxr_string">"SomeClass.someMethod ENTRY"</span>, capture.getMessage());
<a name="97" href="#97">97</a>      }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>      <em class="jxr_javadoccomment">/**</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * Test LogXF.entering with class, method and parameter.</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     */</em>
<a name="102" href="#102">102</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEnteringWithParam() {
<a name="103" href="#103">103</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="104" href="#104">104</a>         logger.setLevel(Level.DEBUG);
<a name="105" href="#105">105</a>         LogXF.entering(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>, <span class="jxr_string">"someParam"</span>);
<a name="106" href="#106">106</a>         assertEquals(<span class="jxr_string">"SomeClass.someMethod ENTRY someParam"</span>, capture.getMessage());
<a name="107" href="#107">107</a>     }
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>     <em class="jxr_javadoccomment">/**</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * Test LogXF.entering with class, method and bad parameter.</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     */</em>
<a name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEnteringWithBadParam() {
<a name="113" href="#113">113</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="114" href="#114">114</a>         logger.setLevel(Level.DEBUG);
<a name="115" href="#115">115</a>         LogXF.entering(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>, BadStringifier.INSTANCE);
<a name="116" href="#116">116</a>         assertEquals(<span class="jxr_string">"SomeClass.someMethod ENTRY ?"</span>, capture.getMessage());
<a name="117" href="#117">117</a>     }
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a>     <em class="jxr_javadoccomment">/**</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * Test LogXF.entering with class, method and bad parameters.</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     */</em>
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEnteringWithBadParams() {
<a name="123" href="#123">123</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="124" href="#124">124</a>         logger.setLevel(Level.DEBUG);
<a name="125" href="#125">125</a>         LogXF.entering(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>, <strong class="jxr_keyword">new</strong> Object[]{<span class="jxr_string">"param1"</span>,BadStringifier.INSTANCE});
<a name="126" href="#126">126</a>         assertEquals(<span class="jxr_string">"SomeClass.someMethod ENTRY {param1,?}"</span>, capture.getMessage());
<a name="127" href="#127">127</a>     }
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>     <em class="jxr_javadoccomment">/**</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * Test LogXF.exiting with null class and method.</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     */</em>
<a name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testExitingNullNull() {
<a name="134" href="#134">134</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="135" href="#135">135</a>         logger.setLevel(Level.DEBUG);
<a name="136" href="#136">136</a>         LogXF.exiting(logger, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="137" href="#137">137</a>         assertEquals(<span class="jxr_string">"null.null RETURN"</span>, capture.getMessage());
<a name="138" href="#138">138</a>     }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>     <em class="jxr_javadoccomment">/**</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * Test LogXF.exiting with null class, method and parameter.</em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     */</em>
<a name="144" href="#144">144</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testExitingNullNullNull() {
<a name="145" href="#145">145</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="146" href="#146">146</a>         logger.setLevel(Level.DEBUG);
<a name="147" href="#147">147</a>         LogXF.exiting(logger, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, (String) <strong class="jxr_keyword">null</strong>);
<a name="148" href="#148">148</a>         assertEquals(<span class="jxr_string">"null.null RETURN null"</span>, capture.getMessage());
<a name="149" href="#149">149</a>     }
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     <em class="jxr_javadoccomment">/**</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * Test LogXF.exiting with class and method.</em>
<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     */</em>
<a name="155" href="#155">155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testExiting() {
<a name="156" href="#156">156</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="157" href="#157">157</a>         logger.setLevel(Level.DEBUG);
<a name="158" href="#158">158</a>         LogXF.exiting(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>);
<a name="159" href="#159">159</a>         assertEquals(<span class="jxr_string">"SomeClass.someMethod RETURN"</span>, capture.getMessage());
<a name="160" href="#160">160</a>     }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     <em class="jxr_javadoccomment">/**</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * Test LogXF.exiting with class, method and return value.</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     */</em>
<a name="165" href="#165">165</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testExitingWithValue() {
<a name="166" href="#166">166</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="167" href="#167">167</a>         logger.setLevel(Level.DEBUG);
<a name="168" href="#168">168</a>         LogXF.exiting(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>, <span class="jxr_string">"someValue"</span>);
<a name="169" href="#169">169</a>         assertEquals(<span class="jxr_string">"SomeClass.someMethod RETURN someValue"</span>, capture.getMessage());
<a name="170" href="#170">170</a>     }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>     <em class="jxr_javadoccomment">/**</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * Test LogXF.exiting with class, method and bad return value.</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     */</em>
<a name="175" href="#175">175</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testExitingWithBadValue() {
<a name="176" href="#176">176</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="177" href="#177">177</a>         logger.setLevel(Level.DEBUG);
<a name="178" href="#178">178</a>         LogXF.exiting(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>, BadStringifier.INSTANCE);
<a name="179" href="#179">179</a>         assertEquals(<span class="jxr_string">"SomeClass.someMethod RETURN ?"</span>, capture.getMessage());
<a name="180" href="#180">180</a>     }
<a name="181" href="#181">181</a> 
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>     <em class="jxr_javadoccomment">/**</em>
<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * Test LogXF.throwing with null class, method and throwable.</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     */</em>
<a name="186" href="#186">186</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testThrowingNullNullNull() {
<a name="187" href="#187">187</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="188" href="#188">188</a>         logger.setLevel(Level.DEBUG);
<a name="189" href="#189">189</a>         LogXF.throwing(logger, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="190" href="#190">190</a>         assertEquals(<span class="jxr_string">"null.null THROW"</span>, capture.getMessage());
<a name="191" href="#191">191</a>     }
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>     <em class="jxr_javadoccomment">/**</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * Test LogXF.exiting with class and method.</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     */</em>
<a name="197" href="#197">197</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testThrowing() {
<a name="198" href="#198">198</a>         <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a> capture = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LogCapture.html">LogCapture</a>(Level.DEBUG);
<a name="199" href="#199">199</a>         logger.setLevel(Level.DEBUG);
<a name="200" href="#200">200</a>         LogXF.throwing(logger, <span class="jxr_string">"SomeClass"</span>, <span class="jxr_string">"someMethod"</span>, <strong class="jxr_keyword">new</strong> IllegalArgumentException());
<a name="201" href="#201">201</a>         assertEquals(<span class="jxr_string">"SomeClass.someMethod THROW"</span>, capture.getMessage());
<a name="202" href="#202">202</a>     }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

