<!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>ChecksumTransferTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../testapidocs/org/apache/archiva/proxy/ChecksumTransferTest.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.proxy;
<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.archiva.model.ArtifactReference;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.CachedFailuresPolicy;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.ChecksumPolicy;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.ReleasesPolicy;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.SnapshotsPolicy;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ResourceDoesNotExistException;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="30" href="#30">30</a>  
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="32" href="#32">32</a>  
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNull;
<a class="jxr_linenumber" name="35" href="#35">35</a>  
<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * ChecksumTransferTest</em>
<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> *</em>
<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>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/archiva/proxy/ChecksumTransferTest.html">ChecksumTransferTest</a>
<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/archiva/proxy/AbstractProxyTestCase.html">AbstractProxyTestCase</a>
<a class="jxr_linenumber" name="43" href="#43">43</a>  {
<a class="jxr_linenumber" name="44" href="#44">44</a>      @Test
<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumWhenConnectorIsDisabled()
<a class="jxr_linenumber" name="46" href="#46">46</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="47" href="#47">47</a>      {
<a class="jxr_linenumber" name="48" href="#48">48</a>          String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar"</span>;
<a class="jxr_linenumber" name="49" href="#49">49</a>          setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="50" href="#50">50</a>  
<a class="jxr_linenumber" name="51" href="#51">51</a>          File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="52" href="#52">52</a>          ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="53" href="#53">53</a>  
<a class="jxr_linenumber" name="54" href="#54">54</a>          FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="55" href="#55">55</a>          assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="56" href="#56">56</a>  
<a class="jxr_linenumber" name="57" href="#57">57</a>          <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="58" href="#58">58</a>          saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="59" href="#59">59</a>                         SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="60" href="#60">60</a>  
<a class="jxr_linenumber" name="61" href="#61">61</a>          File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="62" href="#62">62</a>  
<a class="jxr_linenumber" name="63" href="#63">63</a>          assertNull( downloadedFile );
<a class="jxr_linenumber" name="64" href="#64">64</a>      }
<a class="jxr_linenumber" name="65" href="#65">65</a>  
<a class="jxr_linenumber" name="66" href="#66">66</a>      @Test
<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBothCorrect()
<a class="jxr_linenumber" name="68" href="#68">68</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="69" href="#69">69</a>      {
<a class="jxr_linenumber" name="70" href="#70">70</a>          String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar"</span>;
<a class="jxr_linenumber" name="71" href="#71">71</a>          setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="72" href="#72">72</a>  
<a class="jxr_linenumber" name="73" href="#73">73</a>          File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="74" href="#74">74</a>          ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="75" href="#75">75</a>  
<a class="jxr_linenumber" name="76" href="#76">76</a>          FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="77" href="#77">77</a>          assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="78" href="#78">78</a>  
<a class="jxr_linenumber" name="79" href="#79">79</a>          <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="80" href="#80">80</a>          saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="81" href="#81">81</a>                         SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="82" href="#82">82</a>  
<a class="jxr_linenumber" name="83" href="#83">83</a>          File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="84" href="#84">84</a>  
<a class="jxr_linenumber" name="85" href="#85">85</a>          File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="86" href="#86">86</a>          assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="87" href="#87">87</a>          assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="88" href="#88">88</a>          assertChecksums( expectedFile, <span class="jxr_string">"066d76e459f7782c312c31e8a11b3c0f1e3e43a7 *get-checksum-both-right-1.0.jar"</span>,
<a class="jxr_linenumber" name="89" href="#89">89</a>                           <span class="jxr_string">"e58f30c6a150a2e843552438d18e15cb *get-checksum-both-right-1.0.jar"</span> );
<a class="jxr_linenumber" name="90" href="#90">90</a>      }
<a class="jxr_linenumber" name="91" href="#91">91</a>  
<a class="jxr_linenumber" name="92" href="#92">92</a>      @Test
<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1NoMd5()
<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="95" href="#95">95</a>      {
<a class="jxr_linenumber" name="96" href="#96">96</a>          String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="97" href="#97">97</a>          setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="98" href="#98">98</a>  
<a class="jxr_linenumber" name="99" href="#99">99</a>          File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="100" href="#100">100</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="101" href="#101">101</a> 
<a class="jxr_linenumber" name="102" href="#102">102</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="103" href="#103">103</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="104" href="#104">104</a> 
<a class="jxr_linenumber" name="105" href="#105">105</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="106" href="#106">106</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="107" href="#107">107</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="108" href="#108">108</a> 
<a class="jxr_linenumber" name="109" href="#109">109</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="110" href="#110">110</a> 
<a class="jxr_linenumber" name="111" href="#111">111</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="112" href="#112">112</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="113" href="#113">113</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="114" href="#114">114</a>         assertChecksums( expectedFile, <span class="jxr_string">"748a3a013bf5eacf2bbb40a2ac7d37889b728837 *get-checksum-sha1-only-1.0.jar"</span>,
<a class="jxr_linenumber" name="115" href="#115">115</a>                          <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="116" href="#116">116</a>     }
<a class="jxr_linenumber" name="117" href="#117">117</a> 
<a class="jxr_linenumber" name="118" href="#118">118</a>     @Test
<a class="jxr_linenumber" name="119" href="#119">119</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNoSha1CorrectMd5()
<a class="jxr_linenumber" name="120" href="#120">120</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="121" href="#121">121</a>     {
<a class="jxr_linenumber" name="122" href="#122">122</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="123" href="#123">123</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="124" href="#124">124</a> 
<a class="jxr_linenumber" name="125" href="#125">125</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="126" href="#126">126</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="127" href="#127">127</a> 
<a class="jxr_linenumber" name="128" href="#128">128</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="129" href="#129">129</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="130" href="#130">130</a> 
<a class="jxr_linenumber" name="131" href="#131">131</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="132" href="#132">132</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="133" href="#133">133</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="134" href="#134">134</a> 
<a class="jxr_linenumber" name="135" href="#135">135</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="136" href="#136">136</a> 
<a class="jxr_linenumber" name="137" href="#137">137</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="138" href="#138">138</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="139" href="#139">139</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="140" href="#140">140</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar"</span> );
<a class="jxr_linenumber" name="141" href="#141">141</a>     }
<a class="jxr_linenumber" name="142" href="#142">142</a> 
<a class="jxr_linenumber" name="143" href="#143">143</a>     @Test
<a class="jxr_linenumber" name="144" href="#144">144</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithNoChecksumsUsingIgnoredSetting()
<a class="jxr_linenumber" name="145" href="#145">145</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="146" href="#146">146</a>     {
<a class="jxr_linenumber" name="147" href="#147">147</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"</span>;
<a class="jxr_linenumber" name="148" href="#148">148</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="149" href="#149">149</a> 
<a class="jxr_linenumber" name="150" href="#150">150</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="151" href="#151">151</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="152" href="#152">152</a> 
<a class="jxr_linenumber" name="153" href="#153">153</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="154" href="#154">154</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="155" href="#155">155</a> 
<a class="jxr_linenumber" name="156" href="#156">156</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="157" href="#157">157</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="158" href="#158">158</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="159" href="#159">159</a> 
<a class="jxr_linenumber" name="160" href="#160">160</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="161" href="#161">161</a> 
<a class="jxr_linenumber" name="162" href="#162">162</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="163" href="#163">163</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="164" href="#164">164</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="165" href="#165">165</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="166" href="#166">166</a>     }
<a class="jxr_linenumber" name="167" href="#167">167</a> 
<a class="jxr_linenumber" name="168" href="#168">168</a>     @Test
<a class="jxr_linenumber" name="169" href="#169">169</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBadSha1BadMd5IgnoredSetting()
<a class="jxr_linenumber" name="170" href="#170">170</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="171" href="#171">171</a>     {
<a class="jxr_linenumber" name="172" href="#172">172</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"</span>;
<a class="jxr_linenumber" name="173" href="#173">173</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="174" href="#174">174</a> 
<a class="jxr_linenumber" name="175" href="#175">175</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="176" href="#176">176</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="177" href="#177">177</a> 
<a class="jxr_linenumber" name="178" href="#178">178</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="179" href="#179">179</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="180" href="#180">180</a> 
<a class="jxr_linenumber" name="181" href="#181">181</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="182" href="#182">182</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="183" href="#183">183</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="184" href="#184">184</a> 
<a class="jxr_linenumber" name="185" href="#185">185</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="186" href="#186">186</a> 
<a class="jxr_linenumber" name="187" href="#187">187</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="188" href="#188">188</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="189" href="#189">189</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="190" href="#190">190</a>         assertChecksums( expectedFile, <span class="jxr_string">"invalid checksum file"</span>, <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="191" href="#191">191</a>     }
<a class="jxr_linenumber" name="192" href="#192">192</a> 
<a class="jxr_linenumber" name="193" href="#193">193</a>     @Test
<a class="jxr_linenumber" name="194" href="#194">194</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBadSha1BadMd5FailSetting()
<a class="jxr_linenumber" name="195" href="#195">195</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="196" href="#196">196</a>     {
<a class="jxr_linenumber" name="197" href="#197">197</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"</span>;
<a class="jxr_linenumber" name="198" href="#198">198</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="199" href="#199">199</a> 
<a class="jxr_linenumber" name="200" href="#200">200</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="201" href="#201">201</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="202" href="#202">202</a> 
<a class="jxr_linenumber" name="203" href="#203">203</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="204" href="#204">204</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="205" href="#205">205</a> 
<a class="jxr_linenumber" name="206" href="#206">206</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="207" href="#207">207</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="208" href="#208">208</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="209" href="#209">209</a> 
<a class="jxr_linenumber" name="210" href="#210">210</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="211" href="#211">211</a> 
<a class="jxr_linenumber" name="212" href="#212">212</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="213" href="#213">213</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="214" href="#214">214</a>     }
<a class="jxr_linenumber" name="215" href="#215">215</a> 
<a class="jxr_linenumber" name="216" href="#216">216</a>     @Test
<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBadSha1BadMd5FixSetting()
<a class="jxr_linenumber" name="218" href="#218">218</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="219" href="#219">219</a>     {
<a class="jxr_linenumber" name="220" href="#220">220</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"</span>;
<a class="jxr_linenumber" name="221" href="#221">221</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="222" href="#222">222</a> 
<a class="jxr_linenumber" name="223" href="#223">223</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="224" href="#224">224</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="225" href="#225">225</a> 
<a class="jxr_linenumber" name="226" href="#226">226</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="227" href="#227">227</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="228" href="#228">228</a> 
<a class="jxr_linenumber" name="229" href="#229">229</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="230" href="#230">230</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="231" href="#231">231</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="232" href="#232">232</a> 
<a class="jxr_linenumber" name="233" href="#233">233</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="234" href="#234">234</a> 
<a class="jxr_linenumber" name="235" href="#235">235</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="236" href="#236">236</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="237" href="#237">237</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="238" href="#238">238</a>         assertChecksums( expectedFile, <span class="jxr_string">"4ec20a12dc91557330bd0b39d1805be5e329ae56  get-checksum-both-bad-1.0.jar"</span>,
<a class="jxr_linenumber" name="239" href="#239">239</a>                          <span class="jxr_string">"a292491a35925465e693a44809a078b5  get-checksum-both-bad-1.0.jar"</span> );
<a class="jxr_linenumber" name="240" href="#240">240</a>     }
<a class="jxr_linenumber" name="241" href="#241">241</a> 
<a class="jxr_linenumber" name="242" href="#242">242</a>     @Test
<a class="jxr_linenumber" name="243" href="#243">243</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1BadMd5UsingFailSetting()
<a class="jxr_linenumber" name="244" href="#244">244</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="245" href="#245">245</a>     {
<a class="jxr_linenumber" name="246" href="#246">246</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"</span>;
<a class="jxr_linenumber" name="247" href="#247">247</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="248" href="#248">248</a> 
<a class="jxr_linenumber" name="249" href="#249">249</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="250" href="#250">250</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="251" href="#251">251</a> 
<a class="jxr_linenumber" name="252" href="#252">252</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="253" href="#253">253</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="254" href="#254">254</a> 
<a class="jxr_linenumber" name="255" href="#255">255</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="256" href="#256">256</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="257" href="#257">257</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="258" href="#258">258</a> 
<a class="jxr_linenumber" name="259" href="#259">259</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="260" href="#260">260</a> 
<a class="jxr_linenumber" name="261" href="#261">261</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="262" href="#262">262</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="263" href="#263">263</a>     }
<a class="jxr_linenumber" name="264" href="#264">264</a> 
<a class="jxr_linenumber" name="265" href="#265">265</a>     @Test
<a class="jxr_linenumber" name="266" href="#266">266</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNoSha1CorrectMd5UsingFailSetting()
<a class="jxr_linenumber" name="267" href="#267">267</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="268" href="#268">268</a>     {
<a class="jxr_linenumber" name="269" href="#269">269</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="270" href="#270">270</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="271" href="#271">271</a> 
<a class="jxr_linenumber" name="272" href="#272">272</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="273" href="#273">273</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="274" href="#274">274</a> 
<a class="jxr_linenumber" name="275" href="#275">275</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="276" href="#276">276</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="277" href="#277">277</a> 
<a class="jxr_linenumber" name="278" href="#278">278</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="279" href="#279">279</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="280" href="#280">280</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="281" href="#281">281</a> 
<a class="jxr_linenumber" name="282" href="#282">282</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="283" href="#283">283</a> 
<a class="jxr_linenumber" name="284" href="#284">284</a>         <em class="jxr_comment">// This is a success situation. No SHA1 with a Good MD5.</em>
<a class="jxr_linenumber" name="285" href="#285">285</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="286" href="#286">286</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="287" href="#287">287</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="288" href="#288">288</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar"</span> );
<a class="jxr_linenumber" name="289" href="#289">289</a>     }
<a class="jxr_linenumber" name="290" href="#290">290</a> 
<a class="jxr_linenumber" name="291" href="#291">291</a>     @Test
<a class="jxr_linenumber" name="292" href="#292">292</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithNoChecksumsUsingFailSetting()
<a class="jxr_linenumber" name="293" href="#293">293</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="294" href="#294">294</a>     {
<a class="jxr_linenumber" name="295" href="#295">295</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"</span>;
<a class="jxr_linenumber" name="296" href="#296">296</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="297" href="#297">297</a> 
<a class="jxr_linenumber" name="298" href="#298">298</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="299" href="#299">299</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="300" href="#300">300</a> 
<a class="jxr_linenumber" name="301" href="#301">301</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="302" href="#302">302</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="303" href="#303">303</a> 
<a class="jxr_linenumber" name="304" href="#304">304</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="305" href="#305">305</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="306" href="#306">306</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="307" href="#307">307</a> 
<a class="jxr_linenumber" name="308" href="#308">308</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="309" href="#309">309</a> 
<a class="jxr_linenumber" name="310" href="#310">310</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="311" href="#311">311</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="312" href="#312">312</a>     }
<a class="jxr_linenumber" name="313" href="#313">313</a> 
<a class="jxr_linenumber" name="314" href="#314">314</a>     @Test
<a class="jxr_linenumber" name="315" href="#315">315</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1BadMd5UsingIgnoredSetting()
<a class="jxr_linenumber" name="316" href="#316">316</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="317" href="#317">317</a>     {
<a class="jxr_linenumber" name="318" href="#318">318</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"</span>;
<a class="jxr_linenumber" name="319" href="#319">319</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="320" href="#320">320</a> 
<a class="jxr_linenumber" name="321" href="#321">321</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="322" href="#322">322</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="323" href="#323">323</a> 
<a class="jxr_linenumber" name="324" href="#324">324</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="325" href="#325">325</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="326" href="#326">326</a> 
<a class="jxr_linenumber" name="327" href="#327">327</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="328" href="#328">328</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="329" href="#329">329</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="330" href="#330">330</a> 
<a class="jxr_linenumber" name="331" href="#331">331</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="332" href="#332">332</a> 
<a class="jxr_linenumber" name="333" href="#333">333</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="334" href="#334">334</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="335" href="#335">335</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="336" href="#336">336</a>         assertChecksums( expectedFile, <span class="jxr_string">"3dd1a3a57b807d3ef3fbc6013d926c891cbb8670 *get-checksum-sha1-bad-md5-1.0.jar"</span>,
<a class="jxr_linenumber" name="337" href="#337">337</a>                          <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="338" href="#338">338</a>     }
<a class="jxr_linenumber" name="339" href="#339">339</a> 
<a class="jxr_linenumber" name="340" href="#340">340</a>     @Test
<a class="jxr_linenumber" name="341" href="#341">341</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1BadMd5UsingFixSetting()
<a class="jxr_linenumber" name="342" href="#342">342</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="343" href="#343">343</a>     {
<a class="jxr_linenumber" name="344" href="#344">344</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"</span>;
<a class="jxr_linenumber" name="345" href="#345">345</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="346" href="#346">346</a> 
<a class="jxr_linenumber" name="347" href="#347">347</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="348" href="#348">348</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="349" href="#349">349</a> 
<a class="jxr_linenumber" name="350" href="#350">350</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="351" href="#351">351</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="352" href="#352">352</a> 
<a class="jxr_linenumber" name="353" href="#353">353</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="354" href="#354">354</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="355" href="#355">355</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="356" href="#356">356</a> 
<a class="jxr_linenumber" name="357" href="#357">357</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="358" href="#358">358</a> 
<a class="jxr_linenumber" name="359" href="#359">359</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="360" href="#360">360</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="361" href="#361">361</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="362" href="#362">362</a>         assertChecksums( expectedFile, <span class="jxr_string">"3dd1a3a57b807d3ef3fbc6013d926c891cbb8670 *get-checksum-sha1-bad-md5-1.0.jar"</span>,
<a class="jxr_linenumber" name="363" href="#363">363</a>                          <span class="jxr_string">"c35f3b76268b73a4ba617f6f275c49ab  get-checksum-sha1-bad-md5-1.0.jar"</span> );
<a class="jxr_linenumber" name="364" href="#364">364</a>     }
<a class="jxr_linenumber" name="365" href="#365">365</a> 
<a class="jxr_linenumber" name="366" href="#366">366</a>     @Test
<a class="jxr_linenumber" name="367" href="#367">367</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNoSha1CorrectMd5UsingFixSetting()
<a class="jxr_linenumber" name="368" href="#368">368</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="369" href="#369">369</a>     {
<a class="jxr_linenumber" name="370" href="#370">370</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="371" href="#371">371</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="372" href="#372">372</a> 
<a class="jxr_linenumber" name="373" href="#373">373</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="374" href="#374">374</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="375" href="#375">375</a> 
<a class="jxr_linenumber" name="376" href="#376">376</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="377" href="#377">377</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="378" href="#378">378</a> 
<a class="jxr_linenumber" name="379" href="#379">379</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="380" href="#380">380</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="381" href="#381">381</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="382" href="#382">382</a> 
<a class="jxr_linenumber" name="383" href="#383">383</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="384" href="#384">384</a> 
<a class="jxr_linenumber" name="385" href="#385">385</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="386" href="#386">386</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="387" href="#387">387</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="388" href="#388">388</a>         assertChecksums( expectedFile, <span class="jxr_string">"71f7dc3f72053a3f2d9fdd6fef9db055ef957ffb  get-checksum-md5-only-1.0.jar"</span>,
<a class="jxr_linenumber" name="389" href="#389">389</a>                          <span class="jxr_string">"f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar"</span> );
<a class="jxr_linenumber" name="390" href="#390">390</a>     }
<a class="jxr_linenumber" name="391" href="#391">391</a> 
<a class="jxr_linenumber" name="392" href="#392">392</a>     @Test
<a class="jxr_linenumber" name="393" href="#393">393</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithNoChecksumsUsingFixSetting()
<a class="jxr_linenumber" name="394" href="#394">394</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="395" href="#395">395</a>     {
<a class="jxr_linenumber" name="396" href="#396">396</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"</span>;
<a class="jxr_linenumber" name="397" href="#397">397</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="398" href="#398">398</a> 
<a class="jxr_linenumber" name="399" href="#399">399</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="400" href="#400">400</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="401" href="#401">401</a> 
<a class="jxr_linenumber" name="402" href="#402">402</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="403" href="#403">403</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="404" href="#404">404</a> 
<a class="jxr_linenumber" name="405" href="#405">405</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="406" href="#406">406</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="407" href="#407">407</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="408" href="#408">408</a> 
<a class="jxr_linenumber" name="409" href="#409">409</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="410" href="#410">410</a> 
<a class="jxr_linenumber" name="411" href="#411">411</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="412" href="#412">412</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="413" href="#413">413</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="414" href="#414">414</a>         assertChecksums( expectedFile, <span class="jxr_string">"1f12821c5e43e1a0b76b9564a6ddb0548ccb9486  get-default-layout-1.0.jar"</span>,
<a class="jxr_linenumber" name="415" href="#415">415</a>                          <span class="jxr_string">"3f7341545f21226b6f49a3c2704cb9be  get-default-layout-1.0.jar"</span> );
<a class="jxr_linenumber" name="416" href="#416">416</a>     }
<a class="jxr_linenumber" name="417" href="#417">417</a> 
<a class="jxr_linenumber" name="418" href="#418">418</a>     @Test
<a class="jxr_linenumber" name="419" href="#419">419</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNotFoundOnRemote()
<a class="jxr_linenumber" name="420" href="#420">420</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="421" href="#421">421</a>     {
<a class="jxr_linenumber" name="422" href="#422">422</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="423" href="#423">423</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="424" href="#424">424</a> 
<a class="jxr_linenumber" name="425" href="#425">425</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="426" href="#426">426</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="427" href="#427">427</a> 
<a class="jxr_linenumber" name="428" href="#428">428</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="429" href="#429">429</a>         assertFalse( expectedFile.getParentFile().exists() );
<a class="jxr_linenumber" name="430" href="#430">430</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="431" href="#431">431</a> 
<a class="jxr_linenumber" name="432" href="#432">432</a>         saveRemoteRepositoryConfig( <span class="jxr_string">"badproxied"</span>, <span class="jxr_string">"Bad Proxied"</span>, <span class="jxr_string">"test://bad.machine.com/repo/"</span>, <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="433" href="#433">433</a> 
<a class="jxr_linenumber" name="434" href="#434">434</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="435" href="#435">435</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"badproxied"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="436" href="#436">436</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="437" href="#437">437</a> 
<a class="jxr_linenumber" name="438" href="#438">438</a>         wagonMock.get( path, <strong class="jxr_keyword">new</strong> File( expectedFile.getAbsolutePath() + <span class="jxr_string">".tmp"</span> ) );
<a class="jxr_linenumber" name="439" href="#439">439</a>         wagonMockControl.setMatcher( customWagonGetMatcher );
<a class="jxr_linenumber" name="440" href="#440">440</a>         wagonMockControl.setVoidCallable();
<a class="jxr_linenumber" name="441" href="#441">441</a>         wagonMock.get( path + <span class="jxr_string">".sha1"</span>, <strong class="jxr_keyword">new</strong> File( expectedFile.getAbsolutePath() + <span class="jxr_string">".sha1.tmp"</span> ) );
<a class="jxr_linenumber" name="442" href="#442">442</a>         wagonMockControl.setMatcher( customWagonGetMatcher );
<a class="jxr_linenumber" name="443" href="#443">443</a>         wagonMockControl.setVoidCallable();
<a class="jxr_linenumber" name="444" href="#444">444</a>         wagonMock.get( path + <span class="jxr_string">".md5"</span>, <strong class="jxr_keyword">new</strong> File( expectedFile.getAbsolutePath() + <span class="jxr_string">".md5.tmp"</span> ) );
<a class="jxr_linenumber" name="445" href="#445">445</a>         wagonMockControl.setMatcher( customWagonGetMatcher );
<a class="jxr_linenumber" name="446" href="#446">446</a>         wagonMockControl.setThrowable( <strong class="jxr_keyword">new</strong> ResourceDoesNotExistException( <span class="jxr_string">"Resource does not exist."</span> ) );
<a class="jxr_linenumber" name="447" href="#447">447</a>         wagonMockControl.replay();
<a class="jxr_linenumber" name="448" href="#448">448</a> 
<a class="jxr_linenumber" name="449" href="#449">449</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="450" href="#450">450</a> 
<a class="jxr_linenumber" name="451" href="#451">451</a>         wagonMockControl.verify();
<a class="jxr_linenumber" name="452" href="#452">452</a> 
<a class="jxr_linenumber" name="453" href="#453">453</a>         <em class="jxr_comment">// Do what the mock doesn't do.</em>
<a class="jxr_linenumber" name="454" href="#454">454</a>         String proxyPath = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path ).getAbsolutePath();
<a class="jxr_linenumber" name="455" href="#455">455</a>         String localPath = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path ).getAbsolutePath();
<a class="jxr_linenumber" name="456" href="#456">456</a>         FileUtils.copyFile( <strong class="jxr_keyword">new</strong> File( proxyPath ), <strong class="jxr_keyword">new</strong> File( localPath ) );
<a class="jxr_linenumber" name="457" href="#457">457</a>         FileUtils.copyFile( <strong class="jxr_keyword">new</strong> File( proxyPath + <span class="jxr_string">".sha1"</span> ), <strong class="jxr_keyword">new</strong> File( localPath + <span class="jxr_string">".sha1"</span> ) );
<a class="jxr_linenumber" name="458" href="#458">458</a> 
<a class="jxr_linenumber" name="459" href="#459">459</a>         <em class="jxr_comment">// Test results.</em>
<a class="jxr_linenumber" name="460" href="#460">460</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="461" href="#461">461</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="462" href="#462">462</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="463" href="#463">463</a>         assertChecksums( expectedFile, <span class="jxr_string">"748a3a013bf5eacf2bbb40a2ac7d37889b728837 *get-checksum-sha1-only-1.0.jar"</span>,
<a class="jxr_linenumber" name="464" href="#464">464</a>                          <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="465" href="#465">465</a>     }
<a class="jxr_linenumber" name="466" href="#466">466</a> 
<a class="jxr_linenumber" name="467" href="#467">467</a>     @Test
<a class="jxr_linenumber" name="468" href="#468">468</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingIgnoredSetting()
<a class="jxr_linenumber" name="469" href="#469">469</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="470" href="#470">470</a>     {
<a class="jxr_linenumber" name="471" href="#471">471</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"</span>;
<a class="jxr_linenumber" name="472" href="#472">472</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="473" href="#473">473</a> 
<a class="jxr_linenumber" name="474" href="#474">474</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="475" href="#475">475</a>         File remoteFile = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="476" href="#476">476</a> 
<a class="jxr_linenumber" name="477" href="#477">477</a>         setManagedOlderThanRemote( expectedFile, remoteFile );
<a class="jxr_linenumber" name="478" href="#478">478</a> 
<a class="jxr_linenumber" name="479" href="#479">479</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="480" href="#480">480</a> 
<a class="jxr_linenumber" name="481" href="#481">481</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="482" href="#482">482</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="483" href="#483">483</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="484" href="#484">484</a> 
<a class="jxr_linenumber" name="485" href="#485">485</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="486" href="#486">486</a> 
<a class="jxr_linenumber" name="487" href="#487">487</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="488" href="#488">488</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="489" href="#489">489</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="490" href="#490">490</a>         <em class="jxr_comment">// There are no hashcodes on the proxy side to download, hence the local ones should remain invalid.</em>
<a class="jxr_linenumber" name="491" href="#491">491</a>         assertChecksums( expectedFile, <span class="jxr_string">"invalid checksum file"</span>, <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="492" href="#492">492</a>     }
<a class="jxr_linenumber" name="493" href="#493">493</a> 
<a class="jxr_linenumber" name="494" href="#494">494</a>     @Test
<a class="jxr_linenumber" name="495" href="#495">495</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingFailSetting()
<a class="jxr_linenumber" name="496" href="#496">496</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="497" href="#497">497</a>     {
<a class="jxr_linenumber" name="498" href="#498">498</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"</span>;
<a class="jxr_linenumber" name="499" href="#499">499</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="500" href="#500">500</a> 
<a class="jxr_linenumber" name="501" href="#501">501</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="502" href="#502">502</a>         File remoteFile = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="503" href="#503">503</a> 
<a class="jxr_linenumber" name="504" href="#504">504</a>         setManagedOlderThanRemote( expectedFile, remoteFile );
<a class="jxr_linenumber" name="505" href="#505">505</a> 
<a class="jxr_linenumber" name="506" href="#506">506</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="507" href="#507">507</a> 
<a class="jxr_linenumber" name="508" href="#508">508</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="509" href="#509">509</a>         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="510" href="#510">510</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="511" href="#511">511</a> 
<a class="jxr_linenumber" name="512" href="#512">512</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="513" href="#513">513</a> 
<a class="jxr_linenumber" name="514" href="#514">514</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="515" href="#515">515</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="516" href="#516">516</a>         <em class="jxr_comment">// There are no hashcodes on the proxy side to download.</em>
<a class="jxr_linenumber" name="517" href="#517">517</a>         <em class="jxr_comment">// The FAIL policy will delete the checksums as bad.</em>
<a class="jxr_linenumber" name="518" href="#518">518</a> 
<a class="jxr_linenumber" name="519" href="#519">519</a>         assertChecksums( expectedFile, <span class="jxr_string">"invalid checksum file"</span>, <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="520" href="#520">520</a>     }
<a class="jxr_linenumber" name="521" href="#521">521</a> 
<a class="jxr_linenumber" name="522" href="#522">522</a>     @Test
<a class="jxr_linenumber" name="523" href="#523">523</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingFixSetting()
<a class="jxr_linenumber" name="524" href="#524">524</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="525" href="#525">525</a>     {
<a class="jxr_linenumber" name="526" href="#526">526</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"</span>;
<a class="jxr_linenumber" name="527" href="#527">527</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="528" href="#528">528</a> 
<a class="jxr_linenumber" name="529" href="#529">529</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="530" href="#530">530</a>         File remoteFile = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="531" href="#531">531</a> 
<a class="jxr_linenumber" name="532" href="#532">532</a>         setManagedOlderThanRemote( expectedFile, remoteFile );
<a class="jxr_linenumber" name="533" href="#533">533</a> 
<a class="jxr_linenumber" name="534" href="#534">534</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="535" href="#535">535</a> 
<a class="jxr_linenumber" name="536" href="#536">536</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="537" href="#537">537</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="538" href="#538">538</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="539" href="#539">539</a> 
<a class="jxr_linenumber" name="540" href="#540">540</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="541" href="#541">541</a> 
<a class="jxr_linenumber" name="542" href="#542">542</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="543" href="#543">543</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="544" href="#544">544</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="545" href="#545">545</a>         assertChecksums( expectedFile, <span class="jxr_string">"96a08dc80a108cba8efd3b20aec91b32a0b2cbd4  get-bad-local-checksum-1.0.jar"</span>,
<a class="jxr_linenumber" name="546" href="#546">546</a>                          <span class="jxr_string">"46fdd6ca55bf1d7a7eb0c858f41e0ccd  get-bad-local-checksum-1.0.jar"</span> );
<a class="jxr_linenumber" name="547" href="#547">547</a>     }
<a class="jxr_linenumber" name="548" href="#548">548</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
