<!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>Maven2RepositoryMetadataResolverTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../testapidocs/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.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.metadata.repository.storage.maven2;
<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> junit.framework.TestCase;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.FileUtil;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaConfiguration;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.Configuration;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ManagedRepositoryConfiguration;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ProxyConnectorConfiguration;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RemoteRepositoryConfiguration;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ArtifactMetadata;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Dependency;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.License;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MailingList;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionMetadata;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.maven2.MavenArtifactFacet;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.filter.AllFilter;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.filter.ExcludesFilter;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.filter.Filter;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.proxy.common.WagonFactory;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.proxy.common.WagonFactoryRequest;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.FileUtils;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.Wagon;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.junit.runner.RunWith;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.springframework.test.context.ContextConfiguration;
<a class="jxr_linenumber" name="50" href="#50">50</a>  
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> javax.inject.Named;
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> java.util.Comparator;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="61" href="#61">61</a>  
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.when;
<a class="jxr_linenumber" name="64" href="#64">64</a>  
<a class="jxr_linenumber" name="65" href="#65">65</a>  @RunWith ( ArchivaSpringJUnit4ClassRunner.<strong class="jxr_keyword">class</strong> )
<a class="jxr_linenumber" name="66" href="#66">66</a>  @ContextConfiguration ( locations = { <span class="jxr_string">"classpath*:/META-INF/spring-context.xml"</span>, <span class="jxr_string">"classpath:/spring-context.xml"</span> } )
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.html">Maven2RepositoryMetadataResolverTest</a>
<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">extends</strong> TestCase
<a class="jxr_linenumber" name="69" href="#69">69</a>  {
<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Filter&lt;String&gt; ALL = <strong class="jxr_keyword">new</strong> AllFilter&lt;String&gt;();
<a class="jxr_linenumber" name="71" href="#71">71</a>  
<a class="jxr_linenumber" name="72" href="#72">72</a>      @Inject
<a class="jxr_linenumber" name="73" href="#73">73</a>      @Named (value = <span class="jxr_string">"repositoryStorage#maven2"</span>)
<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> Maven2RepositoryStorage storage;
<a class="jxr_linenumber" name="75" href="#75">75</a>  
<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_REPO_ID = <span class="jxr_string">"test"</span>;
<a class="jxr_linenumber" name="77" href="#77">77</a>  
<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_REMOTE_REPO_ID = <span class="jxr_string">"central"</span>;
<a class="jxr_linenumber" name="79" href="#79">79</a>  
<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ASF_SCM_CONN_BASE = <span class="jxr_string">"scm:svn:http://svn.apache.org/repos/asf/"</span>;
<a class="jxr_linenumber" name="81" href="#81">81</a>  
<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ASF_SCM_DEV_CONN_BASE = <span class="jxr_string">"scm:svn:https://svn.apache.org/repos/asf/"</span>;
<a class="jxr_linenumber" name="83" href="#83">83</a>  
<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ASF_SCM_VIEWVC_BASE = <span class="jxr_string">"http://svn.apache.org/viewvc/"</span>;
<a class="jxr_linenumber" name="85" href="#85">85</a>  
<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_SCM_CONN_BASE = <span class="jxr_string">"scm:svn:http://svn.example.com/repos/"</span>;
<a class="jxr_linenumber" name="87" href="#87">87</a>  
<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_SCM_DEV_CONN_BASE = <span class="jxr_string">"scm:svn:https://svn.example.com/repos/"</span>;
<a class="jxr_linenumber" name="89" href="#89">89</a>  
<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_SCM_URL_BASE = <span class="jxr_string">"http://svn.example.com/repos/"</span>;
<a class="jxr_linenumber" name="91" href="#91">91</a>  
<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMPTY_MD5 = <span class="jxr_string">"d41d8cd98f00b204e9800998ecf8427e"</span>;
<a class="jxr_linenumber" name="93" href="#93">93</a>  
<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMPTY_SHA1 = <span class="jxr_string">"da39a3ee5e6b4b0d3255bfef95601890afd80709"</span>;
<a class="jxr_linenumber" name="95" href="#95">95</a>  
<a class="jxr_linenumber" name="96" href="#96">96</a>      @Inject
<a class="jxr_linenumber" name="97" href="#97">97</a>      @Named ( value = <span class="jxr_string">"archivaConfiguration#default"</span> )
<a class="jxr_linenumber" name="98" href="#98">98</a>      <strong class="jxr_keyword">protected</strong> ArchivaConfiguration configuration;
<a class="jxr_linenumber" name="99" href="#99">99</a>  
<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">private</strong> WagonFactory wagonFactory;
<a class="jxr_linenumber" name="101" href="#101">101</a> 
<a class="jxr_linenumber" name="102" href="#102">102</a>     ManagedRepositoryConfiguration testRepo;
<a class="jxr_linenumber" name="103" href="#103">103</a> 
<a class="jxr_linenumber" name="104" href="#104">104</a>     Configuration c;
<a class="jxr_linenumber" name="105" href="#105">105</a> 
<a class="jxr_linenumber" name="106" href="#106">106</a>     @Before
<a class="jxr_linenumber" name="107" href="#107">107</a>     @Override
<a class="jxr_linenumber" name="108" href="#108">108</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp()
<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="110" href="#110">110</a>     {
<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">super</strong>.setUp();
<a class="jxr_linenumber" name="112" href="#112">112</a> 
<a class="jxr_linenumber" name="113" href="#113">113</a>         c = <strong class="jxr_keyword">new</strong> Configuration();
<a class="jxr_linenumber" name="114" href="#114">114</a>         testRepo = <strong class="jxr_keyword">new</strong> ManagedRepositoryConfiguration();
<a class="jxr_linenumber" name="115" href="#115">115</a>         testRepo.setId( TEST_REPO_ID );
<a class="jxr_linenumber" name="116" href="#116">116</a>         testRepo.setLocation( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"target/test-repository"</span> ).getAbsolutePath() );
<a class="jxr_linenumber" name="117" href="#117">117</a>         testRepo.setReleases( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="118" href="#118">118</a>         testRepo.setSnapshots( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="119" href="#119">119</a>         c.addManagedRepository( testRepo );
<a class="jxr_linenumber" name="120" href="#120">120</a> 
<a class="jxr_linenumber" name="121" href="#121">121</a>         RemoteRepositoryConfiguration testRemoteRepo = <strong class="jxr_keyword">new</strong> RemoteRepositoryConfiguration();
<a class="jxr_linenumber" name="122" href="#122">122</a>         testRemoteRepo.setId( TEST_REMOTE_REPO_ID );
<a class="jxr_linenumber" name="123" href="#123">123</a>         testRemoteRepo.setLayout( <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="124" href="#124">124</a>         testRemoteRepo.setName( <span class="jxr_string">"Central Repository"</span> );
<a class="jxr_linenumber" name="125" href="#125">125</a>         testRemoteRepo.setUrl( <span class="jxr_string">"http://central.repo.com/maven2"</span> );
<a class="jxr_linenumber" name="126" href="#126">126</a>         testRemoteRepo.setTimeout( 10 );
<a class="jxr_linenumber" name="127" href="#127">127</a>         c.addRemoteRepository( testRemoteRepo );
<a class="jxr_linenumber" name="128" href="#128">128</a> 
<a class="jxr_linenumber" name="129" href="#129">129</a>         ProxyConnectorConfiguration proxyConnector = <strong class="jxr_keyword">new</strong> ProxyConnectorConfiguration();
<a class="jxr_linenumber" name="130" href="#130">130</a>         proxyConnector.setSourceRepoId( TEST_REPO_ID );
<a class="jxr_linenumber" name="131" href="#131">131</a>         proxyConnector.setTargetRepoId( TEST_REMOTE_REPO_ID );
<a class="jxr_linenumber" name="132" href="#132">132</a>         proxyConnector.setDisabled( false );
<a class="jxr_linenumber" name="133" href="#133">133</a>         c.addProxyConnector( proxyConnector );
<a class="jxr_linenumber" name="134" href="#134">134</a> 
<a class="jxr_linenumber" name="135" href="#135">135</a>         configuration.save( c );
<a class="jxr_linenumber" name="136" href="#136">136</a> 
<a class="jxr_linenumber" name="137" href="#137">137</a>         assertTrue( c.getManagedRepositories().get( 0 ).isSnapshots() );
<a class="jxr_linenumber" name="138" href="#138">138</a>         assertTrue( c.getManagedRepositories().get( 0 ).isReleases() );
<a class="jxr_linenumber" name="139" href="#139">139</a> 
<a class="jxr_linenumber" name="140" href="#140">140</a>         wagonFactory = mock( WagonFactory.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="141" href="#141">141</a> 
<a class="jxr_linenumber" name="142" href="#142">142</a>         storage.setWagonFactory( wagonFactory );
<a class="jxr_linenumber" name="143" href="#143">143</a> 
<a class="jxr_linenumber" name="144" href="#144">144</a>         Wagon wagon = <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/archiva/metadata/repository/storage/maven2/MockWagon.html">MockWagon</a>();
<a class="jxr_linenumber" name="145" href="#145">145</a>         when( wagonFactory.getWagon( <strong class="jxr_keyword">new</strong> WagonFactoryRequest().protocol( <span class="jxr_string">"wagon#http"</span> ) ) ).thenReturn( wagon );
<a class="jxr_linenumber" name="146" href="#146">146</a>     }
<a class="jxr_linenumber" name="147" href="#147">147</a> 
<a class="jxr_linenumber" name="148" href="#148">148</a>     @Test
<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testModelWithJdkProfileActivation()
<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="151" href="#151">151</a>     {
<a class="jxr_linenumber" name="152" href="#152">152</a>         ReadMetadataRequest readMetadataRequest =
<a class="jxr_linenumber" name="153" href="#153">153</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest().repositoryId( TEST_REPO_ID ).namespace( <span class="jxr_string">"org.apache.maven"</span> ).projectId(
<a class="jxr_linenumber" name="154" href="#154">154</a>                 <span class="jxr_string">"maven-archiver"</span> ).projectVersion( <span class="jxr_string">"2.4.1"</span> );
<a class="jxr_linenumber" name="155" href="#155">155</a>         ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
<a class="jxr_linenumber" name="156" href="#156">156</a>         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
<a class="jxr_linenumber" name="157" href="#157">157</a>     }
<a class="jxr_linenumber" name="158" href="#158">158</a> 
<a class="jxr_linenumber" name="159" href="#159">159</a>     @Test
<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadata()
<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="162" href="#162">162</a>     {
<a class="jxr_linenumber" name="163" href="#163">163</a>         ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="164" href="#164">164</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, <span class="jxr_string">"archiva-common"</span>, <span class="jxr_string">"1.2.1"</span> ) );
<a class="jxr_linenumber" name="165" href="#165">165</a>         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
<a class="jxr_linenumber" name="166" href="#166">166</a>         assertEquals( <span class="jxr_string">"jar"</span>, facet.getPackaging() );
<a class="jxr_linenumber" name="167" href="#167">167</a>         assertEquals( <span class="jxr_string">"http://archiva.apache.org/ref/1.2.1/archiva-base/archiva-common"</span>, metadata.getUrl() );
<a class="jxr_linenumber" name="168" href="#168">168</a>         assertEquals( <span class="jxr_string">"org.apache.archiva"</span>, facet.getParent().getGroupId() );
<a class="jxr_linenumber" name="169" href="#169">169</a>         assertEquals( <span class="jxr_string">"archiva-base"</span>, facet.getParent().getArtifactId() );
<a class="jxr_linenumber" name="170" href="#170">170</a>         assertEquals( <span class="jxr_string">"1.2.1"</span>, facet.getParent().getVersion() );
<a class="jxr_linenumber" name="171" href="#171">171</a>         assertEquals( <span class="jxr_string">"archiva-common"</span>, facet.getArtifactId() );
<a class="jxr_linenumber" name="172" href="#172">172</a>         assertEquals( <span class="jxr_string">"org.apache.archiva"</span>, facet.getGroupId() );
<a class="jxr_linenumber" name="173" href="#173">173</a>         assertEquals( <span class="jxr_string">"continuum"</span>, metadata.getCiManagement().getSystem() );
<a class="jxr_linenumber" name="174" href="#174">174</a>         assertEquals( <span class="jxr_string">"http://vmbuild.apache.org/continuum"</span>, metadata.getCiManagement().getUrl() );
<a class="jxr_linenumber" name="175" href="#175">175</a>         assertNotNull( metadata.getDescription() );
<a class="jxr_linenumber" name="176" href="#176">176</a>         <em class="jxr_comment">// TODO: this would be better</em>
<a class="jxr_linenumber" name="177" href="#177">177</a> <em class="jxr_comment">//        assertEquals(</em>
<a class="jxr_linenumber" name="178" href="#178">178</a> <em class="jxr_comment">//            "Archiva is an application for managing one or more remote repositories, including administration, artifact handling, browsing and searching.",</em>
<a class="jxr_linenumber" name="179" href="#179">179</a> <em class="jxr_comment">//            metadata.getDescription() );</em>
<a class="jxr_linenumber" name="180" href="#180">180</a>         assertEquals( <span class="jxr_string">"1.2.1"</span>, metadata.getId() );
<a class="jxr_linenumber" name="181" href="#181">181</a>         assertEquals( <span class="jxr_string">"jira"</span>, metadata.getIssueManagement().getSystem() );
<a class="jxr_linenumber" name="182" href="#182">182</a>         assertEquals( <span class="jxr_string">"http://jira.codehaus.org/browse/MRM"</span>, metadata.getIssueManagement().getUrl() );
<a class="jxr_linenumber" name="183" href="#183">183</a>         checkApacheLicense( metadata );
<a class="jxr_linenumber" name="184" href="#184">184</a>         assertEquals( <span class="jxr_string">"Archiva Base :: Common"</span>, metadata.getName() );
<a class="jxr_linenumber" name="185" href="#185">185</a>         String path = <span class="jxr_string">"archiva/tags/archiva-1.2.1/archiva-modules/archiva-base/archiva-common"</span>;
<a class="jxr_linenumber" name="186" href="#186">186</a>         assertEquals( ASF_SCM_CONN_BASE + path, metadata.getScm().getConnection() );
<a class="jxr_linenumber" name="187" href="#187">187</a>         assertEquals( ASF_SCM_DEV_CONN_BASE + path, metadata.getScm().getDeveloperConnection() );
<a class="jxr_linenumber" name="188" href="#188">188</a>         assertEquals( ASF_SCM_VIEWVC_BASE + path, metadata.getScm().getUrl() );
<a class="jxr_linenumber" name="189" href="#189">189</a>         checkOrganizationApache( metadata );
<a class="jxr_linenumber" name="190" href="#190">190</a> 
<a class="jxr_linenumber" name="191" href="#191">191</a>         assertEquals( 4, metadata.getMailingLists().size() );
<a class="jxr_linenumber" name="192" href="#192">192</a>         assertMailingList( <span class="jxr_string">"users"</span>, metadata.getMailingLists().get( 0 ), <span class="jxr_string">"Archiva User List"</span>, <strong class="jxr_keyword">true</strong>,
<a class="jxr_linenumber" name="193" href="#193">193</a>                            <span class="jxr_string">"http://www.nabble.com/archiva-users-f16426.html"</span> );
<a class="jxr_linenumber" name="194" href="#194">194</a>         assertMailingList( <span class="jxr_string">"dev"</span>, metadata.getMailingLists().get( 1 ), <span class="jxr_string">"Archiva Developer List"</span>, <strong class="jxr_keyword">true</strong>,
<a class="jxr_linenumber" name="195" href="#195">195</a>                            <span class="jxr_string">"http://www.nabble.com/archiva-dev-f16427.html"</span> );
<a class="jxr_linenumber" name="196" href="#196">196</a>         assertMailingList( <span class="jxr_string">"commits"</span>, metadata.getMailingLists().get( 2 ), <span class="jxr_string">"Archiva Commits List"</span>, false, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="197" href="#197">197</a>         assertMailingList( <span class="jxr_string">"issues"</span>, metadata.getMailingLists().get( 3 ), <span class="jxr_string">"Archiva Issues List"</span>, false,
<a class="jxr_linenumber" name="198" href="#198">198</a>                            <span class="jxr_string">"http://www.nabble.com/Archiva---Issues-f29617.html"</span> );
<a class="jxr_linenumber" name="199" href="#199">199</a> 
<a class="jxr_linenumber" name="200" href="#200">200</a>         List&lt;Dependency&gt; dependencies = metadata.getDependencies();
<a class="jxr_linenumber" name="201" href="#201">201</a>         assertEquals( 10, dependencies.size() );
<a class="jxr_linenumber" name="202" href="#202">202</a>         assertDependency( dependencies.get( 0 ), <span class="jxr_string">"commons-lang"</span>, <span class="jxr_string">"commons-lang"</span>, <span class="jxr_string">"2.2"</span> );
<a class="jxr_linenumber" name="203" href="#203">203</a>         assertDependency( dependencies.get( 1 ), <span class="jxr_string">"commons-io"</span>, <span class="jxr_string">"commons-io"</span>, <span class="jxr_string">"1.4"</span> );
<a class="jxr_linenumber" name="204" href="#204">204</a>         assertDependency( dependencies.get( 2 ), <span class="jxr_string">"org.slf4j"</span>, <span class="jxr_string">"slf4j-api"</span>, <span class="jxr_string">"1.5.0"</span> );
<a class="jxr_linenumber" name="205" href="#205">205</a>         assertDependency( dependencies.get( 3 ), <span class="jxr_string">"org.codehaus.plexus"</span>, <span class="jxr_string">"plexus-component-api"</span>, <span class="jxr_string">"1.0-alpha-22"</span> );
<a class="jxr_linenumber" name="206" href="#206">206</a>         assertDependency( dependencies.get( 4 ), <span class="jxr_string">"org.codehaus.plexus"</span>, <span class="jxr_string">"plexus-spring"</span>, <span class="jxr_string">"1.2"</span>, <span class="jxr_string">"test"</span> );
<a class="jxr_linenumber" name="207" href="#207">207</a>         assertDependency( dependencies.get( 5 ), <span class="jxr_string">"xalan"</span>, <span class="jxr_string">"xalan"</span>, <span class="jxr_string">"2.7.0"</span> );
<a class="jxr_linenumber" name="208" href="#208">208</a>         assertDependency( dependencies.get( 6 ), <span class="jxr_string">"dom4j"</span>, <span class="jxr_string">"dom4j"</span>, <span class="jxr_string">"1.6.1"</span>, <span class="jxr_string">"test"</span> );
<a class="jxr_linenumber" name="209" href="#209">209</a>         assertDependency( dependencies.get( 7 ), <span class="jxr_string">"junit"</span>, <span class="jxr_string">"junit"</span>, <span class="jxr_string">"3.8.1"</span>, <span class="jxr_string">"test"</span> );
<a class="jxr_linenumber" name="210" href="#210">210</a>         assertDependency( dependencies.get( 8 ), <span class="jxr_string">"easymock"</span>, <span class="jxr_string">"easymock"</span>, <span class="jxr_string">"1.2_Java1.3"</span>, <span class="jxr_string">"test"</span> );
<a class="jxr_linenumber" name="211" href="#211">211</a>         assertDependency( dependencies.get( 9 ), <span class="jxr_string">"easymock"</span>, <span class="jxr_string">"easymockclassextension"</span>, <span class="jxr_string">"1.2"</span>, <span class="jxr_string">"test"</span> );
<a class="jxr_linenumber" name="212" href="#212">212</a>     }
<a class="jxr_linenumber" name="213" href="#213">213</a> 
<a class="jxr_linenumber" name="214" href="#214">214</a>     @Test
<a class="jxr_linenumber" name="215" href="#215">215</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactMetadata()
<a class="jxr_linenumber" name="216" href="#216">216</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="217" href="#217">217</a>     {
<a class="jxr_linenumber" name="218" href="#218">218</a>         Collection&lt;ArtifactMetadata&gt; springArtifacts = storage.readArtifactsMetadata(
<a class="jxr_linenumber" name="219" href="#219">219</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"org.codehaus.plexus"</span>, <span class="jxr_string">"plexus-spring"</span>, <span class="jxr_string">"1.2"</span>, ALL ) );
<a class="jxr_linenumber" name="220" href="#220">220</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> ArrayList&lt;ArtifactMetadata&gt;( springArtifacts );
<a class="jxr_linenumber" name="221" href="#221">221</a>         Collections.sort( artifacts, <strong class="jxr_keyword">new</strong> Comparator&lt;ArtifactMetadata&gt;()
<a class="jxr_linenumber" name="222" href="#222">222</a>         {
<a class="jxr_linenumber" name="223" href="#223">223</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare( ArtifactMetadata o1, ArtifactMetadata o2 )
<a class="jxr_linenumber" name="224" href="#224">224</a>             {
<a class="jxr_linenumber" name="225" href="#225">225</a>                 <strong class="jxr_keyword">return</strong> o1.getId().compareTo( o2.getId() );
<a class="jxr_linenumber" name="226" href="#226">226</a>             }
<a class="jxr_linenumber" name="227" href="#227">227</a>         } );
<a class="jxr_linenumber" name="228" href="#228">228</a> 
<a class="jxr_linenumber" name="229" href="#229">229</a>         assertEquals( 3, artifacts.size() );
<a class="jxr_linenumber" name="230" href="#230">230</a> 
<a class="jxr_linenumber" name="231" href="#231">231</a>         ArtifactMetadata artifactMetadata = artifacts.get( 0 );
<a class="jxr_linenumber" name="232" href="#232">232</a>         assertEquals( <span class="jxr_string">"plexus-spring-1.2-sources.jar"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="233" href="#233">233</a>         MavenArtifactFacet facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="234" href="#234">234</a>         assertEquals( 0, facet.getBuildNumber() );
<a class="jxr_linenumber" name="235" href="#235">235</a>         assertNull( facet.getTimestamp() );
<a class="jxr_linenumber" name="236" href="#236">236</a>         assertEquals( <span class="jxr_string">"sources"</span>, facet.getClassifier() );
<a class="jxr_linenumber" name="237" href="#237">237</a>         assertEquals( <span class="jxr_string">"java-source"</span>, facet.getType() );
<a class="jxr_linenumber" name="238" href="#238">238</a> 
<a class="jxr_linenumber" name="239" href="#239">239</a>         artifactMetadata = artifacts.get( 1 );
<a class="jxr_linenumber" name="240" href="#240">240</a>         assertEquals( <span class="jxr_string">"plexus-spring-1.2.jar"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="241" href="#241">241</a>         facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="242" href="#242">242</a>         assertEquals( 0, facet.getBuildNumber() );
<a class="jxr_linenumber" name="243" href="#243">243</a>         assertNull( facet.getTimestamp() );
<a class="jxr_linenumber" name="244" href="#244">244</a>         assertNull( facet.getClassifier() );
<a class="jxr_linenumber" name="245" href="#245">245</a>         assertEquals( <span class="jxr_string">"jar"</span>, facet.getType() );
<a class="jxr_linenumber" name="246" href="#246">246</a> 
<a class="jxr_linenumber" name="247" href="#247">247</a>         artifactMetadata = artifacts.get( 2 );
<a class="jxr_linenumber" name="248" href="#248">248</a>         assertEquals( <span class="jxr_string">"plexus-spring-1.2.pom"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="249" href="#249">249</a>         facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="250" href="#250">250</a>         assertEquals( 0, facet.getBuildNumber() );
<a class="jxr_linenumber" name="251" href="#251">251</a>         assertNull( facet.getTimestamp() );
<a class="jxr_linenumber" name="252" href="#252">252</a>         assertNull( facet.getClassifier() );
<a class="jxr_linenumber" name="253" href="#253">253</a>         assertEquals( <span class="jxr_string">"pom"</span>, facet.getType() );
<a class="jxr_linenumber" name="254" href="#254">254</a>     }
<a class="jxr_linenumber" name="255" href="#255">255</a> 
<a class="jxr_linenumber" name="256" href="#256">256</a>     @Test
<a class="jxr_linenumber" name="257" href="#257">257</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactMetadataSnapshots()
<a class="jxr_linenumber" name="258" href="#258">258</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="259" href="#259">259</a>     {
<a class="jxr_linenumber" name="260" href="#260">260</a>         Collection&lt;ArtifactMetadata&gt; testArtifacts = storage.readArtifactsMetadata(
<a class="jxr_linenumber" name="261" href="#261">261</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"test-artifact"</span>, <span class="jxr_string">"1.0-SNAPSHOT"</span>, ALL ) );
<a class="jxr_linenumber" name="262" href="#262">262</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> ArrayList&lt;ArtifactMetadata&gt;( testArtifacts );
<a class="jxr_linenumber" name="263" href="#263">263</a>         Collections.sort( artifacts, <strong class="jxr_keyword">new</strong> Comparator&lt;ArtifactMetadata&gt;()
<a class="jxr_linenumber" name="264" href="#264">264</a>         {
<a class="jxr_linenumber" name="265" href="#265">265</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare( ArtifactMetadata o1, ArtifactMetadata o2 )
<a class="jxr_linenumber" name="266" href="#266">266</a>             {
<a class="jxr_linenumber" name="267" href="#267">267</a>                 <strong class="jxr_keyword">return</strong> o1.getId().compareTo( o2.getId() );
<a class="jxr_linenumber" name="268" href="#268">268</a>             }
<a class="jxr_linenumber" name="269" href="#269">269</a>         } );
<a class="jxr_linenumber" name="270" href="#270">270</a> 
<a class="jxr_linenumber" name="271" href="#271">271</a>         assertEquals( 6, artifacts.size() );
<a class="jxr_linenumber" name="272" href="#272">272</a> 
<a class="jxr_linenumber" name="273" href="#273">273</a>         ArtifactMetadata artifactMetadata = artifacts.get( 0 );
<a class="jxr_linenumber" name="274" href="#274">274</a>         assertEquals( <span class="jxr_string">"test-artifact-1.0-20100308.230825-1.jar"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="275" href="#275">275</a>         MavenArtifactFacet facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="276" href="#276">276</a>         assertEquals( 1, facet.getBuildNumber() );
<a class="jxr_linenumber" name="277" href="#277">277</a>         assertEquals( <span class="jxr_string">"20100308.230825"</span>, facet.getTimestamp() );
<a class="jxr_linenumber" name="278" href="#278">278</a>         assertNull( facet.getClassifier() );
<a class="jxr_linenumber" name="279" href="#279">279</a>         assertEquals( <span class="jxr_string">"jar"</span>, facet.getType() );
<a class="jxr_linenumber" name="280" href="#280">280</a> 
<a class="jxr_linenumber" name="281" href="#281">281</a>         artifactMetadata = artifacts.get( 1 );
<a class="jxr_linenumber" name="282" href="#282">282</a>         assertEquals( <span class="jxr_string">"test-artifact-1.0-20100308.230825-1.pom"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="283" href="#283">283</a>         facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="284" href="#284">284</a>         assertEquals( 1, facet.getBuildNumber() );
<a class="jxr_linenumber" name="285" href="#285">285</a>         assertEquals( <span class="jxr_string">"20100308.230825"</span>, facet.getTimestamp() );
<a class="jxr_linenumber" name="286" href="#286">286</a>         assertNull( facet.getClassifier() );
<a class="jxr_linenumber" name="287" href="#287">287</a>         assertEquals( <span class="jxr_string">"pom"</span>, facet.getType() );
<a class="jxr_linenumber" name="288" href="#288">288</a> 
<a class="jxr_linenumber" name="289" href="#289">289</a>         artifactMetadata = artifacts.get( 2 );
<a class="jxr_linenumber" name="290" href="#290">290</a>         assertEquals( <span class="jxr_string">"test-artifact-1.0-20100310.014828-2-javadoc.jar"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="291" href="#291">291</a>         facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="292" href="#292">292</a>         assertEquals( 2, facet.getBuildNumber() );
<a class="jxr_linenumber" name="293" href="#293">293</a>         assertEquals( <span class="jxr_string">"20100310.014828"</span>, facet.getTimestamp() );
<a class="jxr_linenumber" name="294" href="#294">294</a>         assertEquals( <span class="jxr_string">"javadoc"</span>, facet.getClassifier() );
<a class="jxr_linenumber" name="295" href="#295">295</a>         assertEquals( <span class="jxr_string">"javadoc"</span>, facet.getType() );
<a class="jxr_linenumber" name="296" href="#296">296</a> 
<a class="jxr_linenumber" name="297" href="#297">297</a>         artifactMetadata = artifacts.get( 3 );
<a class="jxr_linenumber" name="298" href="#298">298</a>         assertEquals( <span class="jxr_string">"test-artifact-1.0-20100310.014828-2-sources.jar"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="299" href="#299">299</a>         facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="300" href="#300">300</a>         assertEquals( 2, facet.getBuildNumber() );
<a class="jxr_linenumber" name="301" href="#301">301</a>         assertEquals( <span class="jxr_string">"20100310.014828"</span>, facet.getTimestamp() );
<a class="jxr_linenumber" name="302" href="#302">302</a>         assertEquals( <span class="jxr_string">"sources"</span>, facet.getClassifier() );
<a class="jxr_linenumber" name="303" href="#303">303</a>         assertEquals( <span class="jxr_string">"java-source"</span>, facet.getType() );
<a class="jxr_linenumber" name="304" href="#304">304</a> 
<a class="jxr_linenumber" name="305" href="#305">305</a>         artifactMetadata = artifacts.get( 4 );
<a class="jxr_linenumber" name="306" href="#306">306</a>         assertEquals( <span class="jxr_string">"test-artifact-1.0-20100310.014828-2.jar"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="307" href="#307">307</a>         facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="308" href="#308">308</a>         assertEquals( 2, facet.getBuildNumber() );
<a class="jxr_linenumber" name="309" href="#309">309</a>         assertEquals( <span class="jxr_string">"20100310.014828"</span>, facet.getTimestamp() );
<a class="jxr_linenumber" name="310" href="#310">310</a>         assertNull( facet.getClassifier() );
<a class="jxr_linenumber" name="311" href="#311">311</a>         assertEquals( <span class="jxr_string">"jar"</span>, facet.getType() );
<a class="jxr_linenumber" name="312" href="#312">312</a> 
<a class="jxr_linenumber" name="313" href="#313">313</a>         artifactMetadata = artifacts.get( 5 );
<a class="jxr_linenumber" name="314" href="#314">314</a>         assertEquals( <span class="jxr_string">"test-artifact-1.0-20100310.014828-2.pom"</span>, artifactMetadata.getId() );
<a class="jxr_linenumber" name="315" href="#315">315</a>         facet = (MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
<a class="jxr_linenumber" name="316" href="#316">316</a>         assertEquals( 2, facet.getBuildNumber() );
<a class="jxr_linenumber" name="317" href="#317">317</a>         assertEquals( <span class="jxr_string">"20100310.014828"</span>, facet.getTimestamp() );
<a class="jxr_linenumber" name="318" href="#318">318</a>         assertNull( facet.getClassifier() );
<a class="jxr_linenumber" name="319" href="#319">319</a>         assertEquals( <span class="jxr_string">"pom"</span>, facet.getType() );
<a class="jxr_linenumber" name="320" href="#320">320</a>     }
<a class="jxr_linenumber" name="321" href="#321">321</a> 
<a class="jxr_linenumber" name="322" href="#322">322</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> assertDependency( Dependency dependency, String groupId, String artifactId, String version )
<a class="jxr_linenumber" name="323" href="#323">323</a>     {
<a class="jxr_linenumber" name="324" href="#324">324</a>         assertDependency( dependency, groupId, artifactId, version, <span class="jxr_string">"compile"</span> );
<a class="jxr_linenumber" name="325" href="#325">325</a>     }
<a class="jxr_linenumber" name="326" href="#326">326</a> 
<a class="jxr_linenumber" name="327" href="#327">327</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> assertDependency( Dependency dependency, String groupId, String artifactId, String version,
<a class="jxr_linenumber" name="328" href="#328">328</a>                                    String scope )
<a class="jxr_linenumber" name="329" href="#329">329</a>     {
<a class="jxr_linenumber" name="330" href="#330">330</a>         assertEquals( artifactId, dependency.getArtifactId() );
<a class="jxr_linenumber" name="331" href="#331">331</a>         assertEquals( <span class="jxr_string">"jar"</span>, dependency.getType() );
<a class="jxr_linenumber" name="332" href="#332">332</a>         assertEquals( version, dependency.getVersion() );
<a class="jxr_linenumber" name="333" href="#333">333</a>         assertEquals( groupId, dependency.getGroupId() );
<a class="jxr_linenumber" name="334" href="#334">334</a>         assertEquals( scope, dependency.getScope() );
<a class="jxr_linenumber" name="335" href="#335">335</a>         assertNull( dependency.getClassifier() );
<a class="jxr_linenumber" name="336" href="#336">336</a>         assertNull( dependency.getSystemPath() );
<a class="jxr_linenumber" name="337" href="#337">337</a>     }
<a class="jxr_linenumber" name="338" href="#338">338</a> 
<a class="jxr_linenumber" name="339" href="#339">339</a>     @Test
<a class="jxr_linenumber" name="340" href="#340">340</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadataForTimestampedSnapshot()
<a class="jxr_linenumber" name="341" href="#341">341</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="342" href="#342">342</a>     {
<a class="jxr_linenumber" name="343" href="#343">343</a>         ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="344" href="#344">344</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"org.apache"</span>, <span class="jxr_string">"apache"</span>, <span class="jxr_string">"5-SNAPSHOT"</span> ) );
<a class="jxr_linenumber" name="345" href="#345">345</a>         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
<a class="jxr_linenumber" name="346" href="#346">346</a>         assertEquals( <span class="jxr_string">"pom"</span>, facet.getPackaging() );
<a class="jxr_linenumber" name="347" href="#347">347</a>         assertEquals( <span class="jxr_string">"http://www.apache.org/"</span>, metadata.getUrl() );
<a class="jxr_linenumber" name="348" href="#348">348</a>         assertNull( facet.getParent() );
<a class="jxr_linenumber" name="349" href="#349">349</a>         assertEquals( <span class="jxr_string">"org.apache"</span>, facet.getGroupId() );
<a class="jxr_linenumber" name="350" href="#350">350</a>         assertEquals( <span class="jxr_string">"apache"</span>, facet.getArtifactId() );
<a class="jxr_linenumber" name="351" href="#351">351</a>         assertNull( metadata.getCiManagement() );
<a class="jxr_linenumber" name="352" href="#352">352</a>         assertNotNull( metadata.getDescription() );
<a class="jxr_linenumber" name="353" href="#353">353</a>         <em class="jxr_comment">// TODO: this would be better</em>
<a class="jxr_linenumber" name="354" href="#354">354</a> <em class="jxr_comment">//        assertEquals(</em>
<a class="jxr_linenumber" name="355" href="#355">355</a> <em class="jxr_comment">//            "The Apache Software Foundation provides support for the Apache community of open-source software projects. " +</em>
<a class="jxr_linenumber" name="356" href="#356">356</a> <em class="jxr_comment">//                "The Apache projects are characterized by a collaborative, consensus based development process, an open " +</em>
<a class="jxr_linenumber" name="357" href="#357">357</a> <em class="jxr_comment">//                "and pragmatic software license, and a desire to create high quality software that leads the way in its " +</em>
<a class="jxr_linenumber" name="358" href="#358">358</a> <em class="jxr_comment">//                "field. We consider ourselves not simply a group of projects sharing a server, but rather a community of " +</em>
<a class="jxr_linenumber" name="359" href="#359">359</a> <em class="jxr_comment">//                "developers and users.", metadata.getDescription() );</em>
<a class="jxr_linenumber" name="360" href="#360">360</a>         assertEquals( <span class="jxr_string">"5-SNAPSHOT"</span>, metadata.getId() );
<a class="jxr_linenumber" name="361" href="#361">361</a>         assertNull( metadata.getIssueManagement() );
<a class="jxr_linenumber" name="362" href="#362">362</a>         checkApacheLicense( metadata );
<a class="jxr_linenumber" name="363" href="#363">363</a>         assertEquals( <span class="jxr_string">"The Apache Software Foundation"</span>, metadata.getName() );
<a class="jxr_linenumber" name="364" href="#364">364</a>         String path = <span class="jxr_string">"maven/pom/trunk/asf"</span>;
<a class="jxr_linenumber" name="365" href="#365">365</a>         assertEquals( ASF_SCM_CONN_BASE + path, metadata.getScm().getConnection() );
<a class="jxr_linenumber" name="366" href="#366">366</a>         assertEquals( ASF_SCM_DEV_CONN_BASE + path, metadata.getScm().getDeveloperConnection() );
<a class="jxr_linenumber" name="367" href="#367">367</a>         assertEquals( ASF_SCM_VIEWVC_BASE + path, metadata.getScm().getUrl() );
<a class="jxr_linenumber" name="368" href="#368">368</a>         checkOrganizationApache( metadata );
<a class="jxr_linenumber" name="369" href="#369">369</a>         assertEquals( 1, metadata.getMailingLists().size() );
<a class="jxr_linenumber" name="370" href="#370">370</a>         assertMailingList( metadata.getMailingLists().get( 0 ), <span class="jxr_string">"Apache Announce List"</span>,
<a class="jxr_linenumber" name="371" href="#371">371</a>                            <span class="jxr_string">"http://mail-archives.apache.org/mod_mbox/www-announce/"</span>, <span class="jxr_string">"announce@apache.org"</span>,
<a class="jxr_linenumber" name="372" href="#372">372</a>                            <span class="jxr_string">"announce-subscribe@apache.org"</span>, <span class="jxr_string">"announce-unsubscribe@apache.org"</span>,
<a class="jxr_linenumber" name="373" href="#373">373</a>                            Collections.&lt;String&gt;emptyList(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="374" href="#374">374</a>         assertEquals( Collections.&lt;Dependency&gt;emptyList(), metadata.getDependencies() );
<a class="jxr_linenumber" name="375" href="#375">375</a>     }
<a class="jxr_linenumber" name="376" href="#376">376</a> 
<a class="jxr_linenumber" name="377" href="#377">377</a>     @Test
<a class="jxr_linenumber" name="378" href="#378">378</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadataForTimestampedSnapshotMissingMetadata()
<a class="jxr_linenumber" name="379" href="#379">379</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="380" href="#380">380</a>     {
<a class="jxr_linenumber" name="381" href="#381">381</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="382" href="#382">382</a>         {
<a class="jxr_linenumber" name="383" href="#383">383</a>             storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="384" href="#384">384</a>                 <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"missing-metadata"</span>, <span class="jxr_string">"1.0-SNAPSHOT"</span> ) );
<a class="jxr_linenumber" name="385" href="#385">385</a>             fail( <span class="jxr_string">"Should not be found"</span> );
<a class="jxr_linenumber" name="386" href="#386">386</a>         }
<a class="jxr_linenumber" name="387" href="#387">387</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryStorageMetadataNotFoundException e )
<a class="jxr_linenumber" name="388" href="#388">388</a>         {
<a class="jxr_linenumber" name="389" href="#389">389</a>             assertEquals( <span class="jxr_string">"missing-pom"</span>, e.getId() );
<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> 
<a class="jxr_linenumber" name="393" href="#393">393</a>     @Test
<a class="jxr_linenumber" name="394" href="#394">394</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadataForTimestampedSnapshotMalformedMetadata()
<a class="jxr_linenumber" name="395" href="#395">395</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="396" href="#396">396</a>     {
<a class="jxr_linenumber" name="397" href="#397">397</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="398" href="#398">398</a>         {
<a class="jxr_linenumber" name="399" href="#399">399</a>             storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="400" href="#400">400</a>                 <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"malformed-metadata"</span>, <span class="jxr_string">"1.0-SNAPSHOT"</span> ) );
<a class="jxr_linenumber" name="401" href="#401">401</a>             fail( <span class="jxr_string">"Should not be found"</span> );
<a class="jxr_linenumber" name="402" href="#402">402</a>         }
<a class="jxr_linenumber" name="403" href="#403">403</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryStorageMetadataNotFoundException e )
<a class="jxr_linenumber" name="404" href="#404">404</a>         {
<a class="jxr_linenumber" name="405" href="#405">405</a>             assertEquals( <span class="jxr_string">"missing-pom"</span>, e.getId() );
<a class="jxr_linenumber" name="406" href="#406">406</a>         }
<a class="jxr_linenumber" name="407" href="#407">407</a>     }
<a class="jxr_linenumber" name="408" href="#408">408</a> 
<a class="jxr_linenumber" name="409" href="#409">409</a>     @Test
<a class="jxr_linenumber" name="410" href="#410">410</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadataForTimestampedSnapshotIncompleteMetadata()
<a class="jxr_linenumber" name="411" href="#411">411</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="412" href="#412">412</a>     {
<a class="jxr_linenumber" name="413" href="#413">413</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="414" href="#414">414</a>         {
<a class="jxr_linenumber" name="415" href="#415">415</a>             storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="416" href="#416">416</a>                 <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"incomplete-metadata"</span>, <span class="jxr_string">"1.0-SNAPSHOT"</span> ) );
<a class="jxr_linenumber" name="417" href="#417">417</a>             fail( <span class="jxr_string">"Should not be found"</span> );
<a class="jxr_linenumber" name="418" href="#418">418</a>         }
<a class="jxr_linenumber" name="419" href="#419">419</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryStorageMetadataNotFoundException e )
<a class="jxr_linenumber" name="420" href="#420">420</a>         {
<a class="jxr_linenumber" name="421" href="#421">421</a>             assertEquals( <span class="jxr_string">"missing-pom"</span>, e.getId() );
<a class="jxr_linenumber" name="422" href="#422">422</a>         }
<a class="jxr_linenumber" name="423" href="#423">423</a>     }
<a class="jxr_linenumber" name="424" href="#424">424</a> 
<a class="jxr_linenumber" name="425" href="#425">425</a>     @Test
<a class="jxr_linenumber" name="426" href="#426">426</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadataForInvalidPom()
<a class="jxr_linenumber" name="427" href="#427">427</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="428" href="#428">428</a>     {
<a class="jxr_linenumber" name="429" href="#429">429</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="430" href="#430">430</a>         {
<a class="jxr_linenumber" name="431" href="#431">431</a>             storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="432" href="#432">432</a>                 <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"invalid-pom"</span>, <span class="jxr_string">"1.0"</span> ) );
<a class="jxr_linenumber" name="433" href="#433">433</a>             fail( <span class="jxr_string">"Should have received an exception due to invalid POM"</span> );
<a class="jxr_linenumber" name="434" href="#434">434</a>         }
<a class="jxr_linenumber" name="435" href="#435">435</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryStorageMetadataInvalidException e )
<a class="jxr_linenumber" name="436" href="#436">436</a>         {
<a class="jxr_linenumber" name="437" href="#437">437</a>             assertEquals( <span class="jxr_string">"invalid-pom"</span>, e.getId() );
<a class="jxr_linenumber" name="438" href="#438">438</a>         }
<a class="jxr_linenumber" name="439" href="#439">439</a>     }
<a class="jxr_linenumber" name="440" href="#440">440</a> 
<a class="jxr_linenumber" name="441" href="#441">441</a>     @Test
<a class="jxr_linenumber" name="442" href="#442">442</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadataForMislocatedPom()
<a class="jxr_linenumber" name="443" href="#443">443</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="444" href="#444">444</a>     {
<a class="jxr_linenumber" name="445" href="#445">445</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="446" href="#446">446</a>         {
<a class="jxr_linenumber" name="447" href="#447">447</a>             storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="448" href="#448">448</a>                 <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"mislocated-pom"</span>, <span class="jxr_string">"1.0"</span> ) );
<a class="jxr_linenumber" name="449" href="#449">449</a>             fail( <span class="jxr_string">"Should have received an exception due to mislocated POM"</span> );
<a class="jxr_linenumber" name="450" href="#450">450</a>         }
<a class="jxr_linenumber" name="451" href="#451">451</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryStorageMetadataInvalidException e )
<a class="jxr_linenumber" name="452" href="#452">452</a>         {
<a class="jxr_linenumber" name="453" href="#453">453</a>             assertEquals( <span class="jxr_string">"mislocated-pom"</span>, e.getId() );
<a class="jxr_linenumber" name="454" href="#454">454</a>         }
<a class="jxr_linenumber" name="455" href="#455">455</a>     }
<a class="jxr_linenumber" name="456" href="#456">456</a> 
<a class="jxr_linenumber" name="457" href="#457">457</a>     @Test
<a class="jxr_linenumber" name="458" href="#458">458</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionMetadataForMissingPom()
<a class="jxr_linenumber" name="459" href="#459">459</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="460" href="#460">460</a>     {
<a class="jxr_linenumber" name="461" href="#461">461</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="462" href="#462">462</a>         {
<a class="jxr_linenumber" name="463" href="#463">463</a>             storage.readProjectVersionMetadata(
<a class="jxr_linenumber" name="464" href="#464">464</a>                 <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"missing-pom"</span>, <span class="jxr_string">"1.0"</span> ) );
<a class="jxr_linenumber" name="465" href="#465">465</a>             fail( <span class="jxr_string">"Should not be found"</span> );
<a class="jxr_linenumber" name="466" href="#466">466</a>         }
<a class="jxr_linenumber" name="467" href="#467">467</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryStorageMetadataNotFoundException e )
<a class="jxr_linenumber" name="468" href="#468">468</a>         {
<a class="jxr_linenumber" name="469" href="#469">469</a>             assertEquals( <span class="jxr_string">"missing-pom"</span>, e.getId() );
<a class="jxr_linenumber" name="470" href="#470">470</a>         }
<a class="jxr_linenumber" name="471" href="#471">471</a>     }
<a class="jxr_linenumber" name="472" href="#472">472</a> 
<a class="jxr_linenumber" name="473" href="#473">473</a>     @Test
<a class="jxr_linenumber" name="474" href="#474">474</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetRootNamespaces()
<a class="jxr_linenumber" name="475" href="#475">475</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="476" href="#476">476</a>     {
<a class="jxr_linenumber" name="477" href="#477">477</a>         assertEquals( Arrays.asList( <span class="jxr_string">"com"</span>, <span class="jxr_string">"org"</span> ), storage.listRootNamespaces( TEST_REPO_ID, ALL ) );
<a class="jxr_linenumber" name="478" href="#478">478</a>     }
<a class="jxr_linenumber" name="479" href="#479">479</a> 
<a class="jxr_linenumber" name="480" href="#480">480</a>     @Test
<a class="jxr_linenumber" name="481" href="#481">481</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetNamespaces()
<a class="jxr_linenumber" name="482" href="#482">482</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="483" href="#483">483</a>     {
<a class="jxr_linenumber" name="484" href="#484">484</a>         assertEquals( Arrays.asList( <span class="jxr_string">"example"</span> ), storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"com"</span>, ALL ) );
<a class="jxr_linenumber" name="485" href="#485">485</a>         assertEquals( Arrays.asList( <span class="jxr_string">"test"</span> ), storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"com.example"</span>, ALL ) );
<a class="jxr_linenumber" name="486" href="#486">486</a>         assertEquals( Collections.&lt;String&gt;emptyList(),
<a class="jxr_linenumber" name="487" href="#487">487</a>                       storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, ALL ) );
<a class="jxr_linenumber" name="488" href="#488">488</a> 
<a class="jxr_linenumber" name="489" href="#489">489</a>         assertEquals( Arrays.asList( <span class="jxr_string">"apache"</span>, <span class="jxr_string">"codehaus"</span> ), storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org"</span>, ALL ) );
<a class="jxr_linenumber" name="490" href="#490">490</a>         assertEquals( Arrays.asList( <span class="jxr_string">"archiva"</span>, <span class="jxr_string">"maven"</span> ), storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.apache"</span>, ALL ) );
<a class="jxr_linenumber" name="491" href="#491">491</a>         assertEquals( Collections.&lt;String&gt;emptyList(),
<a class="jxr_linenumber" name="492" href="#492">492</a>                       storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, ALL ) );
<a class="jxr_linenumber" name="493" href="#493">493</a>         assertEquals( Arrays.asList( <span class="jxr_string">"plugins"</span>, <span class="jxr_string">"shared"</span> ),
<a class="jxr_linenumber" name="494" href="#494">494</a>                       storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven"</span>, ALL ) );
<a class="jxr_linenumber" name="495" href="#495">495</a>         assertEquals( Collections.&lt;String&gt;emptyList(),
<a class="jxr_linenumber" name="496" href="#496">496</a>                       storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven.plugins"</span>, ALL ) );
<a class="jxr_linenumber" name="497" href="#497">497</a>         assertEquals( Collections.&lt;String&gt;emptyList(),
<a class="jxr_linenumber" name="498" href="#498">498</a>                       storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven.shared"</span>, ALL ) );
<a class="jxr_linenumber" name="499" href="#499">499</a> 
<a class="jxr_linenumber" name="500" href="#500">500</a>         assertEquals( Arrays.asList( <span class="jxr_string">"plexus"</span> ), storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.codehaus"</span>, ALL ) );
<a class="jxr_linenumber" name="501" href="#501">501</a>         assertEquals( Collections.&lt;String&gt;emptyList(),
<a class="jxr_linenumber" name="502" href="#502">502</a>                       storage.listNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.codehaus.plexus"</span>, ALL ) );
<a class="jxr_linenumber" name="503" href="#503">503</a>     }
<a class="jxr_linenumber" name="504" href="#504">504</a> 
<a class="jxr_linenumber" name="505" href="#505">505</a>     @Test
<a class="jxr_linenumber" name="506" href="#506">506</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjects()
<a class="jxr_linenumber" name="507" href="#507">507</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="508" href="#508">508</a>     {
<a class="jxr_linenumber" name="509" href="#509">509</a>         assertEquals( Collections.&lt;String&gt;emptyList(), storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"com"</span>, ALL ) );
<a class="jxr_linenumber" name="510" href="#510">510</a>         assertEquals( Collections.&lt;String&gt;emptyList(), storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"com.example"</span>, ALL ) );
<a class="jxr_linenumber" name="511" href="#511">511</a>         assertEquals( Arrays.asList( <span class="jxr_string">"incomplete-metadata"</span>, <span class="jxr_string">"invalid-pom"</span>, <span class="jxr_string">"malformed-metadata"</span>, <span class="jxr_string">"mislocated-pom"</span>,
<a class="jxr_linenumber" name="512" href="#512">512</a>                                      <span class="jxr_string">"missing-metadata"</span>, <span class="jxr_string">"missing-parent"</span>, <span class="jxr_string">"test-artifact"</span> ),
<a class="jxr_linenumber" name="513" href="#513">513</a>                       storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, ALL ) );
<a class="jxr_linenumber" name="514" href="#514">514</a> 
<a class="jxr_linenumber" name="515" href="#515">515</a>         assertEquals( Collections.&lt;String&gt;emptyList(), storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"org"</span>, ALL ) );
<a class="jxr_linenumber" name="516" href="#516">516</a>         assertEquals( Arrays.asList( <span class="jxr_string">"apache"</span> ), storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"org.apache"</span>, ALL ) );
<a class="jxr_linenumber" name="517" href="#517">517</a>         assertEquals( Arrays.asList( <span class="jxr_string">"archiva"</span>, <span class="jxr_string">"archiva-base"</span>, <span class="jxr_string">"archiva-common"</span>, <span class="jxr_string">"archiva-modules"</span>, <span class="jxr_string">"archiva-parent"</span> ),
<a class="jxr_linenumber" name="518" href="#518">518</a>                       storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, ALL ) );
<a class="jxr_linenumber" name="519" href="#519">519</a>         assertEquals( Arrays.asList( <span class="jxr_string">"maven-archiver"</span>, <span class="jxr_string">"maven-parent"</span> ),
<a class="jxr_linenumber" name="520" href="#520">520</a>                       storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven"</span>, ALL ) );
<a class="jxr_linenumber" name="521" href="#521">521</a>         assertEquals( Collections.&lt;String&gt;emptyList(),
<a class="jxr_linenumber" name="522" href="#522">522</a>                       storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven.plugins"</span>, ALL ) );
<a class="jxr_linenumber" name="523" href="#523">523</a>         assertEquals( Arrays.asList( <span class="jxr_string">"maven-downloader"</span>, <span class="jxr_string">"maven-shared-components"</span> ),
<a class="jxr_linenumber" name="524" href="#524">524</a>                       storage.listProjects( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven.shared"</span>, ALL ) );
<a class="jxr_linenumber" name="525" href="#525">525</a>     }
<a class="jxr_linenumber" name="526" href="#526">526</a> 
<a class="jxr_linenumber" name="527" href="#527">527</a>     @Test
<a class="jxr_linenumber" name="528" href="#528">528</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersions()
<a class="jxr_linenumber" name="529" href="#529">529</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="530" href="#530">530</a>     {
<a class="jxr_linenumber" name="531" href="#531">531</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.0-SNAPSHOT"</span> ),
<a class="jxr_linenumber" name="532" href="#532">532</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"incomplete-metadata"</span>, ALL ) );
<a class="jxr_linenumber" name="533" href="#533">533</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.0-SNAPSHOT"</span> ),
<a class="jxr_linenumber" name="534" href="#534">534</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"malformed-metadata"</span>, ALL ) );
<a class="jxr_linenumber" name="535" href="#535">535</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.0-SNAPSHOT"</span> ),
<a class="jxr_linenumber" name="536" href="#536">536</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"missing-metadata"</span>, ALL ) );
<a class="jxr_linenumber" name="537" href="#537">537</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.0"</span> ),
<a class="jxr_linenumber" name="538" href="#538">538</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"invalid-pom"</span>, ALL ) );
<a class="jxr_linenumber" name="539" href="#539">539</a> 
<a class="jxr_linenumber" name="540" href="#540">540</a>         assertEquals( Arrays.asList( <span class="jxr_string">"4"</span>, <span class="jxr_string">"5-SNAPSHOT"</span>, <span class="jxr_string">"7"</span> ),
<a class="jxr_linenumber" name="541" href="#541">541</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache"</span>, <span class="jxr_string">"apache"</span>, ALL ) );
<a class="jxr_linenumber" name="542" href="#542">542</a> 
<a class="jxr_linenumber" name="543" href="#543">543</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.2.1"</span>, <span class="jxr_string">"1.2.2"</span> ),
<a class="jxr_linenumber" name="544" href="#544">544</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, <span class="jxr_string">"archiva"</span>, ALL ) );
<a class="jxr_linenumber" name="545" href="#545">545</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.2.1"</span> ),
<a class="jxr_linenumber" name="546" href="#546">546</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, <span class="jxr_string">"archiva-base"</span>, ALL ) );
<a class="jxr_linenumber" name="547" href="#547">547</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.2.1"</span> ),
<a class="jxr_linenumber" name="548" href="#548">548</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, <span class="jxr_string">"archiva-common"</span>, ALL ) );
<a class="jxr_linenumber" name="549" href="#549">549</a>         assertEquals( Arrays.asList( <span class="jxr_string">"1.2.1"</span> ),
<a class="jxr_linenumber" name="550" href="#550">550</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, <span class="jxr_string">"archiva-modules"</span>, ALL ) );
<a class="jxr_linenumber" name="551" href="#551">551</a>         assertEquals( Arrays.asList( <span class="jxr_string">"3"</span> ),
<a class="jxr_linenumber" name="552" href="#552">552</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.archiva"</span>, <span class="jxr_string">"archiva-parent"</span>, ALL ) );
<a class="jxr_linenumber" name="553" href="#553">553</a> 
<a class="jxr_linenumber" name="554" href="#554">554</a>         assertEquals( Collections.&lt;String&gt;emptyList(),
<a class="jxr_linenumber" name="555" href="#555">555</a>                       storage.listProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven.shared"</span>, <span class="jxr_string">"maven-downloader"</span>, ALL ) );
<a class="jxr_linenumber" name="556" href="#556">556</a>     }
<a class="jxr_linenumber" name="557" href="#557">557</a> 
<a class="jxr_linenumber" name="558" href="#558">558</a>     @Test
<a class="jxr_linenumber" name="559" href="#559">559</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifacts()
<a class="jxr_linenumber" name="560" href="#560">560</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="561" href="#561">561</a>     {
<a class="jxr_linenumber" name="562" href="#562">562</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> ArrayList&lt;ArtifactMetadata&gt;( storage.readArtifactsMetadata(
<a class="jxr_linenumber" name="563" href="#563">563</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"org.codehaus.plexus"</span>, <span class="jxr_string">"plexus-spring"</span>, <span class="jxr_string">"1.2"</span>, ALL ) ) );
<a class="jxr_linenumber" name="564" href="#564">564</a>         assertEquals( 3, artifacts.size() );
<a class="jxr_linenumber" name="565" href="#565">565</a>         Collections.sort( artifacts, <strong class="jxr_keyword">new</strong> Comparator&lt;ArtifactMetadata&gt;()
<a class="jxr_linenumber" name="566" href="#566">566</a>         {
<a class="jxr_linenumber" name="567" href="#567">567</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare( ArtifactMetadata o1, ArtifactMetadata o2 )
<a class="jxr_linenumber" name="568" href="#568">568</a>             {
<a class="jxr_linenumber" name="569" href="#569">569</a>                 <strong class="jxr_keyword">return</strong> o1.getId().compareTo( o2.getId() );
<a class="jxr_linenumber" name="570" href="#570">570</a>             }
<a class="jxr_linenumber" name="571" href="#571">571</a>         } );
<a class="jxr_linenumber" name="572" href="#572">572</a> 
<a class="jxr_linenumber" name="573" href="#573">573</a>         assertArtifact( artifacts.get( 0 ), <span class="jxr_string">"plexus-spring-1.2-sources.jar"</span>, 0, EMPTY_SHA1, EMPTY_MD5 );
<a class="jxr_linenumber" name="574" href="#574">574</a>         assertArtifact( artifacts.get( 1 ), <span class="jxr_string">"plexus-spring-1.2.jar"</span>, 0, EMPTY_SHA1, EMPTY_MD5 );
<a class="jxr_linenumber" name="575" href="#575">575</a>         assertArtifact( artifacts.get( 2 ), <span class="jxr_string">"plexus-spring-1.2.pom"</span>, 7407, <span class="jxr_string">"96b14cf880e384b2d15e8193c57b65c5420ca4c5"</span>,
<a class="jxr_linenumber" name="576" href="#576">576</a>                         <span class="jxr_string">"f83aa25f016212a551a4b2249985effc"</span> );
<a class="jxr_linenumber" name="577" href="#577">577</a>     }
<a class="jxr_linenumber" name="578" href="#578">578</a> 
<a class="jxr_linenumber" name="579" href="#579">579</a>     @Test
<a class="jxr_linenumber" name="580" href="#580">580</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsFiltered()
<a class="jxr_linenumber" name="581" href="#581">581</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="582" href="#582">582</a>     {
<a class="jxr_linenumber" name="583" href="#583">583</a>         ExcludesFilter&lt;String&gt; filter =
<a class="jxr_linenumber" name="584" href="#584">584</a>             <strong class="jxr_keyword">new</strong> ExcludesFilter&lt;String&gt;( Collections.singletonList( <span class="jxr_string">"plexus-spring-1.2.pom"</span> ) );
<a class="jxr_linenumber" name="585" href="#585">585</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> ArrayList&lt;ArtifactMetadata&gt;( storage.readArtifactsMetadata(
<a class="jxr_linenumber" name="586" href="#586">586</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"org.codehaus.plexus"</span>, <span class="jxr_string">"plexus-spring"</span>, <span class="jxr_string">"1.2"</span>, filter ) ) );
<a class="jxr_linenumber" name="587" href="#587">587</a>         assertEquals( 2, artifacts.size() );
<a class="jxr_linenumber" name="588" href="#588">588</a>         Collections.sort( artifacts, <strong class="jxr_keyword">new</strong> Comparator&lt;ArtifactMetadata&gt;()
<a class="jxr_linenumber" name="589" href="#589">589</a>         {
<a class="jxr_linenumber" name="590" href="#590">590</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare( ArtifactMetadata o1, ArtifactMetadata o2 )
<a class="jxr_linenumber" name="591" href="#591">591</a>             {
<a class="jxr_linenumber" name="592" href="#592">592</a>                 <strong class="jxr_keyword">return</strong> o1.getId().compareTo( o2.getId() );
<a class="jxr_linenumber" name="593" href="#593">593</a>             }
<a class="jxr_linenumber" name="594" href="#594">594</a>         } );
<a class="jxr_linenumber" name="595" href="#595">595</a> 
<a class="jxr_linenumber" name="596" href="#596">596</a>         assertArtifact( artifacts.get( 0 ), <span class="jxr_string">"plexus-spring-1.2-sources.jar"</span>, 0, EMPTY_SHA1, EMPTY_MD5 );
<a class="jxr_linenumber" name="597" href="#597">597</a>         assertArtifact( artifacts.get( 1 ), <span class="jxr_string">"plexus-spring-1.2.jar"</span>, 0, EMPTY_SHA1, EMPTY_MD5 );
<a class="jxr_linenumber" name="598" href="#598">598</a>     }
<a class="jxr_linenumber" name="599" href="#599">599</a> 
<a class="jxr_linenumber" name="600" href="#600">600</a>     @Test
<a class="jxr_linenumber" name="601" href="#601">601</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsTimestampedSnapshots()
<a class="jxr_linenumber" name="602" href="#602">602</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="603" href="#603">603</a>     {
<a class="jxr_linenumber" name="604" href="#604">604</a>         List&lt;ArtifactMetadata&gt; artifacts = <strong class="jxr_keyword">new</strong> ArrayList&lt;ArtifactMetadata&gt;( storage.readArtifactsMetadata(
<a class="jxr_linenumber" name="605" href="#605">605</a>             <strong class="jxr_keyword">new</strong> ReadMetadataRequest( TEST_REPO_ID, <span class="jxr_string">"com.example.test"</span>, <span class="jxr_string">"missing-metadata"</span>, <span class="jxr_string">"1.0-SNAPSHOT"</span>, ALL ) ) );
<a class="jxr_linenumber" name="606" href="#606">606</a>         assertEquals( 1, artifacts.size() );
<a class="jxr_linenumber" name="607" href="#607">607</a> 
<a class="jxr_linenumber" name="608" href="#608">608</a>         ArtifactMetadata artifact = artifacts.get( 0 );
<a class="jxr_linenumber" name="609" href="#609">609</a>         assertEquals( <span class="jxr_string">"missing-metadata-1.0-20091101.112233-1.pom"</span>, artifact.getId() );
<a class="jxr_linenumber" name="610" href="#610">610</a>         assertEquals( <span class="jxr_string">"com.example.test"</span>, artifact.getNamespace() );
<a class="jxr_linenumber" name="611" href="#611">611</a>         assertEquals( <span class="jxr_string">"missing-metadata"</span>, artifact.getProject() );
<a class="jxr_linenumber" name="612" href="#612">612</a>         assertEquals( <span class="jxr_string">"1.0-20091101.112233-1"</span>, artifact.getVersion() );
<a class="jxr_linenumber" name="613" href="#613">613</a>         assertEquals( TEST_REPO_ID, artifact.getRepositoryId() );
<a class="jxr_linenumber" name="614" href="#614">614</a>     }
<a class="jxr_linenumber" name="615" href="#615">615</a> 
<a class="jxr_linenumber" name="616" href="#616">616</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> assertArtifact( ArtifactMetadata artifact, String id, <strong class="jxr_keyword">int</strong> size, String sha1, String md5 )
<a class="jxr_linenumber" name="617" href="#617">617</a>     {
<a class="jxr_linenumber" name="618" href="#618">618</a>         assertEquals( id, artifact.getId() );
<a class="jxr_linenumber" name="619" href="#619">619</a>         assertEquals( md5, artifact.getMd5() );
<a class="jxr_linenumber" name="620" href="#620">620</a>         assertEquals( sha1, artifact.getSha1() );
<a class="jxr_linenumber" name="621" href="#621">621</a>         assertEquals( size, artifact.getSize() );
<a class="jxr_linenumber" name="622" href="#622">622</a>         assertEquals( <span class="jxr_string">"org.codehaus.plexus"</span>, artifact.getNamespace() );
<a class="jxr_linenumber" name="623" href="#623">623</a>         assertEquals( <span class="jxr_string">"plexus-spring"</span>, artifact.getProject() );
<a class="jxr_linenumber" name="624" href="#624">624</a>         assertEquals( <span class="jxr_string">"1.2"</span>, artifact.getVersion() );
<a class="jxr_linenumber" name="625" href="#625">625</a>         assertEquals( TEST_REPO_ID, artifact.getRepositoryId() );
<a class="jxr_linenumber" name="626" href="#626">626</a>     }
<a class="jxr_linenumber" name="627" href="#627">627</a> 
<a class="jxr_linenumber" name="628" href="#628">628</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> assertMailingList( MailingList mailingList, String name, String archive, String post, String subscribe,
<a class="jxr_linenumber" name="629" href="#629">629</a>                                     String unsubscribe, List&lt;String&gt; otherArchives, <strong class="jxr_keyword">boolean</strong> allowPost )
<a class="jxr_linenumber" name="630" href="#630">630</a>     {
<a class="jxr_linenumber" name="631" href="#631">631</a>         assertEquals( archive, mailingList.getMainArchiveUrl() );
<a class="jxr_linenumber" name="632" href="#632">632</a>         <strong class="jxr_keyword">if</strong> ( allowPost )
<a class="jxr_linenumber" name="633" href="#633">633</a>         {
<a class="jxr_linenumber" name="634" href="#634">634</a>             assertEquals( post, mailingList.getPostAddress() );
<a class="jxr_linenumber" name="635" href="#635">635</a>         }
<a class="jxr_linenumber" name="636" href="#636">636</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="637" href="#637">637</a>         {
<a class="jxr_linenumber" name="638" href="#638">638</a>             assertNull( mailingList.getPostAddress() );
<a class="jxr_linenumber" name="639" href="#639">639</a>         }
<a class="jxr_linenumber" name="640" href="#640">640</a>         assertEquals( subscribe, mailingList.getSubscribeAddress() );
<a class="jxr_linenumber" name="641" href="#641">641</a>         assertEquals( unsubscribe, mailingList.getUnsubscribeAddress() );
<a class="jxr_linenumber" name="642" href="#642">642</a>         assertEquals( name, mailingList.getName() );
<a class="jxr_linenumber" name="643" href="#643">643</a>         assertEquals( otherArchives, mailingList.getOtherArchives() );
<a class="jxr_linenumber" name="644" href="#644">644</a>     }
<a class="jxr_linenumber" name="645" href="#645">645</a> 
<a class="jxr_linenumber" name="646" href="#646">646</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> assertMailingList( String prefix, MailingList mailingList, String name, <strong class="jxr_keyword">boolean</strong> allowPost,
<a class="jxr_linenumber" name="647" href="#647">647</a>                                     String nabbleUrl )
<a class="jxr_linenumber" name="648" href="#648">648</a>     {
<a class="jxr_linenumber" name="649" href="#649">649</a>         List&lt;String&gt; otherArchives = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="650" href="#650">650</a>         otherArchives.add( <span class="jxr_string">"http://www.mail-archive.com/"</span> + prefix + <span class="jxr_string">"@archiva.apache.org"</span> );
<a class="jxr_linenumber" name="651" href="#651">651</a>         <strong class="jxr_keyword">if</strong> ( nabbleUrl != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="652" href="#652">652</a>         {
<a class="jxr_linenumber" name="653" href="#653">653</a>             otherArchives.add( nabbleUrl );
<a class="jxr_linenumber" name="654" href="#654">654</a>         }
<a class="jxr_linenumber" name="655" href="#655">655</a>         otherArchives.add( <span class="jxr_string">"http://markmail.org/list/org.apache.archiva."</span> + prefix );
<a class="jxr_linenumber" name="656" href="#656">656</a>         assertMailingList( mailingList, name, <span class="jxr_string">"http://mail-archives.apache.org/mod_mbox/archiva-"</span> + prefix + <span class="jxr_string">"/"</span>,
<a class="jxr_linenumber" name="657" href="#657">657</a>                            prefix + <span class="jxr_string">"@archiva.apache.org"</span>, prefix + <span class="jxr_string">"-subscribe@archiva.apache.org"</span>,
<a class="jxr_linenumber" name="658" href="#658">658</a>                            prefix + <span class="jxr_string">"-unsubscribe@archiva.apache.org"</span>, otherArchives, allowPost );
<a class="jxr_linenumber" name="659" href="#659">659</a>     }
<a class="jxr_linenumber" name="660" href="#660">660</a> 
<a class="jxr_linenumber" name="661" href="#661">661</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkApacheLicense( ProjectVersionMetadata metadata )
<a class="jxr_linenumber" name="662" href="#662">662</a>     {
<a class="jxr_linenumber" name="663" href="#663">663</a>         assertEquals( Arrays.asList( <strong class="jxr_keyword">new</strong> License( <span class="jxr_string">"The Apache Software License, Version 2.0"</span>,
<a class="jxr_linenumber" name="664" href="#664">664</a>                                                   <span class="jxr_string">"http://www.apache.org/licenses/LICENSE-2.0.txt"</span> ) ),
<a class="jxr_linenumber" name="665" href="#665">665</a>                       metadata.getLicenses() );
<a class="jxr_linenumber" name="666" href="#666">666</a>     }
<a class="jxr_linenumber" name="667" href="#667">667</a> 
<a class="jxr_linenumber" name="668" href="#668">668</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkOrganizationApache( ProjectVersionMetadata metadata )
<a class="jxr_linenumber" name="669" href="#669">669</a>     {
<a class="jxr_linenumber" name="670" href="#670">670</a>         assertEquals( <span class="jxr_string">"The Apache Software Foundation"</span>, metadata.getOrganization().getName() );
<a class="jxr_linenumber" name="671" href="#671">671</a>         assertEquals( <span class="jxr_string">"http://www.apache.org/"</span>, metadata.getOrganization().getUrl() );
<a class="jxr_linenumber" name="672" href="#672">672</a>     }
<a class="jxr_linenumber" name="673" href="#673">673</a> 
<a class="jxr_linenumber" name="674" href="#674">674</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> deleteTestArtifactWithParent( List&lt;String&gt; pathsToBeDeleted )
<a class="jxr_linenumber" name="675" href="#675">675</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="676" href="#676">676</a>     {
<a class="jxr_linenumber" name="677" href="#677">677</a>         <strong class="jxr_keyword">for</strong> ( String path : pathsToBeDeleted )
<a class="jxr_linenumber" name="678" href="#678">678</a>         {
<a class="jxr_linenumber" name="679" href="#679">679</a>             File dir = <strong class="jxr_keyword">new</strong> File( FileUtil.getBasedir(), path );
<a class="jxr_linenumber" name="680" href="#680">680</a>             FileUtils.deleteDirectory( dir );
<a class="jxr_linenumber" name="681" href="#681">681</a> 
<a class="jxr_linenumber" name="682" href="#682">682</a>             assertFalse( dir.exists() );
<a class="jxr_linenumber" name="683" href="#683">683</a>         }
<a class="jxr_linenumber" name="684" href="#684">684</a>         File dest = <strong class="jxr_keyword">new</strong> File( FileUtil.getBasedir(), <span class="jxr_string">"target/test-repository/com/example/test/test-artifact-module-a"</span> );
<a class="jxr_linenumber" name="685" href="#685">685</a>         File parentPom =
<a class="jxr_linenumber" name="686" href="#686">686</a>             <strong class="jxr_keyword">new</strong> File( FileUtil.getBasedir(), <span class="jxr_string">"target/test-repository/com/example/test/test-artifact-parent"</span> );
<a class="jxr_linenumber" name="687" href="#687">687</a>         File rootPom = <strong class="jxr_keyword">new</strong> File( FileUtil.getBasedir(), <span class="jxr_string">"target/test-repository/com/example/test/test-artifact-root"</span> );
<a class="jxr_linenumber" name="688" href="#688">688</a> 
<a class="jxr_linenumber" name="689" href="#689">689</a>         FileUtils.deleteDirectory( dest );
<a class="jxr_linenumber" name="690" href="#690">690</a>         FileUtils.deleteDirectory( parentPom );
<a class="jxr_linenumber" name="691" href="#691">691</a>         FileUtils.deleteDirectory( rootPom );
<a class="jxr_linenumber" name="692" href="#692">692</a> 
<a class="jxr_linenumber" name="693" href="#693">693</a>         assertFalse( dest.exists() );
<a class="jxr_linenumber" name="694" href="#694">694</a>         assertFalse( parentPom.exists() );
<a class="jxr_linenumber" name="695" href="#695">695</a>         assertFalse( rootPom.exists() );
<a class="jxr_linenumber" name="696" href="#696">696</a>     }
<a class="jxr_linenumber" name="697" href="#697">697</a> 
<a class="jxr_linenumber" name="698" href="#698">698</a>     <strong class="jxr_keyword">private</strong> File copyTestArtifactWithParent( String srcPath, String destPath )
<a class="jxr_linenumber" name="699" href="#699">699</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="700" href="#700">700</a>     {
<a class="jxr_linenumber" name="701" href="#701">701</a>         File src = <strong class="jxr_keyword">new</strong> File( FileUtil.getBasedir(), srcPath );
<a class="jxr_linenumber" name="702" href="#702">702</a>         File dest = <strong class="jxr_keyword">new</strong> File( FileUtil.getBasedir(), destPath );
<a class="jxr_linenumber" name="703" href="#703">703</a> 
<a class="jxr_linenumber" name="704" href="#704">704</a>         FileUtils.copyDirectory( src, dest );
<a class="jxr_linenumber" name="705" href="#705">705</a>         assertTrue( dest.exists() );
<a class="jxr_linenumber" name="706" href="#706">706</a>         <strong class="jxr_keyword">return</strong> dest;
<a class="jxr_linenumber" name="707" href="#707">707</a>     }
<a class="jxr_linenumber" name="708" href="#708">708</a> 
<a class="jxr_linenumber" name="709" href="#709">709</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
