<!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=UTF-8" />
<title>ChecksummedFileTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../testapidocs/org/apache/archiva/checksum/ChecksummedFileTest.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.checksum;
<a class="jxr_linenumber" name="2" href="#2">2</a>   
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</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 class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="20" href="#20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="21" href="#21">21</a>  
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.FileUtils;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="27" href="#27">27</a>  
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="30" href="#30">30</a>  
<a class="jxr_linenumber" name="31" href="#31">31</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * ChecksummedFileTest</em>
<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="36" href="#36">36</a>  
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/archiva/checksum/ChecksummedFileTest.html">ChecksummedFileTest</a>
<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/archiva/checksum/AbstractChecksumTestCase.html">AbstractChecksumTestCase</a>
<a class="jxr_linenumber" name="39" href="#39">39</a>  {
<a class="jxr_linenumber" name="40" href="#40">40</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment">     * SHA1 checksum from www.ibiblio.org/maven2, incuding file path</em>
<a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String SERVLETAPI_SHA1 = <span class="jxr_string">"bcc82975c0f9c681fcb01cc38504c992553e93ba"</span>;
<a class="jxr_linenumber" name="44" href="#44">44</a>  
<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REMOTE_METADATA_SHA1 = <span class="jxr_string">"da39a3ee5e6b4b0d3255bfef95601890afd80709"</span>;
<a class="jxr_linenumber" name="46" href="#46">46</a>  
<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REMOTE_METADATA_MD5 = <span class="jxr_string">"d41d8cd98f00b204e9800998ecf8427e"</span>;
<a class="jxr_linenumber" name="48" href="#48">48</a>  
<a class="jxr_linenumber" name="49" href="#49">49</a>  
<a class="jxr_linenumber" name="50" href="#50">50</a>      @Before
<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cleanTestDir()
<a class="jxr_linenumber" name="52" href="#52">52</a>      {
<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="54" href="#54">54</a>          {
<a class="jxr_linenumber" name="55" href="#55">55</a>              FileUtils.deleteDirectory( getTestOutputDir() );
<a class="jxr_linenumber" name="56" href="#56">56</a>          }
<a class="jxr_linenumber" name="57" href="#57">57</a>          <strong class="jxr_keyword">catch</strong> ( IOException ex )
<a class="jxr_linenumber" name="58" href="#58">58</a>          {
<a class="jxr_linenumber" name="59" href="#59">59</a>              LoggerFactory.getLogger( ChecksummedFileTest.<strong class="jxr_keyword">class</strong> ).warn( ex.getMessage(), ex );
<a class="jxr_linenumber" name="60" href="#60">60</a>          }
<a class="jxr_linenumber" name="61" href="#61">61</a>      }
<a class="jxr_linenumber" name="62" href="#62">62</a>  
<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> File createTestableJar( String filename )
<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="65" href="#65">65</a>      {
<a class="jxr_linenumber" name="66" href="#66">66</a>          File srcFile = getTestResource( filename );
<a class="jxr_linenumber" name="67" href="#67">67</a>          File destFile = <strong class="jxr_keyword">new</strong> File( getTestOutputDir(), srcFile.getName() );
<a class="jxr_linenumber" name="68" href="#68">68</a>          FileUtils.copyFile( srcFile, destFile );
<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">return</strong> destFile;
<a class="jxr_linenumber" name="70" href="#70">70</a>      }
<a class="jxr_linenumber" name="71" href="#71">71</a>  
<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> File createTestableJar( String filename, <strong class="jxr_keyword">boolean</strong> copySha1, <strong class="jxr_keyword">boolean</strong> copyMd5 )
<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="74" href="#74">74</a>      {
<a class="jxr_linenumber" name="75" href="#75">75</a>          File srcFile = getTestResource( filename );
<a class="jxr_linenumber" name="76" href="#76">76</a>          File jarFile = <strong class="jxr_keyword">new</strong> File( getTestOutputDir(), srcFile.getName() );
<a class="jxr_linenumber" name="77" href="#77">77</a>          FileUtils.copyFile( srcFile, jarFile );
<a class="jxr_linenumber" name="78" href="#78">78</a>  
<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">if</strong> ( copySha1 )
<a class="jxr_linenumber" name="80" href="#80">80</a>          {
<a class="jxr_linenumber" name="81" href="#81">81</a>              File srcSha1 = <strong class="jxr_keyword">new</strong> File( srcFile.getAbsolutePath() + <span class="jxr_string">".sha1"</span> );
<a class="jxr_linenumber" name="82" href="#82">82</a>              File sha1File = <strong class="jxr_keyword">new</strong> File( jarFile.getAbsolutePath() + <span class="jxr_string">".sha1"</span> );
<a class="jxr_linenumber" name="83" href="#83">83</a>  
<a class="jxr_linenumber" name="84" href="#84">84</a>              FileUtils.copyFile( srcSha1, sha1File );
<a class="jxr_linenumber" name="85" href="#85">85</a>          }
<a class="jxr_linenumber" name="86" href="#86">86</a>  
<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">if</strong> ( copyMd5 )
<a class="jxr_linenumber" name="88" href="#88">88</a>          {
<a class="jxr_linenumber" name="89" href="#89">89</a>              File srcMd5 = <strong class="jxr_keyword">new</strong> File( srcFile.getAbsolutePath() + <span class="jxr_string">".md5"</span> );
<a class="jxr_linenumber" name="90" href="#90">90</a>              File md5File = <strong class="jxr_keyword">new</strong> File( jarFile.getAbsolutePath() + <span class="jxr_string">".md5"</span> );
<a class="jxr_linenumber" name="91" href="#91">91</a>  
<a class="jxr_linenumber" name="92" href="#92">92</a>              FileUtils.copyFile( srcMd5, md5File );
<a class="jxr_linenumber" name="93" href="#93">93</a>          }
<a class="jxr_linenumber" name="94" href="#94">94</a>  
<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">return</strong> jarFile;
<a class="jxr_linenumber" name="96" href="#96">96</a>      }
<a class="jxr_linenumber" name="97" href="#97">97</a>  
<a class="jxr_linenumber" name="98" href="#98">98</a>      @Test
<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCalculateChecksumMd5()
<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="101" href="#101">101</a>     {
<a class="jxr_linenumber" name="102" href="#102">102</a>         File testfile = getTestResource( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="103" href="#103">103</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testfile );
<a class="jxr_linenumber" name="104" href="#104">104</a>         String expectedChecksum = <span class="jxr_string">"f42047fe2e177ac04d0df7aa44d408be"</span>;
<a class="jxr_linenumber" name="105" href="#105">105</a>         String actualChecksum = checksummedFile.calculateChecksum( ChecksumAlgorithm.MD5 );
<a class="jxr_linenumber" name="106" href="#106">106</a>         assertEquals( expectedChecksum, actualChecksum );
<a class="jxr_linenumber" name="107" href="#107">107</a>     }
<a class="jxr_linenumber" name="108" href="#108">108</a> 
<a class="jxr_linenumber" name="109" href="#109">109</a>     @Test
<a class="jxr_linenumber" name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCalculateChecksumSha1()
<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="112" href="#112">112</a>     {
<a class="jxr_linenumber" name="113" href="#113">113</a>         File testfile = getTestResource( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="114" href="#114">114</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testfile );
<a class="jxr_linenumber" name="115" href="#115">115</a>         String expectedChecksum = <span class="jxr_string">"2bb14b388973351b0a4dfe11d171965f59cc61a1"</span>;
<a class="jxr_linenumber" name="116" href="#116">116</a>         String actualChecksum = checksummedFile.calculateChecksum( ChecksumAlgorithm.SHA1 );
<a class="jxr_linenumber" name="117" href="#117">117</a>         assertEquals( expectedChecksum, actualChecksum );
<a class="jxr_linenumber" name="118" href="#118">118</a>     }
<a class="jxr_linenumber" name="119" href="#119">119</a> 
<a class="jxr_linenumber" name="120" href="#120">120</a>     @Test
<a class="jxr_linenumber" name="121" href="#121">121</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateChecksum()
<a class="jxr_linenumber" name="122" href="#122">122</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="123" href="#123">123</a>     {
<a class="jxr_linenumber" name="124" href="#124">124</a>         File testableJar = createTestableJar( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="125" href="#125">125</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testableJar );
<a class="jxr_linenumber" name="126" href="#126">126</a>         checksummedFile.createChecksum( ChecksumAlgorithm.SHA1 );
<a class="jxr_linenumber" name="127" href="#127">127</a>         File hashFile = checksummedFile.getChecksumFile( ChecksumAlgorithm.SHA1 );
<a class="jxr_linenumber" name="128" href="#128">128</a>         assertTrue( <span class="jxr_string">"ChecksumAlgorithm file should exist."</span>, hashFile.exists() );
<a class="jxr_linenumber" name="129" href="#129">129</a>         String hashContents = FileUtils.readFileToString( hashFile );
<a class="jxr_linenumber" name="130" href="#130">130</a>         hashContents = StringUtils.trim( hashContents );
<a class="jxr_linenumber" name="131" href="#131">131</a>         assertEquals( <span class="jxr_string">"2bb14b388973351b0a4dfe11d171965f59cc61a1  redback-authz-open.jar"</span>, hashContents );
<a class="jxr_linenumber" name="132" href="#132">132</a>     }
<a class="jxr_linenumber" name="133" href="#133">133</a> 
<a class="jxr_linenumber" name="134" href="#134">134</a>     @Test
<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testFixChecksum()
<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="137" href="#137">137</a>     {
<a class="jxr_linenumber" name="138" href="#138">138</a>         File jarFile = createTestableJar( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="139" href="#139">139</a>         File sha1File = <strong class="jxr_keyword">new</strong> File( jarFile.getAbsolutePath() + <span class="jxr_string">".sha1"</span> );
<a class="jxr_linenumber" name="140" href="#140">140</a> 
<a class="jxr_linenumber" name="141" href="#141">141</a>         <em class="jxr_comment">// A typical scenario seen in the wild.</em>
<a class="jxr_linenumber" name="142" href="#142">142</a>         FileUtils.writeStringToFile( sha1File, <span class="jxr_string">"sha1sum: redback-authz-open.jar: No such file or directory"</span> );
<a class="jxr_linenumber" name="143" href="#143">143</a> 
<a class="jxr_linenumber" name="144" href="#144">144</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( jarFile );
<a class="jxr_linenumber" name="145" href="#145">145</a>         assertFalse( <span class="jxr_string">"ChecksummedFile.isValid(SHA1) == false"</span>,
<a class="jxr_linenumber" name="146" href="#146">146</a>                      checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) );
<a class="jxr_linenumber" name="147" href="#147">147</a> 
<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">boolean</strong> fixed = checksummedFile.fixChecksums( <strong class="jxr_keyword">new</strong> ChecksumAlgorithm[]{ ChecksumAlgorithm.SHA1 } );
<a class="jxr_linenumber" name="149" href="#149">149</a>         assertTrue( <span class="jxr_string">"ChecksummedFile.fixChecksums() == true"</span>, fixed );
<a class="jxr_linenumber" name="150" href="#150">150</a> 
<a class="jxr_linenumber" name="151" href="#151">151</a>         assertTrue( <span class="jxr_string">"ChecksummedFile.isValid(SHA1) == true"</span>,
<a class="jxr_linenumber" name="152" href="#152">152</a>                     checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) );
<a class="jxr_linenumber" name="153" href="#153">153</a>     }
<a class="jxr_linenumber" name="154" href="#154">154</a> 
<a class="jxr_linenumber" name="155" href="#155">155</a>     @Test
<a class="jxr_linenumber" name="156" href="#156">156</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumFile()
<a class="jxr_linenumber" name="157" href="#157">157</a>     {
<a class="jxr_linenumber" name="158" href="#158">158</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"test.jar"</span> ) );
<a class="jxr_linenumber" name="159" href="#159">159</a>         assertEquals( <span class="jxr_string">"test.jar.sha1"</span>, checksummedFile.getChecksumFile( ChecksumAlgorithm.SHA1 ).getName() );
<a class="jxr_linenumber" name="160" href="#160">160</a>     }
<a class="jxr_linenumber" name="161" href="#161">161</a> 
<a class="jxr_linenumber" name="162" href="#162">162</a>     @Test
<a class="jxr_linenumber" name="163" href="#163">163</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsValidChecksum()
<a class="jxr_linenumber" name="164" href="#164">164</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="165" href="#165">165</a>     {
<a class="jxr_linenumber" name="166" href="#166">166</a>         File jarFile = createTestableJar( <span class="jxr_string">"examples/redback-authz-open.jar"</span>, <strong class="jxr_keyword">true</strong>, false );
<a class="jxr_linenumber" name="167" href="#167">167</a> 
<a class="jxr_linenumber" name="168" href="#168">168</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( jarFile );
<a class="jxr_linenumber" name="169" href="#169">169</a>         assertTrue( <span class="jxr_string">"ChecksummedFile.isValid(SHA1)"</span>, checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) );
<a class="jxr_linenumber" name="170" href="#170">170</a>     }
<a class="jxr_linenumber" name="171" href="#171">171</a> 
<a class="jxr_linenumber" name="172" href="#172">172</a>     @Test
<a class="jxr_linenumber" name="173" href="#173">173</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsValidChecksumInvalidSha1Format()
<a class="jxr_linenumber" name="174" href="#174">174</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="175" href="#175">175</a>     {
<a class="jxr_linenumber" name="176" href="#176">176</a>         File jarFile = createTestableJar( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="177" href="#177">177</a>         File sha1File = <strong class="jxr_keyword">new</strong> File( jarFile.getAbsolutePath() + <span class="jxr_string">".sha1"</span> );
<a class="jxr_linenumber" name="178" href="#178">178</a> 
<a class="jxr_linenumber" name="179" href="#179">179</a>         <em class="jxr_comment">// A typical scenario seen in the wild.</em>
<a class="jxr_linenumber" name="180" href="#180">180</a>         FileUtils.writeStringToFile( sha1File, <span class="jxr_string">"sha1sum: redback-authz-open.jar: No such file or directory"</span> );
<a class="jxr_linenumber" name="181" href="#181">181</a> 
<a class="jxr_linenumber" name="182" href="#182">182</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( jarFile );
<a class="jxr_linenumber" name="183" href="#183">183</a>         assertFalse( <span class="jxr_string">"ChecksummedFile.isValid(SHA1)"</span>, checksummedFile.isValidChecksum( ChecksumAlgorithm.SHA1 ) );
<a class="jxr_linenumber" name="184" href="#184">184</a> 
<a class="jxr_linenumber" name="185" href="#185">185</a>     }
<a class="jxr_linenumber" name="186" href="#186">186</a> 
<a class="jxr_linenumber" name="187" href="#187">187</a>     @Test
<a class="jxr_linenumber" name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsValidChecksumNoChecksumFiles()
<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="190" href="#190">190</a>     {
<a class="jxr_linenumber" name="191" href="#191">191</a>         File jarFile = createTestableJar( <span class="jxr_string">"examples/redback-authz-open.jar"</span>, false, false );
<a class="jxr_linenumber" name="192" href="#192">192</a> 
<a class="jxr_linenumber" name="193" href="#193">193</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( jarFile );
<a class="jxr_linenumber" name="194" href="#194">194</a>         assertFalse( <span class="jxr_string">"ChecksummedFile.isValid(SHA1,MD5)"</span>, checksummedFile.isValidChecksums(
<a class="jxr_linenumber" name="195" href="#195">195</a>             <strong class="jxr_keyword">new</strong> ChecksumAlgorithm[]{ ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 } ) );
<a class="jxr_linenumber" name="196" href="#196">196</a> 
<a class="jxr_linenumber" name="197" href="#197">197</a>     }
<a class="jxr_linenumber" name="198" href="#198">198</a> 
<a class="jxr_linenumber" name="199" href="#199">199</a>     @Test
<a class="jxr_linenumber" name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsValidChecksumSha1AndMd5()
<a class="jxr_linenumber" name="201" href="#201">201</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="202" href="#202">202</a>     {
<a class="jxr_linenumber" name="203" href="#203">203</a>         File jarFile = createTestableJar( <span class="jxr_string">"examples/redback-authz-open.jar"</span>, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="204" href="#204">204</a> 
<a class="jxr_linenumber" name="205" href="#205">205</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( jarFile );
<a class="jxr_linenumber" name="206" href="#206">206</a>         assertTrue( <span class="jxr_string">"ChecksummedFile.isValid(SHA1,MD5)"</span>, checksummedFile.isValidChecksums(
<a class="jxr_linenumber" name="207" href="#207">207</a>             <strong class="jxr_keyword">new</strong> ChecksumAlgorithm[]{ ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 } ) );
<a class="jxr_linenumber" name="208" href="#208">208</a>     }
<a class="jxr_linenumber" name="209" href="#209">209</a> 
<a class="jxr_linenumber" name="210" href="#210">210</a>     @Test
<a class="jxr_linenumber" name="211" href="#211">211</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsValidChecksumSha1NoMd5()
<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="213" href="#213">213</a>     {
<a class="jxr_linenumber" name="214" href="#214">214</a>         File jarFile = createTestableJar( <span class="jxr_string">"examples/redback-authz-open.jar"</span>, <strong class="jxr_keyword">true</strong>, false );
<a class="jxr_linenumber" name="215" href="#215">215</a> 
<a class="jxr_linenumber" name="216" href="#216">216</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( jarFile );
<a class="jxr_linenumber" name="217" href="#217">217</a>         assertTrue( <span class="jxr_string">"ChecksummedFile.isValid(SHA1)"</span>, checksummedFile.isValidChecksums(
<a class="jxr_linenumber" name="218" href="#218">218</a>             <strong class="jxr_keyword">new</strong> ChecksumAlgorithm[]{ ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 } ) );
<a class="jxr_linenumber" name="219" href="#219">219</a> 
<a class="jxr_linenumber" name="220" href="#220">220</a>     }
<a class="jxr_linenumber" name="221" href="#221">221</a> 
<a class="jxr_linenumber" name="222" href="#222">222</a>     @Test
<a class="jxr_linenumber" name="223" href="#223">223</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testParseChecksum()
<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="225" href="#225">225</a>     {
<a class="jxr_linenumber" name="226" href="#226">226</a>         String expected = SERVLETAPI_SHA1
<a class="jxr_linenumber" name="227" href="#227">227</a>             + <span class="jxr_string">"  /home/projects/maven/repository-staging/to-ibiblio/maven2/servletapi/servletapi/2.4/servletapi-2.4.pom"</span>;
<a class="jxr_linenumber" name="228" href="#228">228</a> 
<a class="jxr_linenumber" name="229" href="#229">229</a>         File testfile = getTestResource( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="230" href="#230">230</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testfile );
<a class="jxr_linenumber" name="231" href="#231">231</a>         String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1,
<a class="jxr_linenumber" name="232" href="#232">232</a>                                                   <span class="jxr_string">"servletapi/servletapi/2.4/servletapi-2.4.pom"</span> );
<a class="jxr_linenumber" name="233" href="#233">233</a>         assertEquals( <span class="jxr_string">"Checksum doesn't match"</span>, SERVLETAPI_SHA1, s );
<a class="jxr_linenumber" name="234" href="#234">234</a> 
<a class="jxr_linenumber" name="235" href="#235">235</a>     }
<a class="jxr_linenumber" name="236" href="#236">236</a> 
<a class="jxr_linenumber" name="237" href="#237">237</a>     @Test
<a class="jxr_linenumber" name="238" href="#238">238</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testParseChecksumAltDash1()
<a class="jxr_linenumber" name="239" href="#239">239</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="240" href="#240">240</a>     {
<a class="jxr_linenumber" name="241" href="#241">241</a>         String expected = SERVLETAPI_SHA1 + <span class="jxr_string">"  -"</span>;
<a class="jxr_linenumber" name="242" href="#242">242</a>         File testfile = getTestResource( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="243" href="#243">243</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testfile );
<a class="jxr_linenumber" name="244" href="#244">244</a>         String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1,
<a class="jxr_linenumber" name="245" href="#245">245</a>                                                   <span class="jxr_string">"servletapi/servletapi/2.4/servletapi-2.4.pom"</span> );
<a class="jxr_linenumber" name="246" href="#246">246</a>         assertEquals( <span class="jxr_string">"Checksum doesn't match"</span>, SERVLETAPI_SHA1, s );
<a class="jxr_linenumber" name="247" href="#247">247</a>     }
<a class="jxr_linenumber" name="248" href="#248">248</a> 
<a class="jxr_linenumber" name="249" href="#249">249</a>     @Test
<a class="jxr_linenumber" name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testParseChecksumAltDash2()
<a class="jxr_linenumber" name="251" href="#251">251</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="252" href="#252">252</a>     {
<a class="jxr_linenumber" name="253" href="#253">253</a>         String expected = <span class="jxr_string">"SHA1(-)="</span> + SERVLETAPI_SHA1;
<a class="jxr_linenumber" name="254" href="#254">254</a>         File testfile = getTestResource( <span class="jxr_string">"examples/redback-authz-open.jar"</span> );
<a class="jxr_linenumber" name="255" href="#255">255</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testfile );
<a class="jxr_linenumber" name="256" href="#256">256</a>         String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1,
<a class="jxr_linenumber" name="257" href="#257">257</a>                                                   <span class="jxr_string">"servletapi/servletapi/2.4/servletapi-2.4.pom"</span> );
<a class="jxr_linenumber" name="258" href="#258">258</a>         assertEquals( <span class="jxr_string">"Checksum doesn't match"</span>, SERVLETAPI_SHA1, s );
<a class="jxr_linenumber" name="259" href="#259">259</a>     }
<a class="jxr_linenumber" name="260" href="#260">260</a> 
<a class="jxr_linenumber" name="261" href="#261">261</a>     @Test
<a class="jxr_linenumber" name="262" href="#262">262</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoteMetadataChecksumFilePathSha1()
<a class="jxr_linenumber" name="263" href="#263">263</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="264" href="#264">264</a>     {
<a class="jxr_linenumber" name="265" href="#265">265</a>         String expected = REMOTE_METADATA_SHA1 + <span class="jxr_string">"  /home/test/repository/examples/metadata/maven-metadata.xml"</span>;
<a class="jxr_linenumber" name="266" href="#266">266</a>         File testfile = getTestResource( <span class="jxr_string">"examples/metadata/maven-metadata-remote.xml"</span> );
<a class="jxr_linenumber" name="267" href="#267">267</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testfile );
<a class="jxr_linenumber" name="268" href="#268">268</a> 
<a class="jxr_linenumber" name="269" href="#269">269</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="270" href="#270">270</a>         {
<a class="jxr_linenumber" name="271" href="#271">271</a>             String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, <span class="jxr_string">"maven-metadata-remote.xml"</span> );
<a class="jxr_linenumber" name="272" href="#272">272</a>             assertEquals( <span class="jxr_string">"Checksum doesn't match"</span>, REMOTE_METADATA_SHA1, s );
<a class="jxr_linenumber" name="273" href="#273">273</a>         }
<a class="jxr_linenumber" name="274" href="#274">274</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
<a class="jxr_linenumber" name="275" href="#275">275</a>         {
<a class="jxr_linenumber" name="276" href="#276">276</a>             e.printStackTrace();
<a class="jxr_linenumber" name="277" href="#277">277</a>             fail( <span class="jxr_string">"IOException should not occur."</span> );
<a class="jxr_linenumber" name="278" href="#278">278</a>         }
<a class="jxr_linenumber" name="279" href="#279">279</a>     }
<a class="jxr_linenumber" name="280" href="#280">280</a> 
<a class="jxr_linenumber" name="281" href="#281">281</a>     @Test
<a class="jxr_linenumber" name="282" href="#282">282</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoteMetadataChecksumFilePathMd5()
<a class="jxr_linenumber" name="283" href="#283">283</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="284" href="#284">284</a>     {
<a class="jxr_linenumber" name="285" href="#285">285</a>         String expected = REMOTE_METADATA_MD5 + <span class="jxr_string">"  ./examples/metadata/maven-metadata.xml"</span>;
<a class="jxr_linenumber" name="286" href="#286">286</a>         File testfile = getTestResource( <span class="jxr_string">"examples/metadata/maven-metadata-remote.xml"</span> );
<a class="jxr_linenumber" name="287" href="#287">287</a>         ChecksummedFile checksummedFile = <strong class="jxr_keyword">new</strong> ChecksummedFile( testfile );
<a class="jxr_linenumber" name="288" href="#288">288</a> 
<a class="jxr_linenumber" name="289" href="#289">289</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="290" href="#290">290</a>         {
<a class="jxr_linenumber" name="291" href="#291">291</a>             String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.MD5, <span class="jxr_string">"maven-metadata-remote.xml"</span> );
<a class="jxr_linenumber" name="292" href="#292">292</a>             assertEquals( <span class="jxr_string">"Checksum doesn't match"</span>, REMOTE_METADATA_MD5, s );
<a class="jxr_linenumber" name="293" href="#293">293</a>         }
<a class="jxr_linenumber" name="294" href="#294">294</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
<a class="jxr_linenumber" name="295" href="#295">295</a>         {
<a class="jxr_linenumber" name="296" href="#296">296</a>             e.printStackTrace();
<a class="jxr_linenumber" name="297" href="#297">297</a>             fail( <span class="jxr_string">"IOException should not occur."</span> );
<a class="jxr_linenumber" name="298" href="#298">298</a>         }
<a class="jxr_linenumber" name="299" href="#299">299</a>     }
<a class="jxr_linenumber" name="300" href="#300">300</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
