<!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>AbstractMetadataRepositoryTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../testapidocs/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.metadata.repository;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.assertj.core.api.Assertions.assertThat;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Comparator;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> java.util.TimeZone;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.<strong class="jxr_keyword">generic</strong>.GenericMetadataFacet;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.<strong class="jxr_keyword">generic</strong>.GenericMetadataFacetFactory;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ArtifactMetadata;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.CiManagement;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Dependency;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.IssueManagement;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.License;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MailingList;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MetadataFacet;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.MetadataFacetFactory;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Organization;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectMetadata;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionMetadata;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionReference;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.Scm;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.assertj.core.util.Sets;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.junit.runner.RunWith;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.springframework.test.context.ContextConfiguration;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  @RunWith( ArchivaSpringJUnit4ClassRunner.<strong class="jxr_keyword">class</strong> )
<a class="jxr_linenumber" name="L64" href="#L64">64</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="L65" href="#L65">65</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">AbstractMetadataRepositoryTest</a>
<a class="jxr_linenumber" name="L66" href="#L66">66</a>      <strong class="jxr_keyword">extends</strong> TestCase
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  {
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String OTHER_REPO_ID = <span class="jxr_string">"other-repo"</span>;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  
<a class="jxr_linenumber" name="L70" href="#L70">70</a>      <strong class="jxr_keyword">protected</strong> MetadataRepository repository;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  
<a class="jxr_linenumber" name="L72" href="#L72">72</a>      <strong class="jxr_keyword">protected</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="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_PROJECT = <span class="jxr_string">"projectId"</span>;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_NAMESPACE = <span class="jxr_string">"namespace"</span>;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_PROJECT_VERSION = <span class="jxr_string">"1.0"</span>;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  
<a class="jxr_linenumber" name="L80" href="#L80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_PROJECT_VERSION_2_0 = <span class="jxr_string">"2.0"</span>;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  
<a class="jxr_linenumber" name="L82" href="#L82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_URL = <span class="jxr_string">"http://archiva.apache.org"</span>;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  
<a class="jxr_linenumber" name="L84" href="#L84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Organization TEST_ORGANIZATION = <strong class="jxr_keyword">new</strong> Organization( <span class="jxr_string">"Apache"</span>, <span class="jxr_string">"http://apache.org"</span> );
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FACET_ID = <span class="jxr_string">"test-facet-id"</span>;
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  
<a class="jxr_linenumber" name="L88" href="#L88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_NAME = <span class="jxr_string">"test/name"</span>;
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_VALUE = <span class="jxr_string">"test-value"</span>;
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  
<a class="jxr_linenumber" name="L92" href="#L92">92</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String UNKNOWN = <span class="jxr_string">"unknown"</span>;
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_MD5 = <span class="jxr_string">"bd4a9b642562547754086de2dab26b7d"</span>;
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  
<a class="jxr_linenumber" name="L96" href="#L96">96</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_SHA1 = <span class="jxr_string">"2e5daf0201ddeb068a62d5e08da18657ab2c6be9"</span>;
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  
<a class="jxr_linenumber" name="L98" href="#L98">98</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_METADATA_KEY = <span class="jxr_string">"testkey"</span>;
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  
<a class="jxr_linenumber" name="L100" href="#L100">100</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_METADATA_VALUE = <span class="jxr_string">"testmetadata"</span>;
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 
<a class="jxr_linenumber" name="L102" href="#L102">102</a>     <strong class="jxr_keyword">protected</strong> Logger log = LoggerFactory.getLogger( getClass() );
<a class="jxr_linenumber" name="L103" href="#L103">103</a> 
<a class="jxr_linenumber" name="L104" href="#L104">104</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map&lt;String, MetadataFacetFactory&gt; createTestMetadataFacetFactories()
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     {
<a class="jxr_linenumber" name="L106" href="#L106">106</a>         Map&lt;String, MetadataFacetFactory&gt; factories = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L107" href="#L107">107</a>         factories.put( TEST_FACET_ID, <strong class="jxr_keyword">new</strong> MetadataFacetFactory()
<a class="jxr_linenumber" name="L108" href="#L108">108</a>         {
<a class="jxr_linenumber" name="L109" href="#L109">109</a>             @Override
<a class="jxr_linenumber" name="L110" href="#L110">110</a>             <strong class="jxr_keyword">public</strong> MetadataFacet createMetadataFacet()
<a class="jxr_linenumber" name="L111" href="#L111">111</a>             {
<a class="jxr_linenumber" name="L112" href="#L112">112</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_METADATA_VALUE );
<a class="jxr_linenumber" name="L113" href="#L113">113</a>             }
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
<a class="jxr_linenumber" name="L115" href="#L115">115</a>             @Override
<a class="jxr_linenumber" name="L116" href="#L116">116</a>             <strong class="jxr_keyword">public</strong> MetadataFacet createMetadataFacet( String repositoryId, String name )
<a class="jxr_linenumber" name="L117" href="#L117">117</a>             {
<a class="jxr_linenumber" name="L118" href="#L118">118</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_METADATA_VALUE );
<a class="jxr_linenumber" name="L119" href="#L119">119</a>             }
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         } );
<a class="jxr_linenumber" name="L121" href="#L121">121</a> 
<a class="jxr_linenumber" name="L122" href="#L122">122</a>         <em class="jxr_comment">// add to ensure we don't accidentally create an empty facet ID.</em>
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         factories.put( <span class="jxr_string">""</span>, <strong class="jxr_keyword">new</strong> MetadataFacetFactory()
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         {
<a class="jxr_linenumber" name="L125" href="#L125">125</a>             @Override
<a class="jxr_linenumber" name="L126" href="#L126">126</a>             <strong class="jxr_keyword">public</strong> MetadataFacet createMetadataFacet()
<a class="jxr_linenumber" name="L127" href="#L127">127</a>             {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( <span class="jxr_string">""</span>, TEST_VALUE );
<a class="jxr_linenumber" name="L129" href="#L129">129</a>             }
<a class="jxr_linenumber" name="L130" href="#L130">130</a> 
<a class="jxr_linenumber" name="L131" href="#L131">131</a>             @Override
<a class="jxr_linenumber" name="L132" href="#L132">132</a>             <strong class="jxr_keyword">public</strong> MetadataFacet createMetadataFacet( String repositoryId, String name )
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             {
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( <span class="jxr_string">""</span>, TEST_VALUE );
<a class="jxr_linenumber" name="L135" href="#L135">135</a>             }
<a class="jxr_linenumber" name="L136" href="#L136">136</a>         } );
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         <em class="jxr_comment">// for the getArtifactsByProjectVersionMetadata tests</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         factories.put( GenericMetadataFacet.FACET_ID, <strong class="jxr_keyword">new</strong> GenericMetadataFacetFactory() );
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 
<a class="jxr_linenumber" name="L141" href="#L141">141</a>         <strong class="jxr_keyword">return</strong> factories;
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     }
<a class="jxr_linenumber" name="L143" href="#L143">143</a> 
<a class="jxr_linenumber" name="L144" href="#L144">144</a>     @Test
<a class="jxr_linenumber" name="L145" href="#L145">145</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRootNamespaceWithNoMetadataRepository()
<a class="jxr_linenumber" name="L146" href="#L146">146</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L147" href="#L147">147</a>     {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         Collection&lt;String&gt; namespaces = repository.getRootNamespaces( TEST_REPO_ID );
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         assertThat( namespaces ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L150" href="#L150">150</a>     }
<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
<a class="jxr_linenumber" name="L152" href="#L152">152</a>     @Test
<a class="jxr_linenumber" name="L153" href="#L153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetNamespaceOnly()
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L155" href="#L155">155</a>     {
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         repository.updateNamespace( TEST_REPO_ID, TEST_NAMESPACE );
<a class="jxr_linenumber" name="L159" href="#L159">159</a> 
<a class="jxr_linenumber" name="L160" href="#L160">160</a>         assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isNotEmpty().contains(
<a class="jxr_linenumber" name="L161" href="#L161">161</a>             TEST_NAMESPACE ).hasSize( 1 );
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         repository.removeNamespace( TEST_REPO_ID, TEST_NAMESPACE );
<a class="jxr_linenumber" name="L164" href="#L164">164</a> 
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 
<a class="jxr_linenumber" name="L167" href="#L167">167</a>     }
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
<a class="jxr_linenumber" name="L169" href="#L169">169</a>     @Test
<a class="jxr_linenumber" name="L170" href="#L170">170</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectOnly()
<a class="jxr_linenumber" name="L171" href="#L171">171</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     {
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) );
<a class="jxr_linenumber" name="L174" href="#L174">174</a>         assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L175" href="#L175">175</a> 
<a class="jxr_linenumber" name="L176" href="#L176">176</a>         ProjectMetadata project = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L177" href="#L177">177</a>         project.setId( TEST_PROJECT );
<a class="jxr_linenumber" name="L178" href="#L178">178</a>         project.setNamespace( TEST_NAMESPACE );
<a class="jxr_linenumber" name="L179" href="#L179">179</a> 
<a class="jxr_linenumber" name="L180" href="#L180">180</a>         repository.updateProject( TEST_REPO_ID, project );
<a class="jxr_linenumber" name="L181" href="#L181">181</a> 
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         project = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L183" href="#L183">183</a>         assertEquals( TEST_PROJECT, project.getId() );
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         assertEquals( TEST_NAMESPACE, project.getNamespace() );
<a class="jxr_linenumber" name="L185" href="#L185">185</a> 
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         <em class="jxr_comment">// test that namespace is also constructed</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a> 
<a class="jxr_linenumber" name="L188" href="#L188">188</a>         Collection&lt;String&gt; namespaces = repository.getRootNamespaces( TEST_REPO_ID );
<a class="jxr_linenumber" name="L189" href="#L189">189</a> 
<a class="jxr_linenumber" name="L190" href="#L190">190</a>         assertThat( namespaces ).isNotNull().isNotEmpty().contains( TEST_NAMESPACE ).hasSize( 1 );
<a class="jxr_linenumber" name="L191" href="#L191">191</a>     }
<a class="jxr_linenumber" name="L192" href="#L192">192</a> 
<a class="jxr_linenumber" name="L193" href="#L193">193</a>     @Test
<a class="jxr_linenumber" name="L194" href="#L194">194</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionOnly()
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L196" href="#L196">196</a>     {
<a class="jxr_linenumber" name="L197" href="#L197">197</a>         assertNull( repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) );
<a class="jxr_linenumber" name="L198" href="#L198">198</a>         assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) );
<a class="jxr_linenumber" name="L199" href="#L199">199</a>         assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 
<a class="jxr_linenumber" name="L201" href="#L201">201</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L203" href="#L203">203</a> 
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L205" href="#L205">205</a> 
<a class="jxr_linenumber" name="L206" href="#L206">206</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         assertEquals( TEST_PROJECT_VERSION, metadata.getId() );
<a class="jxr_linenumber" name="L208" href="#L208">208</a> 
<a class="jxr_linenumber" name="L209" href="#L209">209</a>         <em class="jxr_comment">// test that namespace and project is also constructed</em>
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         Collection&lt;String&gt; namespaces = repository.getRootNamespaces( TEST_REPO_ID );
<a class="jxr_linenumber" name="L211" href="#L211">211</a> 
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_NAMESPACE );
<a class="jxr_linenumber" name="L213" href="#L213">213</a> 
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         ProjectMetadata projectMetadata = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         assertNotNull( projectMetadata );
<a class="jxr_linenumber" name="L216" href="#L216">216</a>         assertEquals( TEST_PROJECT, projectMetadata.getId() );
<a class="jxr_linenumber" name="L217" href="#L217">217</a>         assertEquals( TEST_NAMESPACE, projectMetadata.getNamespace() );
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     }
<a class="jxr_linenumber" name="L219" href="#L219">219</a> 
<a class="jxr_linenumber" name="L220" href="#L220">220</a>     @Test
<a class="jxr_linenumber" name="L221" href="#L221">221</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactOnly()
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L223" href="#L223">223</a>     {
<a class="jxr_linenumber" name="L224" href="#L224">224</a>         assertThat( <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(
<a class="jxr_linenumber" name="L225" href="#L225">225</a>             repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L226" href="#L226">226</a>                                      TEST_PROJECT_VERSION ) ) ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L227" href="#L227">227</a>         assertThat(
<a class="jxr_linenumber" name="L228" href="#L228">228</a>             repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ).isNull();
<a class="jxr_linenumber" name="L229" href="#L229">229</a>         assertThat( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ).isNull();
<a class="jxr_linenumber" name="L230" href="#L230">230</a> 
<a class="jxr_linenumber" name="L231" href="#L231">231</a>         assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L232" href="#L232">232</a> 
<a class="jxr_linenumber" name="L233" href="#L233">233</a>         ArtifactMetadata metadata = createArtifact();
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 
<a class="jxr_linenumber" name="L235" href="#L235">235</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
<a class="jxr_linenumber" name="L236" href="#L236">236</a> 
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         Collection&lt;ArtifactMetadata&gt; artifacts =
<a class="jxr_linenumber" name="L238" href="#L238">238</a>             repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         <em class="jxr_comment">//assertEquals( Collections.singletonList( metadata ), new ArrayList&lt;ArtifactMetadata&gt;( artifacts ) );</em>
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         assertThat( artifacts ).containsExactly( metadata );
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         <em class="jxr_comment">// test that namespace, project and project version is also constructed</em>
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isNotEmpty().contains(
<a class="jxr_linenumber" name="L244" href="#L244">244</a>             TEST_NAMESPACE ).hasSize( 1 );
<a class="jxr_linenumber" name="L245" href="#L245">245</a> 
<a class="jxr_linenumber" name="L246" href="#L246">246</a>         ProjectMetadata projectMetadata = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L247" href="#L247">247</a>         assertEquals( TEST_PROJECT, projectMetadata.getId() );
<a class="jxr_linenumber" name="L248" href="#L248">248</a>         assertEquals( TEST_NAMESPACE, projectMetadata.getNamespace() );
<a class="jxr_linenumber" name="L249" href="#L249">249</a> 
<a class="jxr_linenumber" name="L250" href="#L250">250</a>         ProjectVersionMetadata projectVersionMetadata =
<a class="jxr_linenumber" name="L251" href="#L251">251</a>             repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L252" href="#L252">252</a>         assertEquals( TEST_PROJECT_VERSION, projectVersionMetadata.getId() );
<a class="jxr_linenumber" name="L253" href="#L253">253</a>     }
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 
<a class="jxr_linenumber" name="L255" href="#L255">255</a>     @Test
<a class="jxr_linenumber" name="L256" href="#L256">256</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateProjectVersionMetadataWithNoOtherArchives()
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L258" href="#L258">258</a>     {
<a class="jxr_linenumber" name="L259" href="#L259">259</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L260" href="#L260">260</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L261" href="#L261">261</a>         MailingList mailingList = <strong class="jxr_keyword">new</strong> MailingList();
<a class="jxr_linenumber" name="L262" href="#L262">262</a>         mailingList.setName( <span class="jxr_string">"Foo List"</span> );
<a class="jxr_linenumber" name="L263" href="#L263">263</a>         mailingList.setOtherArchives( Collections.&lt;String&gt;emptyList() );
<a class="jxr_linenumber" name="L264" href="#L264">264</a>         metadata.setMailingLists( Arrays.asList( mailingList ) );
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L266" href="#L266">266</a> 
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L268" href="#L268">268</a>         assertEquals( TEST_PROJECT_VERSION, metadata.getId() );
<a class="jxr_linenumber" name="L269" href="#L269">269</a> 
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         List&lt;MailingList&gt; mailingLists = metadata.getMailingLists();
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 
<a class="jxr_linenumber" name="L272" href="#L272">272</a>         assertThat( mailingLists ).isNotNull().isNotEmpty().hasSize( 1 );
<a class="jxr_linenumber" name="L273" href="#L273">273</a> 
<a class="jxr_linenumber" name="L274" href="#L274">274</a>         mailingList = metadata.getMailingLists().get( 0 );
<a class="jxr_linenumber" name="L275" href="#L275">275</a>         assertEquals( <span class="jxr_string">"Foo List"</span>, mailingList.getName() );
<a class="jxr_linenumber" name="L276" href="#L276">276</a> 
<a class="jxr_linenumber" name="L277" href="#L277">277</a>         List&lt;String&gt; others = mailingList.getOtherArchives();
<a class="jxr_linenumber" name="L278" href="#L278">278</a>         assertThat( others ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L279" href="#L279">279</a>     }
<a class="jxr_linenumber" name="L280" href="#L280">280</a> 
<a class="jxr_linenumber" name="L281" href="#L281">281</a>     @Test
<a class="jxr_linenumber" name="L282" href="#L282">282</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateProjectVersionMetadataWithAllElements()
<a class="jxr_linenumber" name="L283" href="#L283">283</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L284" href="#L284">284</a>     {
<a class="jxr_linenumber" name="L285" href="#L285">285</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L287" href="#L287">287</a> 
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         metadata.setName( <span class="jxr_string">"project name"</span> );
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         metadata.setDescription( <span class="jxr_string">"project description"</span> );
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         metadata.setUrl( <span class="jxr_string">"the url"</span> );
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 
<a class="jxr_linenumber" name="L292" href="#L292">292</a>         MailingList mailingList = <strong class="jxr_keyword">new</strong> MailingList();
<a class="jxr_linenumber" name="L293" href="#L293">293</a>         mailingList.setName( <span class="jxr_string">"Foo List"</span> );
<a class="jxr_linenumber" name="L294" href="#L294">294</a>         mailingList.setUnsubscribeAddress( <span class="jxr_string">"UnsubscribeAddress"</span> );
<a class="jxr_linenumber" name="L295" href="#L295">295</a>         mailingList.setSubscribeAddress( <span class="jxr_string">"SubscribeAddress"</span> );
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         mailingList.setPostAddress( <span class="jxr_string">"PostAddress"</span> );
<a class="jxr_linenumber" name="L297" href="#L297">297</a>         mailingList.setMainArchiveUrl( <span class="jxr_string">"MainArchiveUrl"</span> );
<a class="jxr_linenumber" name="L298" href="#L298">298</a>         mailingList.setOtherArchives( Arrays.asList( <span class="jxr_string">"other archive"</span> ) );
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         metadata.setMailingLists( Arrays.asList( mailingList ) );
<a class="jxr_linenumber" name="L300" href="#L300">300</a> 
<a class="jxr_linenumber" name="L301" href="#L301">301</a>         Scm scm = <strong class="jxr_keyword">new</strong> Scm();
<a class="jxr_linenumber" name="L302" href="#L302">302</a>         scm.setConnection( <span class="jxr_string">"connection"</span> );
<a class="jxr_linenumber" name="L303" href="#L303">303</a>         scm.setDeveloperConnection( <span class="jxr_string">"dev conn"</span> );
<a class="jxr_linenumber" name="L304" href="#L304">304</a>         scm.setUrl( <span class="jxr_string">"url"</span> );
<a class="jxr_linenumber" name="L305" href="#L305">305</a>         metadata.setScm( scm );
<a class="jxr_linenumber" name="L306" href="#L306">306</a> 
<a class="jxr_linenumber" name="L307" href="#L307">307</a>         CiManagement ci = <strong class="jxr_keyword">new</strong> CiManagement();
<a class="jxr_linenumber" name="L308" href="#L308">308</a>         ci.setSystem( <span class="jxr_string">"system"</span> );
<a class="jxr_linenumber" name="L309" href="#L309">309</a>         ci.setUrl( <span class="jxr_string">"ci url"</span> );
<a class="jxr_linenumber" name="L310" href="#L310">310</a>         metadata.setCiManagement( ci );
<a class="jxr_linenumber" name="L311" href="#L311">311</a> 
<a class="jxr_linenumber" name="L312" href="#L312">312</a>         IssueManagement tracker = <strong class="jxr_keyword">new</strong> IssueManagement();
<a class="jxr_linenumber" name="L313" href="#L313">313</a>         tracker.setSystem( <span class="jxr_string">"system"</span> );
<a class="jxr_linenumber" name="L314" href="#L314">314</a>         tracker.setUrl( <span class="jxr_string">"issue tracker url"</span> );
<a class="jxr_linenumber" name="L315" href="#L315">315</a>         metadata.setIssueManagement( tracker );
<a class="jxr_linenumber" name="L316" href="#L316">316</a> 
<a class="jxr_linenumber" name="L317" href="#L317">317</a>         metadata.setOrganization( TEST_ORGANIZATION );
<a class="jxr_linenumber" name="L318" href="#L318">318</a> 
<a class="jxr_linenumber" name="L319" href="#L319">319</a>         License l = <strong class="jxr_keyword">new</strong> License();
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         l.setName( <span class="jxr_string">"license name"</span> );
<a class="jxr_linenumber" name="L321" href="#L321">321</a>         l.setUrl( <span class="jxr_string">"license url"</span> );
<a class="jxr_linenumber" name="L322" href="#L322">322</a>         metadata.addLicense( l );
<a class="jxr_linenumber" name="L323" href="#L323">323</a> 
<a class="jxr_linenumber" name="L324" href="#L324">324</a>         Dependency d = <strong class="jxr_keyword">new</strong> Dependency();
<a class="jxr_linenumber" name="L325" href="#L325">325</a>         d.setArtifactId( <span class="jxr_string">"artifactId"</span> );
<a class="jxr_linenumber" name="L326" href="#L326">326</a>         d.setClassifier( <span class="jxr_string">"classifier"</span> );
<a class="jxr_linenumber" name="L327" href="#L327">327</a>         d.setGroupId( <span class="jxr_string">"groupId"</span> );
<a class="jxr_linenumber" name="L328" href="#L328">328</a>         d.setScope( <span class="jxr_string">"scope"</span> );
<a class="jxr_linenumber" name="L329" href="#L329">329</a>         d.setSystemPath( <span class="jxr_string">"system path"</span> );
<a class="jxr_linenumber" name="L330" href="#L330">330</a>         d.setType( <span class="jxr_string">"type"</span> );
<a class="jxr_linenumber" name="L331" href="#L331">331</a>         d.setVersion( <span class="jxr_string">"version"</span> );
<a class="jxr_linenumber" name="L332" href="#L332">332</a>         d.setOptional( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L333" href="#L333">333</a>         metadata.addDependency( d );
<a class="jxr_linenumber" name="L334" href="#L334">334</a> 
<a class="jxr_linenumber" name="L335" href="#L335">335</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L336" href="#L336">336</a> 
<a class="jxr_linenumber" name="L337" href="#L337">337</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L338" href="#L338">338</a>         assertEquals( TEST_PROJECT_VERSION, metadata.getId() );
<a class="jxr_linenumber" name="L339" href="#L339">339</a>         assertEquals( TEST_PROJECT_VERSION, metadata.getVersion() );
<a class="jxr_linenumber" name="L340" href="#L340">340</a>         assertEquals( <span class="jxr_string">"project name"</span>, metadata.getName() );
<a class="jxr_linenumber" name="L341" href="#L341">341</a>         assertEquals( <span class="jxr_string">"project description"</span>, metadata.getDescription() );
<a class="jxr_linenumber" name="L342" href="#L342">342</a>         assertEquals( <span class="jxr_string">"the url"</span>, metadata.getUrl() );
<a class="jxr_linenumber" name="L343" href="#L343">343</a> 
<a class="jxr_linenumber" name="L344" href="#L344">344</a>         assertEquals( <span class="jxr_string">"connection"</span>, metadata.getScm().getConnection() );
<a class="jxr_linenumber" name="L345" href="#L345">345</a>         assertEquals( <span class="jxr_string">"dev conn"</span>, metadata.getScm().getDeveloperConnection() );
<a class="jxr_linenumber" name="L346" href="#L346">346</a>         assertEquals( <span class="jxr_string">"url"</span>, metadata.getScm().getUrl() );
<a class="jxr_linenumber" name="L347" href="#L347">347</a> 
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         assertEquals( <span class="jxr_string">"system"</span>, metadata.getCiManagement().getSystem() );
<a class="jxr_linenumber" name="L349" href="#L349">349</a>         assertEquals( <span class="jxr_string">"ci url"</span>, metadata.getCiManagement().getUrl() );
<a class="jxr_linenumber" name="L350" href="#L350">350</a> 
<a class="jxr_linenumber" name="L351" href="#L351">351</a>         assertEquals( <span class="jxr_string">"system"</span>, metadata.getIssueManagement().getSystem() );
<a class="jxr_linenumber" name="L352" href="#L352">352</a>         assertEquals( <span class="jxr_string">"issue tracker url"</span>, metadata.getIssueManagement().getUrl() );
<a class="jxr_linenumber" name="L353" href="#L353">353</a> 
<a class="jxr_linenumber" name="L354" href="#L354">354</a>         assertEquals( TEST_ORGANIZATION.getName(), metadata.getOrganization().getName() );
<a class="jxr_linenumber" name="L355" href="#L355">355</a>         assertEquals( TEST_ORGANIZATION.getUrl(), metadata.getOrganization().getUrl() );
<a class="jxr_linenumber" name="L356" href="#L356">356</a> 
<a class="jxr_linenumber" name="L357" href="#L357">357</a>         assertEquals( 1, metadata.getMailingLists().size() );
<a class="jxr_linenumber" name="L358" href="#L358">358</a>         MailingList retrievedMailingList = metadata.getMailingLists().get( 0 );
<a class="jxr_linenumber" name="L359" href="#L359">359</a>         assertEquals( mailingList.getName(), retrievedMailingList.getName() );
<a class="jxr_linenumber" name="L360" href="#L360">360</a>         assertEquals( mailingList.getMainArchiveUrl(), retrievedMailingList.getMainArchiveUrl() );
<a class="jxr_linenumber" name="L361" href="#L361">361</a>         assertEquals( mailingList.getPostAddress(), retrievedMailingList.getPostAddress() );
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         assertEquals( mailingList.getSubscribeAddress(), retrievedMailingList.getSubscribeAddress() );
<a class="jxr_linenumber" name="L363" href="#L363">363</a>         assertEquals( mailingList.getUnsubscribeAddress(), retrievedMailingList.getUnsubscribeAddress() );
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         assertThat( retrievedMailingList.getOtherArchives() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L365" href="#L365">365</a>             .isNotNull() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L366" href="#L366">366</a>             .isNotEmpty() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L367" href="#L367">367</a>             .hasSize( 1 ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L368" href="#L368">368</a>             .contains( <span class="jxr_string">"other archive"</span> );
<a class="jxr_linenumber" name="L369" href="#L369">369</a> 
<a class="jxr_linenumber" name="L370" href="#L370">370</a>         assertEquals( 1, metadata.getLicenses().size() );
<a class="jxr_linenumber" name="L371" href="#L371">371</a>         l = metadata.getLicenses().get( 0 );
<a class="jxr_linenumber" name="L372" href="#L372">372</a>         assertEquals( <span class="jxr_string">"license name"</span>, l.getName() );
<a class="jxr_linenumber" name="L373" href="#L373">373</a>         assertEquals( <span class="jxr_string">"license url"</span>, l.getUrl() );
<a class="jxr_linenumber" name="L374" href="#L374">374</a> 
<a class="jxr_linenumber" name="L375" href="#L375">375</a>         assertEquals( 1, metadata.getDependencies().size() );
<a class="jxr_linenumber" name="L376" href="#L376">376</a>         d = metadata.getDependencies().get( 0 );
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         assertEquals( <span class="jxr_string">"artifactId"</span>, d.getArtifactId() );
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         assertEquals( <span class="jxr_string">"classifier"</span>, d.getClassifier() );
<a class="jxr_linenumber" name="L379" href="#L379">379</a>         assertEquals( <span class="jxr_string">"groupId"</span>, d.getGroupId() );
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         assertEquals( <span class="jxr_string">"scope"</span>, d.getScope() );
<a class="jxr_linenumber" name="L381" href="#L381">381</a>         assertEquals( <span class="jxr_string">"system path"</span>, d.getSystemPath() );
<a class="jxr_linenumber" name="L382" href="#L382">382</a>         assertEquals( <span class="jxr_string">"type"</span>, d.getType() );
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         assertEquals( <span class="jxr_string">"version"</span>, d.getVersion() );
<a class="jxr_linenumber" name="L384" href="#L384">384</a>         assertTrue( d.isOptional() );
<a class="jxr_linenumber" name="L385" href="#L385">385</a>     }
<a class="jxr_linenumber" name="L386" href="#L386">386</a> 
<a class="jxr_linenumber" name="L387" href="#L387">387</a>     @Test
<a class="jxr_linenumber" name="L388" href="#L388">388</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetRepositories()
<a class="jxr_linenumber" name="L389" href="#L389">389</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L390" href="#L390">390</a>     {
<a class="jxr_linenumber" name="L391" href="#L391">391</a>         <em class="jxr_comment">// currently set up this way so the behaviour of both the test and the mock config return the same repository</em>
<a class="jxr_linenumber" name="L392" href="#L392">392</a>         <em class="jxr_comment">// set as the File implementation just uses the config rather than the content</em>
<a class="jxr_linenumber" name="L393" href="#L393">393</a>         repository.updateNamespace( TEST_REPO_ID, <span class="jxr_string">"namespace"</span> );
<a class="jxr_linenumber" name="L394" href="#L394">394</a>         repository.updateNamespace( OTHER_REPO_ID, <span class="jxr_string">"namespace"</span> );
<a class="jxr_linenumber" name="L395" href="#L395">395</a> 
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         Collection&lt;String&gt; repositories = repository.getRepositories();
<a class="jxr_linenumber" name="L397" href="#L397">397</a> 
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         assertEquals( <span class="jxr_string">"repository.getRepositories() -&gt; "</span> + repositories, <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L399" href="#L399">399</a>                       Sets.newLinkedHashSet( TEST_REPO_ID, OTHER_REPO_ID ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L400" href="#L400">400</a>                       <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;String&gt;( repositories ) ); <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L401" href="#L401">401</a>     }
<a class="jxr_linenumber" name="L402" href="#L402">402</a> 
<a class="jxr_linenumber" name="L403" href="#L403">403</a>     @Test
<a class="jxr_linenumber" name="L404" href="#L404">404</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateProjectVersionMetadataIncomplete()
<a class="jxr_linenumber" name="L405" href="#L405">405</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L406" href="#L406">406</a>     {
<a class="jxr_linenumber" name="L407" href="#L407">407</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L408" href="#L408">408</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L409" href="#L409">409</a>         metadata.setIncomplete( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L410" href="#L410">410</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 
<a class="jxr_linenumber" name="L412" href="#L412">412</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L413" href="#L413">413</a>         assertEquals( <strong class="jxr_keyword">true</strong>, metadata.isIncomplete() );
<a class="jxr_linenumber" name="L414" href="#L414">414</a>         assertNull( metadata.getCiManagement() );
<a class="jxr_linenumber" name="L415" href="#L415">415</a>         assertNull( metadata.getScm() );
<a class="jxr_linenumber" name="L416" href="#L416">416</a>         assertNull( metadata.getIssueManagement() );
<a class="jxr_linenumber" name="L417" href="#L417">417</a>         assertNull( metadata.getOrganization() );
<a class="jxr_linenumber" name="L418" href="#L418">418</a>         assertNull( metadata.getDescription() );
<a class="jxr_linenumber" name="L419" href="#L419">419</a>         assertNull( metadata.getName() );
<a class="jxr_linenumber" name="L420" href="#L420">420</a>         assertEquals( TEST_PROJECT_VERSION, metadata.getId() );
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         assertEquals( TEST_PROJECT_VERSION, metadata.getVersion() );
<a class="jxr_linenumber" name="L422" href="#L422">422</a>         assertTrue( metadata.getMailingLists().isEmpty() );
<a class="jxr_linenumber" name="L423" href="#L423">423</a>         assertTrue( metadata.getLicenses().isEmpty() );
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         assertTrue( metadata.getDependencies().isEmpty() );
<a class="jxr_linenumber" name="L425" href="#L425">425</a>     }
<a class="jxr_linenumber" name="L426" href="#L426">426</a> 
<a class="jxr_linenumber" name="L427" href="#L427">427</a>     @Test
<a class="jxr_linenumber" name="L428" href="#L428">428</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateProjectVersionMetadataWithExistingFacets()
<a class="jxr_linenumber" name="L429" href="#L429">429</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L430" href="#L430">430</a>     {
<a class="jxr_linenumber" name="L431" href="#L431">431</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L432" href="#L432">432</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         MetadataFacet facet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( <span class="jxr_string">"baz"</span> );
<a class="jxr_linenumber" name="L434" href="#L434">434</a>         metadata.addFacet( facet );
<a class="jxr_linenumber" name="L435" href="#L435">435</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L436" href="#L436">436</a> 
<a class="jxr_linenumber" name="L437" href="#L437">437</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L438" href="#L438">438</a>         assertEquals( Collections.singleton( TEST_FACET_ID ), metadata.getFacetIds() );
<a class="jxr_linenumber" name="L439" href="#L439">439</a> 
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L441" href="#L441">441</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L442" href="#L442">442</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L443" href="#L443">443</a> 
<a class="jxr_linenumber" name="L444" href="#L444">444</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L445" href="#L445">445</a>         assertEquals( Collections.singleton( TEST_FACET_ID ), metadata.getFacetIds() );
<a class="jxr_linenumber" name="L446" href="#L446">446</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
<a class="jxr_linenumber" name="L447" href="#L447">447</a>         assertEquals( <span class="jxr_string">"baz"</span>, testFacet.getValue() );
<a class="jxr_linenumber" name="L448" href="#L448">448</a>     }
<a class="jxr_linenumber" name="L449" href="#L449">449</a> 
<a class="jxr_linenumber" name="L450" href="#L450">450</a>     @Test
<a class="jxr_linenumber" name="L451" href="#L451">451</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateProjectVersionMetadataWithNoExistingFacets()
<a class="jxr_linenumber" name="L452" href="#L452">452</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L453" href="#L453">453</a>     {
<a class="jxr_linenumber" name="L454" href="#L454">454</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L455" href="#L455">455</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L456" href="#L456">456</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L457" href="#L457">457</a> 
<a class="jxr_linenumber" name="L458" href="#L458">458</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         assertThat( metadata.getFacetIds() ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L461" href="#L461">461</a> 
<a class="jxr_linenumber" name="L462" href="#L462">462</a>         metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L463" href="#L463">463</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L464" href="#L464">464</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L465" href="#L465">465</a> 
<a class="jxr_linenumber" name="L466" href="#L466">466</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L467" href="#L467">467</a>         assertThat( metadata.getFacetIds() ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L468" href="#L468">468</a> 
<a class="jxr_linenumber" name="L469" href="#L469">469</a>     }
<a class="jxr_linenumber" name="L470" href="#L470">470</a> 
<a class="jxr_linenumber" name="L471" href="#L471">471</a>     @Test
<a class="jxr_linenumber" name="L472" href="#L472">472</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateProjectVersionMetadataWithExistingFacetsFacetPropertyWasRemoved()
<a class="jxr_linenumber" name="L473" href="#L473">473</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L474" href="#L474">474</a>     {
<a class="jxr_linenumber" name="L475" href="#L475">475</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L476" href="#L476">476</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L477" href="#L477">477</a> 
<a class="jxr_linenumber" name="L478" href="#L478">478</a>         Map&lt;String, String&gt; additionalProps = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L479" href="#L479">479</a>         additionalProps.put( <span class="jxr_string">"deleteKey"</span>, <span class="jxr_string">"deleteValue"</span> );
<a class="jxr_linenumber" name="L480" href="#L480">480</a> 
<a class="jxr_linenumber" name="L481" href="#L481">481</a>         MetadataFacet facet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_FACET_ID, <span class="jxr_string">"baz"</span>, additionalProps );
<a class="jxr_linenumber" name="L482" href="#L482">482</a>         metadata.addFacet( facet );
<a class="jxr_linenumber" name="L483" href="#L483">483</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L484" href="#L484">484</a> 
<a class="jxr_linenumber" name="L485" href="#L485">485</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L486" href="#L486">486</a> 
<a class="jxr_linenumber" name="L487" href="#L487">487</a>         assertThat( metadata.getFacetIds() ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_FACET_ID );
<a class="jxr_linenumber" name="L488" href="#L488">488</a> 
<a class="jxr_linenumber" name="L489" href="#L489">489</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
<a class="jxr_linenumber" name="L490" href="#L490">490</a>         Map&lt;String, String&gt; facetProperties = testFacet.toProperties();
<a class="jxr_linenumber" name="L491" href="#L491">491</a> 
<a class="jxr_linenumber" name="L492" href="#L492">492</a>         assertEquals( <span class="jxr_string">"deleteValue"</span>, facetProperties.get( <span class="jxr_string">"deleteKey"</span> ) );
<a class="jxr_linenumber" name="L493" href="#L493">493</a> 
<a class="jxr_linenumber" name="L494" href="#L494">494</a>         facetProperties.remove( <span class="jxr_string">"deleteKey"</span> );
<a class="jxr_linenumber" name="L495" href="#L495">495</a> 
<a class="jxr_linenumber" name="L496" href="#L496">496</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> newTestFacet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_FACET_ID, testFacet.getValue(), facetProperties );
<a class="jxr_linenumber" name="L497" href="#L497">497</a>         metadata.addFacet( newTestFacet );
<a class="jxr_linenumber" name="L498" href="#L498">498</a> 
<a class="jxr_linenumber" name="L499" href="#L499">499</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L500" href="#L500">500</a> 
<a class="jxr_linenumber" name="L501" href="#L501">501</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L502" href="#L502">502</a> 
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         assertThat( metadata.getFacetIds() ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_FACET_ID );
<a class="jxr_linenumber" name="L504" href="#L504">504</a>         testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
<a class="jxr_linenumber" name="L505" href="#L505">505</a>         assertFalse( testFacet.toProperties().containsKey( <span class="jxr_string">"deleteKey"</span> ) );
<a class="jxr_linenumber" name="L506" href="#L506">506</a>     }
<a class="jxr_linenumber" name="L507" href="#L507">507</a> 
<a class="jxr_linenumber" name="L508" href="#L508">508</a>     @Test
<a class="jxr_linenumber" name="L509" href="#L509">509</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsDoesntReturnProjectVersionMetadataFacets()
<a class="jxr_linenumber" name="L510" href="#L510">510</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L511" href="#L511">511</a>     {
<a class="jxr_linenumber" name="L512" href="#L512">512</a>         ProjectVersionMetadata versionMetadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L513" href="#L513">513</a>         versionMetadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L514" href="#L514">514</a> 
<a class="jxr_linenumber" name="L515" href="#L515">515</a>         MetadataFacet facet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_FACET_ID, <span class="jxr_string">"baz"</span> );
<a class="jxr_linenumber" name="L516" href="#L516">516</a>         versionMetadata.addFacet( facet );
<a class="jxr_linenumber" name="L517" href="#L517">517</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, versionMetadata );
<a class="jxr_linenumber" name="L518" href="#L518">518</a> 
<a class="jxr_linenumber" name="L519" href="#L519">519</a>         ArtifactMetadata artifactMetadata = createArtifact();
<a class="jxr_linenumber" name="L520" href="#L520">520</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifactMetadata );
<a class="jxr_linenumber" name="L521" href="#L521">521</a>         repository.save();
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 
<a class="jxr_linenumber" name="L523" href="#L523">523</a>         Collection&lt;ArtifactMetadata&gt; artifacts =
<a class="jxr_linenumber" name="L524" href="#L524">524</a>             repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L525" href="#L525">525</a>         assertEquals( Collections.singletonList( artifactMetadata ), <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( artifacts ) );
<a class="jxr_linenumber" name="L526" href="#L526">526</a> 
<a class="jxr_linenumber" name="L527" href="#L527">527</a>         artifacts = repository.getArtifacts( TEST_REPO_ID );
<a class="jxr_linenumber" name="L528" href="#L528">528</a>         assertEquals( Collections.singletonList( artifactMetadata ), <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( artifacts ) );
<a class="jxr_linenumber" name="L529" href="#L529">529</a> 
<a class="jxr_linenumber" name="L530" href="#L530">530</a>         artifacts = repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_SHA1 );
<a class="jxr_linenumber" name="L531" href="#L531">531</a>         assertEquals( Collections.singletonList( artifactMetadata ), <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( artifacts ) );
<a class="jxr_linenumber" name="L532" href="#L532">532</a> 
<a class="jxr_linenumber" name="L533" href="#L533">533</a>         artifacts = repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_MD5 );
<a class="jxr_linenumber" name="L534" href="#L534">534</a>         assertEquals( Collections.singletonList( artifactMetadata ), <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( artifacts ) );
<a class="jxr_linenumber" name="L535" href="#L535">535</a> 
<a class="jxr_linenumber" name="L536" href="#L536">536</a>         artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L537" href="#L537">537</a>         assertEquals( Collections.singletonList( artifactMetadata ), <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( artifacts ) );
<a class="jxr_linenumber" name="L538" href="#L538">538</a>     }
<a class="jxr_linenumber" name="L539" href="#L539">539</a> 
<a class="jxr_linenumber" name="L540" href="#L540">540</a>     @Test
<a class="jxr_linenumber" name="L541" href="#L541">541</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateArtifactMetadataWithExistingFacetsFacetPropertyWasRemoved()
<a class="jxr_linenumber" name="L542" href="#L542">542</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L543" href="#L543">543</a>     {
<a class="jxr_linenumber" name="L544" href="#L544">544</a>         ArtifactMetadata metadata = createArtifact();
<a class="jxr_linenumber" name="L545" href="#L545">545</a> 
<a class="jxr_linenumber" name="L546" href="#L546">546</a>         Map&lt;String, String&gt; additionalProps = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L547" href="#L547">547</a>         additionalProps.put( <span class="jxr_string">"deleteKey"</span>, <span class="jxr_string">"deleteValue"</span> );
<a class="jxr_linenumber" name="L548" href="#L548">548</a> 
<a class="jxr_linenumber" name="L549" href="#L549">549</a>         MetadataFacet facet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_FACET_ID, <span class="jxr_string">"baz"</span>, additionalProps );
<a class="jxr_linenumber" name="L550" href="#L550">550</a>         metadata.addFacet( facet );
<a class="jxr_linenumber" name="L551" href="#L551">551</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
<a class="jxr_linenumber" name="L552" href="#L552">552</a> 
<a class="jxr_linenumber" name="L553" href="#L553">553</a>         Collection&lt;ArtifactMetadata&gt; artifacts =
<a class="jxr_linenumber" name="L554" href="#L554">554</a>             repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L555" href="#L555">555</a> 
<a class="jxr_linenumber" name="L556" href="#L556">556</a>         assertThat( artifacts ).isNotNull().isNotEmpty().hasSize( 1 );
<a class="jxr_linenumber" name="L557" href="#L557">557</a>         metadata = artifacts.iterator().next();
<a class="jxr_linenumber" name="L558" href="#L558">558</a> 
<a class="jxr_linenumber" name="L559" href="#L559">559</a>         Collection&lt;String&gt; ids = metadata.getFacetIds();
<a class="jxr_linenumber" name="L560" href="#L560">560</a>         assertThat( ids ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_FACET_ID );
<a class="jxr_linenumber" name="L561" href="#L561">561</a> 
<a class="jxr_linenumber" name="L562" href="#L562">562</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
<a class="jxr_linenumber" name="L563" href="#L563">563</a>         Map&lt;String, String&gt; facetProperties = testFacet.toProperties();
<a class="jxr_linenumber" name="L564" href="#L564">564</a> 
<a class="jxr_linenumber" name="L565" href="#L565">565</a>         assertEquals( <span class="jxr_string">"deleteValue"</span>, facetProperties.get( <span class="jxr_string">"deleteKey"</span> ) );
<a class="jxr_linenumber" name="L566" href="#L566">566</a> 
<a class="jxr_linenumber" name="L567" href="#L567">567</a>         facetProperties.remove( <span class="jxr_string">"deleteKey"</span> );
<a class="jxr_linenumber" name="L568" href="#L568">568</a> 
<a class="jxr_linenumber" name="L569" href="#L569">569</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> newTestFacet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_FACET_ID, testFacet.getValue(), facetProperties );
<a class="jxr_linenumber" name="L570" href="#L570">570</a>         metadata.addFacet( newTestFacet );
<a class="jxr_linenumber" name="L571" href="#L571">571</a> 
<a class="jxr_linenumber" name="L572" href="#L572">572</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
<a class="jxr_linenumber" name="L573" href="#L573">573</a> 
<a class="jxr_linenumber" name="L574" href="#L574">574</a>         artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L575" href="#L575">575</a> 
<a class="jxr_linenumber" name="L576" href="#L576">576</a>         assertThat( artifacts ).isNotNull().isNotEmpty().hasSize( 1 );
<a class="jxr_linenumber" name="L577" href="#L577">577</a>         metadata = artifacts.iterator().next();
<a class="jxr_linenumber" name="L578" href="#L578">578</a> 
<a class="jxr_linenumber" name="L579" href="#L579">579</a>         ids = metadata.getFacetIds();
<a class="jxr_linenumber" name="L580" href="#L580">580</a>         assertThat( ids ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_FACET_ID );
<a class="jxr_linenumber" name="L581" href="#L581">581</a> 
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
<a class="jxr_linenumber" name="L583" href="#L583">583</a> 
<a class="jxr_linenumber" name="L584" href="#L584">584</a>         Map&lt;String, String&gt; props = testFacet.toProperties();
<a class="jxr_linenumber" name="L585" href="#L585">585</a>         assertThat( props ).isNotNull().doesNotContainKey( <span class="jxr_string">"deleteKey"</span> );
<a class="jxr_linenumber" name="L586" href="#L586">586</a>     }
<a class="jxr_linenumber" name="L587" href="#L587">587</a> 
<a class="jxr_linenumber" name="L588" href="#L588">588</a>     @Test
<a class="jxr_linenumber" name="L589" href="#L589">589</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateArtifactMetadataWithExistingFacets()
<a class="jxr_linenumber" name="L590" href="#L590">590</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L591" href="#L591">591</a>     {
<a class="jxr_linenumber" name="L592" href="#L592">592</a>         ArtifactMetadata metadata = createArtifact();
<a class="jxr_linenumber" name="L593" href="#L593">593</a>         MetadataFacet facet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( <span class="jxr_string">"baz"</span> );
<a class="jxr_linenumber" name="L594" href="#L594">594</a>         metadata.addFacet( facet );
<a class="jxr_linenumber" name="L595" href="#L595">595</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
<a class="jxr_linenumber" name="L596" href="#L596">596</a> 
<a class="jxr_linenumber" name="L597" href="#L597">597</a>         metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L598" href="#L598">598</a>                                             TEST_PROJECT_VERSION ).iterator().next();
<a class="jxr_linenumber" name="L599" href="#L599">599</a>         assertEquals( Collections.singleton( TEST_FACET_ID ), metadata.getFacetIds() );
<a class="jxr_linenumber" name="L600" href="#L600">600</a> 
<a class="jxr_linenumber" name="L601" href="#L601">601</a>         metadata = createArtifact();
<a class="jxr_linenumber" name="L602" href="#L602">602</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
<a class="jxr_linenumber" name="L603" href="#L603">603</a> 
<a class="jxr_linenumber" name="L604" href="#L604">604</a>         metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L605" href="#L605">605</a>                                             TEST_PROJECT_VERSION ).iterator().next();
<a class="jxr_linenumber" name="L606" href="#L606">606</a>         assertEquals( Collections.singleton( TEST_FACET_ID ), metadata.getFacetIds() );
<a class="jxr_linenumber" name="L607" href="#L607">607</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
<a class="jxr_linenumber" name="L608" href="#L608">608</a>         assertEquals( <span class="jxr_string">"baz"</span>, testFacet.getValue() );
<a class="jxr_linenumber" name="L609" href="#L609">609</a>     }
<a class="jxr_linenumber" name="L610" href="#L610">610</a> 
<a class="jxr_linenumber" name="L611" href="#L611">611</a>     @Test
<a class="jxr_linenumber" name="L612" href="#L612">612</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUpdateArtifactMetadataWithNoExistingFacets()
<a class="jxr_linenumber" name="L613" href="#L613">613</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L614" href="#L614">614</a>     {
<a class="jxr_linenumber" name="L615" href="#L615">615</a>         ArtifactMetadata metadata = createArtifact();
<a class="jxr_linenumber" name="L616" href="#L616">616</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
<a class="jxr_linenumber" name="L617" href="#L617">617</a> 
<a class="jxr_linenumber" name="L618" href="#L618">618</a>         metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L619" href="#L619">619</a>                                             TEST_PROJECT_VERSION ).iterator().next();
<a class="jxr_linenumber" name="L620" href="#L620">620</a>         assertEquals( Collections.&lt;String&gt;emptyList(), <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;( metadata.getFacetIds() ) );
<a class="jxr_linenumber" name="L621" href="#L621">621</a> 
<a class="jxr_linenumber" name="L622" href="#L622">622</a>         metadata = createArtifact();
<a class="jxr_linenumber" name="L623" href="#L623">623</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
<a class="jxr_linenumber" name="L624" href="#L624">624</a> 
<a class="jxr_linenumber" name="L625" href="#L625">625</a>         metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L626" href="#L626">626</a>                                             TEST_PROJECT_VERSION ).iterator().next();
<a class="jxr_linenumber" name="L627" href="#L627">627</a>         assertEquals( Collections.&lt;String&gt;emptyList(), <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;( metadata.getFacetIds() ) );
<a class="jxr_linenumber" name="L628" href="#L628">628</a>     }
<a class="jxr_linenumber" name="L629" href="#L629">629</a> 
<a class="jxr_linenumber" name="L630" href="#L630">630</a>     @Test
<a class="jxr_linenumber" name="L631" href="#L631">631</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMetadataFacet()
<a class="jxr_linenumber" name="L632" href="#L632">632</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L633" href="#L633">633</a>     {
<a class="jxr_linenumber" name="L634" href="#L634">634</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> TestMetadataFacet( TEST_VALUE ) );
<a class="jxr_linenumber" name="L635" href="#L635">635</a> 
<a class="jxr_linenumber" name="L636" href="#L636">636</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> test =
<a class="jxr_linenumber" name="L637" href="#L637">637</a>             (<a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>) repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME );
<a class="jxr_linenumber" name="L638" href="#L638">638</a> 
<a class="jxr_linenumber" name="L639" href="#L639">639</a>         assertEquals( <strong class="jxr_keyword">new</strong> TestMetadataFacet( TEST_VALUE ), test );
<a class="jxr_linenumber" name="L640" href="#L640">640</a>     }
<a class="jxr_linenumber" name="L641" href="#L641">641</a> 
<a class="jxr_linenumber" name="L642" href="#L642">642</a>     @Test
<a class="jxr_linenumber" name="L643" href="#L643">643</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMetadataFacetWhenEmpty()
<a class="jxr_linenumber" name="L644" href="#L644">644</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L645" href="#L645">645</a>     {
<a class="jxr_linenumber" name="L646" href="#L646">646</a>         assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
<a class="jxr_linenumber" name="L647" href="#L647">647</a>     }
<a class="jxr_linenumber" name="L648" href="#L648">648</a> 
<a class="jxr_linenumber" name="L649" href="#L649">649</a>     @Test
<a class="jxr_linenumber" name="L650" href="#L650">650</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMetadataFacetWhenUnknownName()
<a class="jxr_linenumber" name="L651" href="#L651">651</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L652" href="#L652">652</a>     {
<a class="jxr_linenumber" name="L653" href="#L653">653</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> TestMetadataFacet( TEST_VALUE ) );
<a class="jxr_linenumber" name="L654" href="#L654">654</a> 
<a class="jxr_linenumber" name="L655" href="#L655">655</a>         assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, UNKNOWN ) );
<a class="jxr_linenumber" name="L656" href="#L656">656</a>     }
<a class="jxr_linenumber" name="L657" href="#L657">657</a> 
<a class="jxr_linenumber" name="L658" href="#L658">658</a>     @Test
<a class="jxr_linenumber" name="L659" href="#L659">659</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMetadataFacetWhenDefaultValue()
<a class="jxr_linenumber" name="L660" href="#L660">660</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L661" href="#L661">661</a>     {
<a class="jxr_linenumber" name="L662" href="#L662">662</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> TestMetadataFacet( <strong class="jxr_keyword">null</strong> ) );
<a class="jxr_linenumber" name="L663" href="#L663">663</a> 
<a class="jxr_linenumber" name="L664" href="#L664">664</a>         MetadataFacet metadataFacet = repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME );
<a class="jxr_linenumber" name="L665" href="#L665">665</a> 
<a class="jxr_linenumber" name="L666" href="#L666">666</a>         assertEquals( <strong class="jxr_keyword">new</strong> TestMetadataFacet( TEST_METADATA_VALUE ), metadataFacet );
<a class="jxr_linenumber" name="L667" href="#L667">667</a>     }
<a class="jxr_linenumber" name="L668" href="#L668">668</a> 
<a class="jxr_linenumber" name="L669" href="#L669">669</a>     @Test
<a class="jxr_linenumber" name="L670" href="#L670">670</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMetadataFacetWhenUnknownFacetId()
<a class="jxr_linenumber" name="L671" href="#L671">671</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L672" href="#L672">672</a>     {
<a class="jxr_linenumber" name="L673" href="#L673">673</a>         assertNull( repository.getMetadataFacet( TEST_REPO_ID, UNKNOWN, TEST_NAME ) );
<a class="jxr_linenumber" name="L674" href="#L674">674</a>     }
<a class="jxr_linenumber" name="L675" href="#L675">675</a> 
<a class="jxr_linenumber" name="L676" href="#L676">676</a>     @Test
<a class="jxr_linenumber" name="L677" href="#L677">677</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMetadataFacets()
<a class="jxr_linenumber" name="L678" href="#L678">678</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L679" href="#L679">679</a>     {
<a class="jxr_linenumber" name="L680" href="#L680">680</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> TestMetadataFacet( TEST_VALUE ) );
<a class="jxr_linenumber" name="L681" href="#L681">681</a> 
<a class="jxr_linenumber" name="L682" href="#L682">682</a>         assertEquals( Collections.singletonList( TEST_NAME ),
<a class="jxr_linenumber" name="L683" href="#L683">683</a>                       repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ) );
<a class="jxr_linenumber" name="L684" href="#L684">684</a>     }
<a class="jxr_linenumber" name="L685" href="#L685">685</a> 
<a class="jxr_linenumber" name="L686" href="#L686">686</a>     @Test
<a class="jxr_linenumber" name="L687" href="#L687">687</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMetadataFacetsWhenEmpty()
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L689" href="#L689">689</a>     {
<a class="jxr_linenumber" name="L690" href="#L690">690</a> 
<a class="jxr_linenumber" name="L691" href="#L691">691</a>         List&lt;String&gt; facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L692" href="#L692">692</a>         assertTrue( facets.isEmpty() );
<a class="jxr_linenumber" name="L693" href="#L693">693</a>     }
<a class="jxr_linenumber" name="L694" href="#L694">694</a> 
<a class="jxr_linenumber" name="L695" href="#L695">695</a>     @Test
<a class="jxr_linenumber" name="L696" href="#L696">696</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveFacets()
<a class="jxr_linenumber" name="L697" href="#L697">697</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L698" href="#L698">698</a>     {
<a class="jxr_linenumber" name="L699" href="#L699">699</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> TestMetadataFacet( TEST_VALUE ) );
<a class="jxr_linenumber" name="L700" href="#L700">700</a> 
<a class="jxr_linenumber" name="L701" href="#L701">701</a>         List&lt;String&gt; facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L702" href="#L702">702</a>         assertFalse( facets.isEmpty() );
<a class="jxr_linenumber" name="L703" href="#L703">703</a> 
<a class="jxr_linenumber" name="L704" href="#L704">704</a>         repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L705" href="#L705">705</a> 
<a class="jxr_linenumber" name="L706" href="#L706">706</a>         facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L707" href="#L707">707</a>         assertTrue( facets.isEmpty() );
<a class="jxr_linenumber" name="L708" href="#L708">708</a>     }
<a class="jxr_linenumber" name="L709" href="#L709">709</a> 
<a class="jxr_linenumber" name="L710" href="#L710">710</a>     @Test
<a class="jxr_linenumber" name="L711" href="#L711">711</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveFacetsWhenEmpty()
<a class="jxr_linenumber" name="L712" href="#L712">712</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L713" href="#L713">713</a>     {
<a class="jxr_linenumber" name="L714" href="#L714">714</a>         List&lt;String&gt; facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L715" href="#L715">715</a>         assertTrue( facets.isEmpty() );
<a class="jxr_linenumber" name="L716" href="#L716">716</a> 
<a class="jxr_linenumber" name="L717" href="#L717">717</a>         repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L718" href="#L718">718</a> 
<a class="jxr_linenumber" name="L719" href="#L719">719</a>         facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L720" href="#L720">720</a>         assertTrue( facets.isEmpty() );
<a class="jxr_linenumber" name="L721" href="#L721">721</a>     }
<a class="jxr_linenumber" name="L722" href="#L722">722</a> 
<a class="jxr_linenumber" name="L723" href="#L723">723</a>     @Test
<a class="jxr_linenumber" name="L724" href="#L724">724</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveFacetsWhenUnknown()
<a class="jxr_linenumber" name="L725" href="#L725">725</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L726" href="#L726">726</a>     {
<a class="jxr_linenumber" name="L727" href="#L727">727</a>         <em class="jxr_comment">// testing no exception</em>
<a class="jxr_linenumber" name="L728" href="#L728">728</a>         repository.removeMetadataFacets( TEST_REPO_ID, UNKNOWN );
<a class="jxr_linenumber" name="L729" href="#L729">729</a>     }
<a class="jxr_linenumber" name="L730" href="#L730">730</a> 
<a class="jxr_linenumber" name="L731" href="#L731">731</a>     @Test
<a class="jxr_linenumber" name="L732" href="#L732">732</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveFacetWhenUnknown()
<a class="jxr_linenumber" name="L733" href="#L733">733</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L734" href="#L734">734</a>     {
<a class="jxr_linenumber" name="L735" href="#L735">735</a>         <em class="jxr_comment">// testing no exception</em>
<a class="jxr_linenumber" name="L736" href="#L736">736</a>         repository.removeMetadataFacet( TEST_REPO_ID, UNKNOWN, TEST_NAME );
<a class="jxr_linenumber" name="L737" href="#L737">737</a>     }
<a class="jxr_linenumber" name="L738" href="#L738">738</a> 
<a class="jxr_linenumber" name="L739" href="#L739">739</a>     @Test
<a class="jxr_linenumber" name="L740" href="#L740">740</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveFacet()
<a class="jxr_linenumber" name="L741" href="#L741">741</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L742" href="#L742">742</a>     {
<a class="jxr_linenumber" name="L743" href="#L743">743</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> metadataFacet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_VALUE );
<a class="jxr_linenumber" name="L744" href="#L744">744</a>         repository.addMetadataFacet( TEST_REPO_ID, metadataFacet );
<a class="jxr_linenumber" name="L745" href="#L745">745</a> 
<a class="jxr_linenumber" name="L746" href="#L746">746</a>         assertEquals( metadataFacet, repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
<a class="jxr_linenumber" name="L747" href="#L747">747</a>         List&lt;String&gt; facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L748" href="#L748">748</a>         assertFalse( facets.isEmpty() );
<a class="jxr_linenumber" name="L749" href="#L749">749</a> 
<a class="jxr_linenumber" name="L750" href="#L750">750</a>         repository.removeMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME );
<a class="jxr_linenumber" name="L751" href="#L751">751</a> 
<a class="jxr_linenumber" name="L752" href="#L752">752</a>         assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
<a class="jxr_linenumber" name="L753" href="#L753">753</a>         facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L754" href="#L754">754</a>         assertTrue( facets.isEmpty() );
<a class="jxr_linenumber" name="L755" href="#L755">755</a>     }
<a class="jxr_linenumber" name="L756" href="#L756">756</a> 
<a class="jxr_linenumber" name="L757" href="#L757">757</a>     @Test
<a class="jxr_linenumber" name="L758" href="#L758">758</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRemoveFacetWhenEmpty()
<a class="jxr_linenumber" name="L759" href="#L759">759</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L760" href="#L760">760</a>     {
<a class="jxr_linenumber" name="L761" href="#L761">761</a>         List&lt;String&gt; facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L762" href="#L762">762</a>         assertThat( facets ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L763" href="#L763">763</a>         assertThat( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ).isNull();
<a class="jxr_linenumber" name="L764" href="#L764">764</a> 
<a class="jxr_linenumber" name="L765" href="#L765">765</a>         repository.removeMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME );
<a class="jxr_linenumber" name="L766" href="#L766">766</a> 
<a class="jxr_linenumber" name="L767" href="#L767">767</a>         facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
<a class="jxr_linenumber" name="L768" href="#L768">768</a>         assertThat( facets ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L769" href="#L769">769</a>         assertThat( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ).isNull();
<a class="jxr_linenumber" name="L770" href="#L770">770</a>     }
<a class="jxr_linenumber" name="L771" href="#L771">771</a> 
<a class="jxr_linenumber" name="L772" href="#L772">772</a>     @Test
<a class="jxr_linenumber" name="L773" href="#L773">773</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> hasMetadataFacetStart()
<a class="jxr_linenumber" name="L774" href="#L774">774</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L775" href="#L775">775</a>     {
<a class="jxr_linenumber" name="L776" href="#L776">776</a>         assertFalse( repository.hasMetadataFacet( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() ) );
<a class="jxr_linenumber" name="L777" href="#L777">777</a> 
<a class="jxr_linenumber" name="L778" href="#L778">778</a>     }
<a class="jxr_linenumber" name="L779" href="#L779">779</a> 
<a class="jxr_linenumber" name="L780" href="#L780">780</a>     @Test
<a class="jxr_linenumber" name="L781" href="#L781">781</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> hasMetadataFacet()
<a class="jxr_linenumber" name="L782" href="#L782">782</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L783" href="#L783">783</a>     {
<a class="jxr_linenumber" name="L784" href="#L784">784</a> 
<a class="jxr_linenumber" name="L785" href="#L785">785</a>         assertFalse( repository.hasMetadataFacet( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() ) );
<a class="jxr_linenumber" name="L786" href="#L786">786</a> 
<a class="jxr_linenumber" name="L787" href="#L787">787</a>         Calendar cal = Calendar.getInstance();
<a class="jxr_linenumber" name="L788" href="#L788">788</a> 
<a class="jxr_linenumber" name="L789" href="#L789">789</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> KindOfRepositoryStatistics( <span class="jxr_string">"first"</span>, cal.getTime() ) );
<a class="jxr_linenumber" name="L790" href="#L790">790</a> 
<a class="jxr_linenumber" name="L791" href="#L791">791</a>         assertTrue( repository.hasMetadataFacet( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() ) );
<a class="jxr_linenumber" name="L792" href="#L792">792</a> 
<a class="jxr_linenumber" name="L793" href="#L793">793</a>         cal.add( Calendar.MINUTE, 2 );
<a class="jxr_linenumber" name="L794" href="#L794">794</a> 
<a class="jxr_linenumber" name="L795" href="#L795">795</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> KindOfRepositoryStatistics( <span class="jxr_string">"second"</span>, cal.getTime() ) );
<a class="jxr_linenumber" name="L796" href="#L796">796</a> 
<a class="jxr_linenumber" name="L797" href="#L797">797</a>         cal.add( Calendar.MINUTE, 2 );
<a class="jxr_linenumber" name="L798" href="#L798">798</a> 
<a class="jxr_linenumber" name="L799" href="#L799">799</a>         repository.addMetadataFacet( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> KindOfRepositoryStatistics( <span class="jxr_string">"third"</span>, cal.getTime() ) );
<a class="jxr_linenumber" name="L800" href="#L800">800</a> 
<a class="jxr_linenumber" name="L801" href="#L801">801</a>         List&lt;String&gt; facets = repository.getMetadataFacets( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() );
<a class="jxr_linenumber" name="L802" href="#L802">802</a> 
<a class="jxr_linenumber" name="L803" href="#L803">803</a>         assertThat( facets ).isNotNull().isNotEmpty().hasSize( 3 );
<a class="jxr_linenumber" name="L804" href="#L804">804</a> 
<a class="jxr_linenumber" name="L805" href="#L805">805</a>         assertTrue( repository.hasMetadataFacet( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() ) );
<a class="jxr_linenumber" name="L806" href="#L806">806</a> 
<a class="jxr_linenumber" name="L807" href="#L807">807</a>         repository.removeMetadataFacets( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() );
<a class="jxr_linenumber" name="L808" href="#L808">808</a> 
<a class="jxr_linenumber" name="L809" href="#L809">809</a>         assertFalse( repository.hasMetadataFacet( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() ) );
<a class="jxr_linenumber" name="L810" href="#L810">810</a> 
<a class="jxr_linenumber" name="L811" href="#L811">811</a>         facets = repository.getMetadataFacets( TEST_REPO_ID, KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName() );
<a class="jxr_linenumber" name="L812" href="#L812">812</a> 
<a class="jxr_linenumber" name="L813" href="#L813">813</a>         assertThat( facets ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L814" href="#L814">814</a> 
<a class="jxr_linenumber" name="L815" href="#L815">815</a>     }
<a class="jxr_linenumber" name="L816" href="#L816">816</a> 
<a class="jxr_linenumber" name="L817" href="#L817">817</a> 
<a class="jxr_linenumber" name="L818" href="#L818">818</a>     @Test
<a class="jxr_linenumber" name="L819" href="#L819">819</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifacts()
<a class="jxr_linenumber" name="L820" href="#L820">820</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L821" href="#L821">821</a>     {
<a class="jxr_linenumber" name="L822" href="#L822">822</a>         ArtifactMetadata artifact1 = createArtifact();
<a class="jxr_linenumber" name="L823" href="#L823">823</a>         ArtifactMetadata artifact2 = createArtifact( <span class="jxr_string">"pom"</span> );
<a class="jxr_linenumber" name="L824" href="#L824">824</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact1 );
<a class="jxr_linenumber" name="L825" href="#L825">825</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact2 );
<a class="jxr_linenumber" name="L826" href="#L826">826</a> 
<a class="jxr_linenumber" name="L827" href="#L827">827</a>         Collection&lt;ArtifactMetadata&gt; artifacts =
<a class="jxr_linenumber" name="L828" href="#L828">828</a>             repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L829" href="#L829">829</a>         ArrayList&lt;ArtifactMetadata&gt; actual = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( artifacts );
<a class="jxr_linenumber" name="L830" href="#L830">830</a>         Collections.sort( actual, <strong class="jxr_keyword">new</strong> Comparator&lt;ArtifactMetadata&gt;()
<a class="jxr_linenumber" name="L831" href="#L831">831</a>         {
<a class="jxr_linenumber" name="L832" href="#L832">832</a>             @Override
<a class="jxr_linenumber" name="L833" href="#L833">833</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare( ArtifactMetadata o1, ArtifactMetadata o2 )
<a class="jxr_linenumber" name="L834" href="#L834">834</a>             {
<a class="jxr_linenumber" name="L835" href="#L835">835</a>                 <strong class="jxr_keyword">return</strong> o1.getId().compareTo( o2.getId() );
<a class="jxr_linenumber" name="L836" href="#L836">836</a>             }
<a class="jxr_linenumber" name="L837" href="#L837">837</a>         } );
<a class="jxr_linenumber" name="L838" href="#L838">838</a>         assertEquals( Arrays.asList( artifact1, artifact2 ), actual );
<a class="jxr_linenumber" name="L839" href="#L839">839</a>     }
<a class="jxr_linenumber" name="L840" href="#L840">840</a> 
<a class="jxr_linenumber" name="L841" href="#L841">841</a>     @Test
<a class="jxr_linenumber" name="L842" href="#L842">842</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactVersions()
<a class="jxr_linenumber" name="L843" href="#L843">843</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L844" href="#L844">844</a>     {
<a class="jxr_linenumber" name="L845" href="#L845">845</a>         ArtifactMetadata artifact1 = createArtifact();
<a class="jxr_linenumber" name="L846" href="#L846">846</a>         String version1 = <span class="jxr_string">"1.0-20091212.012345-1"</span>;
<a class="jxr_linenumber" name="L847" href="#L847">847</a>         artifact1.setId( artifact1.getProject() + <span class="jxr_string">"-"</span> + version1 + <span class="jxr_string">".jar"</span> );
<a class="jxr_linenumber" name="L848" href="#L848">848</a>         artifact1.setVersion( version1 );
<a class="jxr_linenumber" name="L849" href="#L849">849</a>         ArtifactMetadata artifact2 = createArtifact();
<a class="jxr_linenumber" name="L850" href="#L850">850</a>         String version2 = <span class="jxr_string">"1.0-20091212.123456-2"</span>;
<a class="jxr_linenumber" name="L851" href="#L851">851</a>         artifact2.setId( artifact2.getProject() + <span class="jxr_string">"-"</span> + version2 + <span class="jxr_string">".jar"</span> );
<a class="jxr_linenumber" name="L852" href="#L852">852</a>         artifact2.setVersion( version2 );
<a class="jxr_linenumber" name="L853" href="#L853">853</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact1 );
<a class="jxr_linenumber" name="L854" href="#L854">854</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact2 );
<a class="jxr_linenumber" name="L855" href="#L855">855</a> 
<a class="jxr_linenumber" name="L856" href="#L856">856</a>         Collection&lt;String&gt; versions =
<a class="jxr_linenumber" name="L857" href="#L857">857</a>             repository.getArtifactVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L858" href="#L858">858</a> 
<a class="jxr_linenumber" name="L859" href="#L859">859</a>         assertThat( versions ).isNotNull().isNotEmpty().contains( version1, version2 );
<a class="jxr_linenumber" name="L860" href="#L860">860</a>     }
<a class="jxr_linenumber" name="L861" href="#L861">861</a> 
<a class="jxr_linenumber" name="L862" href="#L862">862</a>     @Test
<a class="jxr_linenumber" name="L863" href="#L863">863</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactVersionsMultipleArtifactsSingleVersion()
<a class="jxr_linenumber" name="L864" href="#L864">864</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L865" href="#L865">865</a>     {
<a class="jxr_linenumber" name="L866" href="#L866">866</a>         ArtifactMetadata artifact1 = createArtifact();
<a class="jxr_linenumber" name="L867" href="#L867">867</a>         artifact1.setId( TEST_PROJECT + <span class="jxr_string">"-"</span> + TEST_PROJECT_VERSION + <span class="jxr_string">".jar"</span> );
<a class="jxr_linenumber" name="L868" href="#L868">868</a>         ArtifactMetadata artifact2 = createArtifact();
<a class="jxr_linenumber" name="L869" href="#L869">869</a>         artifact2.setId( TEST_PROJECT + <span class="jxr_string">"-"</span> + TEST_PROJECT_VERSION + <span class="jxr_string">"-sources.jar"</span> );
<a class="jxr_linenumber" name="L870" href="#L870">870</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact1 );
<a class="jxr_linenumber" name="L871" href="#L871">871</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact2 );
<a class="jxr_linenumber" name="L872" href="#L872">872</a> 
<a class="jxr_linenumber" name="L873" href="#L873">873</a>         Collection&lt;String&gt; versions =
<a class="jxr_linenumber" name="L874" href="#L874">874</a>             repository.getArtifactVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L875" href="#L875">875</a> 
<a class="jxr_linenumber" name="L876" href="#L876">876</a>         assertThat( versions ).isNotNull().isNotEmpty().hasSize( 1 ).containsExactly( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L877" href="#L877">877</a> 
<a class="jxr_linenumber" name="L878" href="#L878">878</a>     }
<a class="jxr_linenumber" name="L879" href="#L879">879</a> 
<a class="jxr_linenumber" name="L880" href="#L880">880</a>     @Test
<a class="jxr_linenumber" name="L881" href="#L881">881</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeOpen()
<a class="jxr_linenumber" name="L882" href="#L882">882</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L883" href="#L883">883</a>     {
<a class="jxr_linenumber" name="L884" href="#L884">884</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L885" href="#L885">885</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L886" href="#L886">886</a>         repository.save();
<a class="jxr_linenumber" name="L887" href="#L887">887</a> 
<a class="jxr_linenumber" name="L888" href="#L888">888</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L889" href="#L889">889</a> 
<a class="jxr_linenumber" name="L890" href="#L890">890</a>         assertEquals( Collections.singletonList( artifact ), artifacts );
<a class="jxr_linenumber" name="L891" href="#L891">891</a>     }
<a class="jxr_linenumber" name="L892" href="#L892">892</a> 
<a class="jxr_linenumber" name="L893" href="#L893">893</a>     @Test
<a class="jxr_linenumber" name="L894" href="#L894">894</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeSparseNamespace()
<a class="jxr_linenumber" name="L895" href="#L895">895</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L896" href="#L896">896</a>     {
<a class="jxr_linenumber" name="L897" href="#L897">897</a>         String namespace = <span class="jxr_string">"org.apache.archiva"</span>;
<a class="jxr_linenumber" name="L898" href="#L898">898</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L899" href="#L899">899</a>         artifact.setNamespace( namespace );
<a class="jxr_linenumber" name="L900" href="#L900">900</a>         repository.updateArtifact( TEST_REPO_ID, namespace, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L901" href="#L901">901</a>         repository.save();
<a class="jxr_linenumber" name="L902" href="#L902">902</a> 
<a class="jxr_linenumber" name="L903" href="#L903">903</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L904" href="#L904">904</a> 
<a class="jxr_linenumber" name="L905" href="#L905">905</a>         assertEquals( Collections.singletonList( artifact ), artifacts );
<a class="jxr_linenumber" name="L906" href="#L906">906</a>     }
<a class="jxr_linenumber" name="L907" href="#L907">907</a> 
<a class="jxr_linenumber" name="L908" href="#L908">908</a>     @Test
<a class="jxr_linenumber" name="L909" href="#L909">909</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeLowerBound()
<a class="jxr_linenumber" name="L910" href="#L910">910</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L911" href="#L911">911</a>     {
<a class="jxr_linenumber" name="L912" href="#L912">912</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L913" href="#L913">913</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L914" href="#L914">914</a>         repository.save();
<a class="jxr_linenumber" name="L915" href="#L915">915</a> 
<a class="jxr_linenumber" name="L916" href="#L916">916</a>         Date date = <strong class="jxr_keyword">new</strong> Date( artifact.getWhenGathered().getTime() - 10000 );
<a class="jxr_linenumber" name="L917" href="#L917">917</a> 
<a class="jxr_linenumber" name="L918" href="#L918">918</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, date, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L919" href="#L919">919</a> 
<a class="jxr_linenumber" name="L920" href="#L920">920</a>         assertEquals( Collections.singletonList( artifact ), artifacts );
<a class="jxr_linenumber" name="L921" href="#L921">921</a>     }
<a class="jxr_linenumber" name="L922" href="#L922">922</a> 
<a class="jxr_linenumber" name="L923" href="#L923">923</a>     @Test
<a class="jxr_linenumber" name="L924" href="#L924">924</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeLowerBoundOutOfRange()
<a class="jxr_linenumber" name="L925" href="#L925">925</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L926" href="#L926">926</a>     {
<a class="jxr_linenumber" name="L927" href="#L927">927</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L928" href="#L928">928</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L929" href="#L929">929</a> 
<a class="jxr_linenumber" name="L930" href="#L930">930</a>         Date date = <strong class="jxr_keyword">new</strong> Date( artifact.getWhenGathered().getTime() + 10000 );
<a class="jxr_linenumber" name="L931" href="#L931">931</a> 
<a class="jxr_linenumber" name="L932" href="#L932">932</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, date, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L933" href="#L933">933</a> 
<a class="jxr_linenumber" name="L934" href="#L934">934</a>         assertThat( artifacts ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L935" href="#L935">935</a>     }
<a class="jxr_linenumber" name="L936" href="#L936">936</a> 
<a class="jxr_linenumber" name="L937" href="#L937">937</a>     @Test
<a class="jxr_linenumber" name="L938" href="#L938">938</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeLowerAndUpperBound()
<a class="jxr_linenumber" name="L939" href="#L939">939</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L940" href="#L940">940</a>     {
<a class="jxr_linenumber" name="L941" href="#L941">941</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L942" href="#L942">942</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L943" href="#L943">943</a>         repository.save();
<a class="jxr_linenumber" name="L944" href="#L944">944</a> 
<a class="jxr_linenumber" name="L945" href="#L945">945</a>         Date lower = <strong class="jxr_keyword">new</strong> Date( artifact.getWhenGathered().getTime() - 10000 );
<a class="jxr_linenumber" name="L946" href="#L946">946</a>         Date upper = <strong class="jxr_keyword">new</strong> Date( artifact.getWhenGathered().getTime() + 10000 );
<a class="jxr_linenumber" name="L947" href="#L947">947</a> 
<a class="jxr_linenumber" name="L948" href="#L948">948</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, lower, upper );
<a class="jxr_linenumber" name="L949" href="#L949">949</a> 
<a class="jxr_linenumber" name="L950" href="#L950">950</a>         assertEquals( Collections.singletonList( artifact ), artifacts );
<a class="jxr_linenumber" name="L951" href="#L951">951</a>     }
<a class="jxr_linenumber" name="L952" href="#L952">952</a> 
<a class="jxr_linenumber" name="L953" href="#L953">953</a>     @Test
<a class="jxr_linenumber" name="L954" href="#L954">954</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeUpperBound()
<a class="jxr_linenumber" name="L955" href="#L955">955</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L956" href="#L956">956</a>     {
<a class="jxr_linenumber" name="L957" href="#L957">957</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L958" href="#L958">958</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L959" href="#L959">959</a>         repository.save();
<a class="jxr_linenumber" name="L960" href="#L960">960</a> 
<a class="jxr_linenumber" name="L961" href="#L961">961</a>         Date upper = <strong class="jxr_keyword">new</strong> Date( artifact.getWhenGathered().getTime() + 10000 );
<a class="jxr_linenumber" name="L962" href="#L962">962</a> 
<a class="jxr_linenumber" name="L963" href="#L963">963</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, <strong class="jxr_keyword">null</strong>, upper );
<a class="jxr_linenumber" name="L964" href="#L964">964</a> 
<a class="jxr_linenumber" name="L965" href="#L965">965</a>         assertEquals( Collections.singletonList( artifact ), artifacts );
<a class="jxr_linenumber" name="L966" href="#L966">966</a>     }
<a class="jxr_linenumber" name="L967" href="#L967">967</a> 
<a class="jxr_linenumber" name="L968" href="#L968">968</a>     @Test
<a class="jxr_linenumber" name="L969" href="#L969">969</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeUpperBoundOutOfRange()
<a class="jxr_linenumber" name="L970" href="#L970">970</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L971" href="#L971">971</a>     {
<a class="jxr_linenumber" name="L972" href="#L972">972</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L973" href="#L973">973</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L974" href="#L974">974</a>         repository.save();
<a class="jxr_linenumber" name="L975" href="#L975">975</a> 
<a class="jxr_linenumber" name="L976" href="#L976">976</a>         Date upper = <strong class="jxr_keyword">new</strong> Date( artifact.getWhenGathered().getTime() - 10000 );
<a class="jxr_linenumber" name="L977" href="#L977">977</a> 
<a class="jxr_linenumber" name="L978" href="#L978">978</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, <strong class="jxr_keyword">null</strong>, upper );
<a class="jxr_linenumber" name="L979" href="#L979">979</a> 
<a class="jxr_linenumber" name="L980" href="#L980">980</a>         assertThat( artifacts ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L981" href="#L981">981</a>     }
<a class="jxr_linenumber" name="L982" href="#L982">982</a> 
<a class="jxr_linenumber" name="L983" href="#L983">983</a>     @Test
<a class="jxr_linenumber" name="L984" href="#L984">984</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByRepoId()
<a class="jxr_linenumber" name="L985" href="#L985">985</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L986" href="#L986">986</a>     {
<a class="jxr_linenumber" name="L987" href="#L987">987</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L988" href="#L988">988</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L989" href="#L989">989</a>         repository.save();
<a class="jxr_linenumber" name="L990" href="#L990">990</a> 
<a class="jxr_linenumber" name="L991" href="#L991">991</a>         List&lt;ArtifactMetadata&gt; artifacts = repository.getArtifacts( TEST_REPO_ID );
<a class="jxr_linenumber" name="L992" href="#L992">992</a> 
<a class="jxr_linenumber" name="L993" href="#L993">993</a>         assertEquals( Collections.singletonList( artifact ), artifacts );
<a class="jxr_linenumber" name="L994" href="#L994">994</a>     }
<a class="jxr_linenumber" name="L995" href="#L995">995</a> 
<a class="jxr_linenumber" name="L996" href="#L996">996</a>     @Test
<a class="jxr_linenumber" name="L997" href="#L997">997</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByRepoIdMultipleCopies()
<a class="jxr_linenumber" name="L998" href="#L998">998</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L999" href="#L999">999</a>     {
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a> 
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a>         ArtifactMetadata secondArtifact = createArtifact();
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>         secondArtifact.setRepositoryId( OTHER_REPO_ID );
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>         repository.updateArtifact( OTHER_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, secondArtifact );
<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>         repository.save();
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a> 
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a>         <em class="jxr_comment">// test it restricts to the appropriate repository</em>
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a>         assertEquals( Collections.singletonList( artifact ), repository.getArtifacts( TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a>         assertEquals( Collections.singletonList( secondArtifact ), repository.getArtifacts( OTHER_REPO_ID ) );
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a>     }
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a> 
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a>     @Test
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByDateRangeMultipleCopies()
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a>     {
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a> 
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a>         ArtifactMetadata secondArtifact = createArtifact();
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a>         secondArtifact.setRepositoryId( OTHER_REPO_ID );
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a>         repository.updateArtifact( OTHER_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, secondArtifact );
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a>         repository.save();
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a> 
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a>         <em class="jxr_comment">// test it restricts to the appropriate repository</em>
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a>         assertEquals( Collections.singletonList( artifact ),
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a>                       repository.getArtifactsByDateRange( TEST_REPO_ID, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> ) );
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a>         assertEquals( Collections.singletonList( secondArtifact ),
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a>                       repository.getArtifactsByDateRange( OTHER_REPO_ID, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> ) );
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a>     }
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a> 
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a>     @Test
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByChecksumMultipleCopies()
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a>     {
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a> 
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a>         ArtifactMetadata secondArtifact = createArtifact();
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a>         secondArtifact.setRepositoryId( OTHER_REPO_ID );
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a>         repository.updateArtifact( OTHER_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, secondArtifact );
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a>         repository.save();
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a> 
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a>         <em class="jxr_comment">// test it restricts to the appropriate repository</em>
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a>         assertEquals( Collections.singletonList( artifact ),
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</a>                       <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_SHA1 ) ) );
<a class="jxr_linenumber" name="L1047" href="#L1047">1047</a>         assertEquals( Collections.singletonList( secondArtifact ), <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(
<a class="jxr_linenumber" name="L1048" href="#L1048">1048</a>             repository.getArtifactsByChecksum( OTHER_REPO_ID, TEST_SHA1 ) ) );
<a class="jxr_linenumber" name="L1049" href="#L1049">1049</a>         assertEquals( Collections.singletonList( artifact ),
<a class="jxr_linenumber" name="L1050" href="#L1050">1050</a>                       <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_MD5 ) ) );
<a class="jxr_linenumber" name="L1051" href="#L1051">1051</a>         assertEquals( Collections.singletonList( secondArtifact ),
<a class="jxr_linenumber" name="L1052" href="#L1052">1052</a>                       <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( OTHER_REPO_ID, TEST_MD5 ) ) );
<a class="jxr_linenumber" name="L1053" href="#L1053">1053</a>     }
<a class="jxr_linenumber" name="L1054" href="#L1054">1054</a> 
<a class="jxr_linenumber" name="L1055" href="#L1055">1055</a>     @Test
<a class="jxr_linenumber" name="L1056" href="#L1056">1056</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetNamespacesWithSparseDepth()
<a class="jxr_linenumber" name="L1057" href="#L1057">1057</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1058" href="#L1058">1058</a>     {
<a class="jxr_linenumber" name="L1059" href="#L1059">1059</a>         repository.updateNamespace( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven.shared"</span> );
<a class="jxr_linenumber" name="L1060" href="#L1060">1060</a> 
<a class="jxr_linenumber" name="L1061" href="#L1061">1061</a>         Collection&lt;String&gt; namespaces = repository.getRootNamespaces( TEST_REPO_ID );
<a class="jxr_linenumber" name="L1062" href="#L1062">1062</a> 
<a class="jxr_linenumber" name="L1063" href="#L1063">1063</a>         assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( <span class="jxr_string">"org"</span> );
<a class="jxr_linenumber" name="L1064" href="#L1064">1064</a> 
<a class="jxr_linenumber" name="L1065" href="#L1065">1065</a>         namespaces = repository.getNamespaces( TEST_REPO_ID, <span class="jxr_string">"org"</span> );
<a class="jxr_linenumber" name="L1066" href="#L1066">1066</a>         assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( <span class="jxr_string">"apache"</span> );
<a class="jxr_linenumber" name="L1067" href="#L1067">1067</a> 
<a class="jxr_linenumber" name="L1068" href="#L1068">1068</a>         namespaces = repository.getNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.apache"</span> );
<a class="jxr_linenumber" name="L1069" href="#L1069">1069</a>         assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( <span class="jxr_string">"maven"</span> );
<a class="jxr_linenumber" name="L1070" href="#L1070">1070</a> 
<a class="jxr_linenumber" name="L1071" href="#L1071">1071</a>         namespaces = repository.getNamespaces( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven"</span> );
<a class="jxr_linenumber" name="L1072" href="#L1072">1072</a>         assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( <span class="jxr_string">"shared"</span> );
<a class="jxr_linenumber" name="L1073" href="#L1073">1073</a>     }
<a class="jxr_linenumber" name="L1074" href="#L1074">1074</a> 
<a class="jxr_linenumber" name="L1075" href="#L1075">1075</a>     @Test
<a class="jxr_linenumber" name="L1076" href="#L1076">1076</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetNamespacesWithProjectsPresent()
<a class="jxr_linenumber" name="L1077" href="#L1077">1077</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1078" href="#L1078">1078</a>     {
<a class="jxr_linenumber" name="L1079" href="#L1079">1079</a>         String namespace = <span class="jxr_string">"org.apache.maven.shared"</span>;
<a class="jxr_linenumber" name="L1080" href="#L1080">1080</a>         repository.updateNamespace( TEST_REPO_ID, namespace );
<a class="jxr_linenumber" name="L1081" href="#L1081">1081</a> 
<a class="jxr_linenumber" name="L1082" href="#L1082">1082</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L1083" href="#L1083">1083</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1084" href="#L1084">1084</a>         repository.updateProjectVersion( TEST_REPO_ID, namespace, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L1085" href="#L1085">1085</a> 
<a class="jxr_linenumber" name="L1086" href="#L1086">1086</a>         Collection&lt;String&gt; namespaces = repository.getNamespaces( TEST_REPO_ID, namespace );
<a class="jxr_linenumber" name="L1087" href="#L1087">1087</a> 
<a class="jxr_linenumber" name="L1088" href="#L1088">1088</a>         assertThat( namespaces ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1089" href="#L1089">1089</a> 
<a class="jxr_linenumber" name="L1090" href="#L1090">1090</a>     }
<a class="jxr_linenumber" name="L1091" href="#L1091">1091</a> 
<a class="jxr_linenumber" name="L1092" href="#L1092">1092</a>     @Test
<a class="jxr_linenumber" name="L1093" href="#L1093">1093</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectsWithOtherNamespacesPresent()
<a class="jxr_linenumber" name="L1094" href="#L1094">1094</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1095" href="#L1095">1095</a>     {
<a class="jxr_linenumber" name="L1096" href="#L1096">1096</a>         ProjectMetadata projectMetadata = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L1097" href="#L1097">1097</a>         projectMetadata.setId( TEST_PROJECT );
<a class="jxr_linenumber" name="L1098" href="#L1098">1098</a>         projectMetadata.setNamespace( <span class="jxr_string">"org.apache.maven"</span> );
<a class="jxr_linenumber" name="L1099" href="#L1099">1099</a>         repository.updateProject( TEST_REPO_ID, projectMetadata );
<a class="jxr_linenumber" name="L1100" href="#L1100">1100</a> 
<a class="jxr_linenumber" name="L1101" href="#L1101">1101</a>         repository.updateNamespace( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven.shared"</span> );
<a class="jxr_linenumber" name="L1102" href="#L1102">1102</a> 
<a class="jxr_linenumber" name="L1103" href="#L1103">1103</a>         Collection&lt;String&gt; projects = repository.getProjects( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven"</span> );
<a class="jxr_linenumber" name="L1104" href="#L1104">1104</a> 
<a class="jxr_linenumber" name="L1105" href="#L1105">1105</a>         assertThat( projects ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_PROJECT );
<a class="jxr_linenumber" name="L1106" href="#L1106">1106</a>     }
<a class="jxr_linenumber" name="L1107" href="#L1107">1107</a> 
<a class="jxr_linenumber" name="L1108" href="#L1108">1108</a>     @Test
<a class="jxr_linenumber" name="L1109" href="#L1109">1109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetProjectVersionsWithOtherNamespacesPresent()
<a class="jxr_linenumber" name="L1110" href="#L1110">1110</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1111" href="#L1111">1111</a>     {
<a class="jxr_linenumber" name="L1112" href="#L1112">1112</a>         <em class="jxr_comment">// an unusual case but technically possible where a project namespace matches another project's name</em>
<a class="jxr_linenumber" name="L1113" href="#L1113">1113</a> 
<a class="jxr_linenumber" name="L1114" href="#L1114">1114</a>         ProjectVersionMetadata versionMetadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L1115" href="#L1115">1115</a>         versionMetadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1116" href="#L1116">1116</a>         repository.updateProjectVersion( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven"</span>, TEST_PROJECT, versionMetadata );
<a class="jxr_linenumber" name="L1117" href="#L1117">1117</a> 
<a class="jxr_linenumber" name="L1118" href="#L1118">1118</a>         repository.updateProjectVersion( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven."</span> + TEST_PROJECT, <span class="jxr_string">"other-project"</span>,
<a class="jxr_linenumber" name="L1119" href="#L1119">1119</a>                                          versionMetadata );
<a class="jxr_linenumber" name="L1120" href="#L1120">1120</a> 
<a class="jxr_linenumber" name="L1121" href="#L1121">1121</a>         Collection&lt;String&gt; versions =
<a class="jxr_linenumber" name="L1122" href="#L1122">1122</a>             repository.getProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven."</span> + TEST_PROJECT, <span class="jxr_string">"other-project"</span> );
<a class="jxr_linenumber" name="L1123" href="#L1123">1123</a>         assertThat( versions ).isNotNull().isNotEmpty().contains( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1124" href="#L1124">1124</a> 
<a class="jxr_linenumber" name="L1125" href="#L1125">1125</a>         versions = repository.getProjectVersions( TEST_REPO_ID, <span class="jxr_string">"org.apache.maven"</span>, TEST_PROJECT );
<a class="jxr_linenumber" name="L1126" href="#L1126">1126</a> 
<a class="jxr_linenumber" name="L1127" href="#L1127">1127</a>         assertThat( versions ).isNotNull().isNotEmpty().contains( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1128" href="#L1128">1128</a>     }
<a class="jxr_linenumber" name="L1129" href="#L1129">1129</a> 
<a class="jxr_linenumber" name="L1130" href="#L1130">1130</a>     @Test
<a class="jxr_linenumber" name="L1131" href="#L1131">1131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByChecksumSingleResultMd5()
<a class="jxr_linenumber" name="L1132" href="#L1132">1132</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1133" href="#L1133">1133</a>     {
<a class="jxr_linenumber" name="L1134" href="#L1134">1134</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1135" href="#L1135">1135</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1136" href="#L1136">1136</a>         repository.save();
<a class="jxr_linenumber" name="L1137" href="#L1137">1137</a> 
<a class="jxr_linenumber" name="L1138" href="#L1138">1138</a>         assertEquals( Collections.singletonList( artifact ),
<a class="jxr_linenumber" name="L1139" href="#L1139">1139</a>                       <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_MD5 ) ) );
<a class="jxr_linenumber" name="L1140" href="#L1140">1140</a>     }
<a class="jxr_linenumber" name="L1141" href="#L1141">1141</a> 
<a class="jxr_linenumber" name="L1142" href="#L1142">1142</a>     @Test
<a class="jxr_linenumber" name="L1143" href="#L1143">1143</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByChecksumSingleResultSha1()
<a class="jxr_linenumber" name="L1144" href="#L1144">1144</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1145" href="#L1145">1145</a>     {
<a class="jxr_linenumber" name="L1146" href="#L1146">1146</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1147" href="#L1147">1147</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1148" href="#L1148">1148</a>         repository.save();
<a class="jxr_linenumber" name="L1149" href="#L1149">1149</a> 
<a class="jxr_linenumber" name="L1150" href="#L1150">1150</a>         assertEquals( Collections.singletonList( artifact ),
<a class="jxr_linenumber" name="L1151" href="#L1151">1151</a>                       <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_SHA1 ) ) );
<a class="jxr_linenumber" name="L1152" href="#L1152">1152</a>     }
<a class="jxr_linenumber" name="L1153" href="#L1153">1153</a> 
<a class="jxr_linenumber" name="L1154" href="#L1154">1154</a>     @Test
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByChecksumDeepNamespace()
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a>     {
<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a>         String namespace = <span class="jxr_string">"multi.level.ns"</span>;
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a>         artifact.setNamespace( namespace );
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a>         repository.updateArtifact( TEST_REPO_ID, namespace, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1162" href="#L1162">1162</a>         repository.save();
<a class="jxr_linenumber" name="L1163" href="#L1163">1163</a> 
<a class="jxr_linenumber" name="L1164" href="#L1164">1164</a>         assertEquals( Collections.singletonList( artifact ),
<a class="jxr_linenumber" name="L1165" href="#L1165">1165</a>                       <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_SHA1 ) ) );
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a>         assertEquals( Collections.singletonList( artifact ),
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a>                       <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_MD5 ) ) );
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a>     }
<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a> 
<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a>     @Test
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByChecksumMultipleResult()
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a>     {
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>         ArtifactMetadata artifact1 = createArtifact();
<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact1 );
<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a> 
<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>         String newProjectId = <span class="jxr_string">"another-project"</span>;
<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a>         ArtifactMetadata artifact2 = createArtifact();
<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>         artifact2.setProject( newProjectId );
<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, newProjectId, TEST_PROJECT_VERSION, artifact2 );
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>         repository.save();
<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a> 
<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a>         List&lt;ArtifactMetadata&gt; artifacts =
<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>             <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_SHA1 ) );
<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a>         Collections.sort( artifacts, <strong class="jxr_keyword">new</strong> ArtifactMetadataComparator() );
<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>         assertEquals( Arrays.asList( artifact2, artifact1 ), artifacts );
<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a> 
<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a>         artifacts = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_MD5 ) );
<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a>         Collections.sort( artifacts, <strong class="jxr_keyword">new</strong> ArtifactMetadataComparator() );
<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a>         assertEquals( Arrays.asList( artifact2, artifact1 ), artifacts );
<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a>     }
<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a> 
<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a>     @Test
<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByChecksumNoResult()
<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>     {
<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a> 
<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a>         Collection&lt;ArtifactMetadata&gt; artifactsByChecksum =
<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>             repository.getArtifactsByChecksum( TEST_REPO_ID, <span class="jxr_string">"not checksum"</span> );
<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a>         assertThat( artifactsByChecksum ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a>     }
<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a> 
<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a>     @Test
<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByProjectVersionMetadata()
<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a>     {
<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>         createArtifactWithGenericMetadataFacet( 10 );
<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a>         Collection&lt;ArtifactMetadata&gt; artifactsByMetadata =
<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>             repository.getArtifactsByProjectVersionMetadata( TEST_METADATA_KEY, TEST_METADATA_VALUE, TEST_REPO_ID );
<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>         assertThat( artifactsByMetadata ).hasSize( 1 );
<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a>         ArtifactMetadata artifactMetadata = artifactsByMetadata.iterator().next();
<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>         assertThat( artifactMetadata.getId() ).isEqualTo( <span class="jxr_string">"projectId-1.0.jar"</span> );
<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a>         assertThat( artifactMetadata.getSha1() ).isEqualTo( TEST_SHA1 );
<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>         assertThat( artifactMetadata.getRepositoryId() ).isEqualTo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>     }
<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a> 
<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a>     @Test
<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByProjectVersionMetadataNoRepository()
<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a>     {
<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>         createArtifactWithGenericMetadataFacet();
<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a>         Collection&lt;ArtifactMetadata&gt; artifactsByMetadata =
<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>             repository.getArtifactsByProjectVersionMetadata( TEST_METADATA_KEY, TEST_METADATA_VALUE, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>         assertThat( artifactsByMetadata ).hasSize( 1 );
<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a>         assertThat( artifactsByMetadata.iterator().next().getRepositoryId() ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a>     }
<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a> 
<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>     @Test
<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByProjectVersionMetadataAllRepositories()
<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>     {
<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>         createArtifactWithGenericMetadataFacet();
<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a>         Collection&lt;ArtifactMetadata&gt; artifactsByMetadata =
<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a>             repository.getArtifactsByProjectVersionMetadata( TEST_METADATA_KEY, TEST_METADATA_VALUE, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a>         assertThat( artifactsByMetadata ).hasSize( 1 );
<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a>     }
<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a> 
<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>     @Test
<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByMetadataAllRepositories()
<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a>     {
<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>         createArtifactWithMavenArtifactFacet();
<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>         Collection&lt;ArtifactMetadata&gt; artifactsByMetadata =
<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>             repository.getArtifactsByMetadata( <span class="jxr_string">"foo"</span>, TEST_METADATA_VALUE, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>         assertThat( artifactsByMetadata ).hasSize( 1 );
<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>         ArtifactMetadata artifactMetadata = artifactsByMetadata.iterator().next();
<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a>         assertThat( artifactMetadata.getId() ).isEqualTo( <span class="jxr_string">"projectId-1.0.jar"</span> );
<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>         assertThat( artifactMetadata.getSha1() ).isEqualTo( TEST_SHA1 );
<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>         assertThat( artifactMetadata.getRepositoryId() ).isEqualTo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>         MetadataFacet facet = artifactMetadata.getFacet( TEST_FACET_ID );
<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>         assertThat( facet ).isNotNull();
<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>         assertThat( facet.toProperties() ).isEqualTo( Collections.singletonMap( <span class="jxr_string">"foo"</span>, TEST_METADATA_VALUE ) );
<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a>     }
<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a> 
<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a>     @Test
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetArtifactsByPropertySingleResult()
<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a>     {
<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a>         createArtifactWithData();
<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a>         <em class="jxr_comment">// only works on JCR implementation</em>
<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a>         <em class="jxr_comment">// Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.getArtifactsByProperty( "org.name", TEST_ORGANIZATION.getName(), TEST_REPO_ID );</em>
<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.getArtifactsByProperty( <span class="jxr_string">"url"</span>, TEST_URL, TEST_REPO_ID );
<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a>         assertThat( artifactsByProperty ).hasSize( 1 );
<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a>         ArtifactMetadata artifactMetadata = artifactsByProperty.iterator().next();
<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a>         assertThat( artifactMetadata.getId() ).isEqualTo( <span class="jxr_string">"projectId-1.0.jar"</span> );
<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a>         assertThat( artifactMetadata.getSha1() ).isEqualTo( TEST_SHA1 );
<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a>         assertThat( artifactMetadata.getRepositoryId() ).isEqualTo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a>     }
<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a> 
<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a>     @Test
<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeleteRepository()
<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a>     {
<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a>         repository.updateNamespace( TEST_REPO_ID, TEST_NAMESPACE );
<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a> 
<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>         ProjectMetadata project1 = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a>         project1.setNamespace( TEST_NAMESPACE );
<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>         project1.setId( <span class="jxr_string">"project1"</span> );
<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a>         repository.updateProject( TEST_REPO_ID, project1 );
<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>         ProjectMetadata project2 = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>         project2.setNamespace( TEST_NAMESPACE );
<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a>         project2.setId( <span class="jxr_string">"project2"</span> );
<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>         repository.updateProject( TEST_REPO_ID, project2 );
<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a> 
<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a>         ArtifactMetadata artifact1 = createArtifact();
<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a>         artifact1.setProject( <span class="jxr_string">"project1"</span> );
<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, <span class="jxr_string">"project1"</span>, TEST_PROJECT_VERSION, artifact1 );
<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a>         ArtifactMetadata artifact2 = createArtifact();
<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a>         artifact2.setProject( <span class="jxr_string">"project2"</span> );
<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, <span class="jxr_string">"project2"</span>, TEST_PROJECT_VERSION, artifact2 );
<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a>         repository.save();
<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a> 
<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a>         List&lt;ArtifactMetadata&gt; expected = Arrays.asList( artifact1, artifact2 );
<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>         Collections.sort( expected, <strong class="jxr_keyword">new</strong> ArtifactMetadataComparator() );
<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a> 
<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>         List&lt;ArtifactMetadata&gt; actual =
<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>             <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getArtifactsByDateRange( TEST_REPO_ID, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> ) );
<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>         Collections.sort( actual, <strong class="jxr_keyword">new</strong> ArtifactMetadataComparator() );
<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a> 
<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>         assertEquals( expected, actual );
<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a> 
<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>         repository.removeRepository( TEST_REPO_ID );
<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a> 
<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a>         assertTrue( repository.getArtifacts( TEST_REPO_ID ).isEmpty() );
<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>         assertTrue( repository.getRootNamespaces( TEST_REPO_ID ).isEmpty() );
<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a>     }
<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a> 
<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a> 
<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a>     @Test
<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeleteArtifact()
<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a>     {
<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>         artifact.addFacet( <strong class="jxr_keyword">new</strong> TestMetadataFacet( <span class="jxr_string">"value"</span> ) );
<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a> 
<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a> 
<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a>         assertThat( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a>                                              TEST_PROJECT_VERSION ) ).containsExactly( artifact );
<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a> 
<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION_2_0, artifact );
<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a> 
<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a>         Collection&lt;String&gt; versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a> 
<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a>         log.info( <span class="jxr_string">"versions {}"</span>, versions );
<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a> 
<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a>         assertThat( versions ).isNotNull().isNotEmpty().hasSize( 2 ).contains( <span class="jxr_string">"1.0"</span>, <span class="jxr_string">"2.0"</span> );
<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a> 
<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a>         repository.removeArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact.getId() );
<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a> 
<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>         versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a> 
<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a>         log.info( <span class="jxr_string">"versions {}"</span>, versions );
<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a> 
<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a>         assertThat( versions ).isNotNull().isNotEmpty().hasSize( 1 ).contains( <span class="jxr_string">"2.0"</span> );
<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a> 
<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>         assertThat( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>                                              TEST_PROJECT_VERSION ) ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a> 
<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>         assertThat( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a>                                              TEST_PROJECT_VERSION_2_0 ) ).isNotEmpty().hasSize( 1 );
<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>     }
<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a> 
<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>     @Test
<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteArtifact()
<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a>     {
<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>         artifact.addFacet( <strong class="jxr_keyword">new</strong> TestMetadataFacet( <span class="jxr_string">"value"</span> ) );
<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a> 
<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> 
<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a> 
<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a>         Collection&lt;ArtifactMetadata&gt; artifacts =
<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>             repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a> 
<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>         assertEquals( Collections.singletonList( artifact ), <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( artifacts ) );
<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a> 
<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>         repository.removeArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact.getId() );
<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a> 
<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>         artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a> 
<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>         assertThat( artifacts ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>     }
<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a> 
<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>     @Test
<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteVersion()
<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>     {
<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>         artifact.addFacet( <strong class="jxr_keyword">new</strong> TestMetadataFacet( <span class="jxr_string">"value"</span> ) );
<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a> 
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a> 
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a> 
<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>         Collection&lt;String&gt; versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a> 
<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>         assertThat( versions ).isNotNull().isNotEmpty().hasSize( 1 );
<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a> 
<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>         repository.removeProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a> 
<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>         versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a> 
<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>         assertThat( versions ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>     }
<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a> 
<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>     @Test
<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteProject()
<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>     {
<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>         artifact.addFacet( <strong class="jxr_keyword">new</strong> TestMetadataFacet( <span class="jxr_string">"value"</span> ) );
<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a> 
<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a> 
<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a> 
<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>         assertEquals( 1, repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ).size() );
<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a> 
<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a>         repository.removeProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a> 
<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>         Collection&lt;String&gt; versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT );
<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a> 
<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>         assertThat( versions ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>     }
<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a> 
<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a> 
<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>     @Test
<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteSnapshotVersion()
<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>     {
<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>         ArtifactMetadata artifactOne = createArtifact();
<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a>         artifactOne.setVersion( <span class="jxr_string">"2.0-20120618.214127-1"</span> );
<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>         artifactOne.setProjectVersion( <span class="jxr_string">"2.0-SNAPSHOT"</span> );
<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>         artifactOne.addFacet( <strong class="jxr_keyword">new</strong> TestMetadataFacet( <span class="jxr_string">"value"</span> ) );
<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>         artifactOne.setId( TEST_PROJECT + <span class="jxr_string">"-"</span> + <span class="jxr_string">"2.0-20120618.214127-1"</span> + <span class="jxr_string">"."</span> + <span class="jxr_string">"jar"</span> );
<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a> 
<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, <span class="jxr_string">"2.0-SNAPSHOT"</span>, artifactOne );
<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a> 
<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>         ArtifactMetadata artifactTwo = createArtifact();
<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a>         artifactTwo.setVersion( <span class="jxr_string">"2.0-20120618.214135-2"</span> );
<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>         artifactTwo.setProjectVersion( <span class="jxr_string">"2.0-SNAPSHOT"</span> );
<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a>         artifactTwo.addFacet( <strong class="jxr_keyword">new</strong> TestMetadataFacet( <span class="jxr_string">"value"</span> ) );
<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>         artifactTwo.setId( TEST_PROJECT + <span class="jxr_string">"-"</span> + <span class="jxr_string">"2.0-20120618.214135-2"</span> + <span class="jxr_string">"."</span> + <span class="jxr_string">"jar"</span> );
<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a> 
<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, <span class="jxr_string">"2.0-SNAPSHOT"</span>, artifactTwo );
<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a> 
<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a>         Collection&lt;ArtifactMetadata&gt; artifactMetadatas =
<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>             repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, <span class="jxr_string">"2.0-SNAPSHOT"</span> );
<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a> 
<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>         assertThat( artifactMetadatas ).isNotNull().isNotEmpty().hasSize( 2 );
<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a> 
<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>         log.info( <span class="jxr_string">"artifactMetadatas: {}"</span>, artifactMetadatas );
<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a> 
<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>         repository.removeArtifact( artifactOne, <span class="jxr_string">"2.0-SNAPSHOT"</span> );
<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a> 
<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a>         artifactMetadatas = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, <span class="jxr_string">"2.0-SNAPSHOT"</span> );
<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a> 
<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a>         assertThat( artifactMetadatas ).isNotNull().isNotEmpty().hasSize( 1 );
<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a> 
<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a>         repository.removeArtifact( artifactTwo, <span class="jxr_string">"2.0-SNAPSHOT"</span> );
<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a> 
<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>         artifactMetadatas = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, <span class="jxr_string">"2.0-SNAPSHOT"</span> );
<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a> 
<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a>         assertThat( artifactMetadatas ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a>     }
<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a> 
<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a> 
<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>     @Test
<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testgetProjectReferences()
<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>     {
<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>         ProjectVersionMetadata metadata = <strong class="jxr_keyword">new</strong> ProjectVersionMetadata();
<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>         metadata.setId( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a> 
<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>         metadata.setName( <span class="jxr_string">"project name"</span> );
<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>         metadata.setDescription( <span class="jxr_string">"project description"</span> );
<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>         metadata.setUrl( <span class="jxr_string">"the url"</span> );
<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a> 
<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>         Dependency d = <strong class="jxr_keyword">new</strong> Dependency();
<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>         d.setArtifactId( <span class="jxr_string">"artifactId"</span> );
<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a>         d.setClassifier( <span class="jxr_string">"classifier"</span> );
<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>         d.setGroupId( <span class="jxr_string">"groupId"</span> );
<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>         d.setScope( <span class="jxr_string">"scope"</span> );
<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>         d.setSystemPath( <span class="jxr_string">"system path"</span> );
<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>         d.setType( <span class="jxr_string">"type"</span> );
<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>         d.setVersion( <span class="jxr_string">"version"</span> );
<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a>         d.setOptional( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>         metadata.addDependency( d );
<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a> 
<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>         d = <strong class="jxr_keyword">new</strong> Dependency();
<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>         d.setArtifactId( <span class="jxr_string">"artifactId1"</span> );
<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>         d.setClassifier( <span class="jxr_string">"classifier"</span> );
<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>         d.setGroupId( <span class="jxr_string">"groupId"</span> );
<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>         d.setScope( <span class="jxr_string">"scope"</span> );
<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>         d.setSystemPath( <span class="jxr_string">"system path"</span> );
<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>         d.setType( <span class="jxr_string">"type"</span> );
<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>         d.setVersion( <span class="jxr_string">"version1"</span> );
<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>         d.setOptional( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>         metadata.addDependency( d );
<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a> 
<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a> 
<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>         repository.save();
<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a> 
<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>         metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a> 
<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>         Collection&lt;ProjectVersionReference&gt; references =
<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>             repository.getProjectReferences( TEST_REPO_ID, d.getGroupId(), d.getArtifactId(), d.getVersion() );
<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a> 
<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>         log.info( <span class="jxr_string">"references: {}"</span>, references );
<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a> 
<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>         assertThat( references ).isNotNull().hasSize( 1 ).contains(
<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>             <strong class="jxr_keyword">new</strong> ProjectVersionReference( ProjectVersionReference.ReferenceType.DEPENDENCY, TEST_PROJECT, TEST_NAMESPACE,
<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>                                          TEST_PROJECT_VERSION ) );
<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a> 
<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>     }
<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> 
<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>     @Test
<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSearchArtifactsByKey()
<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>     {
<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>         createArtifactWithData();
<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.searchArtifacts( <span class="jxr_string">"url"</span>, TEST_URL, TEST_REPO_ID, false );
<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>         assertThat( artifactsByProperty ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>     }
<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a> 
<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>     @Test
<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSearchArtifactsByKeyExact()
<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>     {
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>         createArtifactWithData();
<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.searchArtifacts( <span class="jxr_string">"url"</span>, TEST_URL, TEST_REPO_ID, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>         assertThat( artifactsByProperty ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a>         artifactsByProperty = repository.searchArtifacts( <span class="jxr_string">"org.name"</span>, <span class="jxr_string">"pache"</span>, TEST_REPO_ID, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>         assertThat( artifactsByProperty ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>     }
<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a> 
<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>     @Test
<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSearchArtifactsByFacetKey()
<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>     {
<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>         createArtifactWithGenericMetadataFacet();
<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.searchArtifacts( TEST_METADATA_KEY, TEST_METADATA_VALUE, TEST_REPO_ID, false );
<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>         assertThat( artifactsByProperty ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a>     }
<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a> 
<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a>     @Test
<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSearchArtifactsByFacetKeyAllRepos()
<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>     {
<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>         createArtifactWithGenericMetadataFacet();
<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.searchArtifacts( TEST_METADATA_KEY, TEST_METADATA_VALUE, <strong class="jxr_keyword">null</strong>, false );
<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>         assertThat( artifactsByProperty ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>     }
<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a> 
<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a>     @Test
<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSearchArtifactsFullText()
<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>     {
<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>         createArtifactWithGenericMetadataFacet();
<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>         <em class="jxr_comment">// only works in JCR</em>
<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>         <em class="jxr_comment">// Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.searchArtifacts( TEST_URL, TEST_REPO_ID, false );</em>
<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty =
<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a>             repository.searchArtifacts( TEST_METADATA_VALUE, TEST_REPO_ID, false );
<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>         assertThat( artifactsByProperty ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>     }
<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a> 
<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>     @Test
<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSearchArtifactsFullTextExact()
<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>     {
<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>         createArtifactWithGenericMetadataFacet();
<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>         <em class="jxr_comment">// only works in JCR</em>
<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>         <em class="jxr_comment">// Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.searchArtifacts( TEST_URL, TEST_REPO_ID, true );</em>
<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty =
<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>             repository.searchArtifacts( TEST_METADATA_VALUE, TEST_REPO_ID, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a>         assertThat( artifactsByProperty ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>         artifactsByProperty = repository.searchArtifacts( TEST_METADATA_VALUE.substring( 2 ), TEST_REPO_ID, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>         assertThat( artifactsByProperty ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>     }
<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a> 
<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>     @Test
<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSearchArtifactsFullTextByFacet()
<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>     {
<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>         createArtifactWithGenericMetadataFacet();
<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>         Collection&lt;ArtifactMetadata&gt; artifactsByProperty = repository.searchArtifacts( TEST_METADATA_VALUE, TEST_REPO_ID, false );
<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>         assertThat( artifactsByProperty ).isNotNull().isNotEmpty();
<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>     }
<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a> 
<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> ProjectMetadata createProject()
<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>     {
<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>         <strong class="jxr_keyword">return</strong> createProject( TEST_NAMESPACE );
<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>     }
<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a> 
<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> ProjectMetadata createProject( String ns )
<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a>     {
<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>         ProjectMetadata project = <strong class="jxr_keyword">new</strong> ProjectMetadata();
<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>         project.setId( TEST_PROJECT );
<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>         project.setNamespace( ns );
<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>         <strong class="jxr_keyword">return</strong> project;
<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>     }
<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a> 
<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createArtifactWithGenericMetadataFacet()
<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException, MetadataResolutionException
<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>     {
<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>         createArtifactWithGenericMetadataFacet( 1 );
<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>     }
<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a> 
<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createArtifactWithGenericMetadataFacet( <strong class="jxr_keyword">int</strong> artifacts )
<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException, MetadataResolutionException
<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>     {
<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>         MetadataFacet metadataFacet = <strong class="jxr_keyword">new</strong> GenericMetadataFacet();
<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>         Map&lt;String, String&gt; properties = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a>         properties.put( TEST_METADATA_KEY, TEST_METADATA_VALUE );
<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>         metadataFacet.fromProperties( properties );
<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>         createArtifactWithFacet( artifacts, <strong class="jxr_keyword">null</strong>, metadataFacet );
<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a>     }
<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a> 
<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createArtifactWithMavenArtifactFacet()
<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException, MetadataResolutionException
<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>     {
<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a>         createArtifactWithMavenArtifactFacet( 1 );
<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>     }
<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a> 
<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createArtifactWithMavenArtifactFacet( <strong class="jxr_keyword">int</strong> artifacts )
<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException, MetadataResolutionException
<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>     {
<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>         <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> facet = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( TEST_METADATA_VALUE );
<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>         createArtifactWithFacet( artifacts, facet, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>     }
<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a> 
<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createArtifactWithFacet( <strong class="jxr_keyword">int</strong> artifacts, MetadataFacet artifactFacet,
<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>                                           MetadataFacet projectVersionMetadataFacet )
<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException, MetadataResolutionException
<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>     {
<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; artifacts; i++ )
<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>         {
<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>             ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>             <strong class="jxr_keyword">if</strong> ( artifactFacet != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>             {
<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                 artifact.addFacet( artifactFacet );
<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>             }
<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>             repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>         }
<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>         <strong class="jxr_keyword">if</strong> ( projectVersionMetadataFacet != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>         {
<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>             ProjectVersionMetadata metadata =
<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>                 repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>             metadata.addFacet( projectVersionMetadataFacet );
<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>             metadata.setOrganization( TEST_ORGANIZATION );
<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>             metadata.setUrl( TEST_URL );
<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>             repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>         }
<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>         repository.save();
<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>     }
<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a> 
<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createArtifactWithData()
<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>         <strong class="jxr_keyword">throws</strong> MetadataRepositoryException, MetadataResolutionException
<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>     {
<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>         ArtifactMetadata artifact = createArtifact();
<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>         ProjectVersionMetadata metadata =
<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>             repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>         metadata.setOrganization( TEST_ORGANIZATION );
<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>         metadata.setUrl( TEST_URL );
<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a> 
<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>         repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata );
<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>         repository.save();
<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a>     }
<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a> 
<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> ArtifactMetadata createArtifact()
<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>     {
<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>         <strong class="jxr_keyword">return</strong> createArtifact( <span class="jxr_string">"jar"</span> );
<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>     }
<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a> 
<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> ArtifactMetadata createArtifact( String type )
<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>     {
<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>         ArtifactMetadata artifact = <strong class="jxr_keyword">new</strong> ArtifactMetadata();
<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>         artifact.setId( TEST_PROJECT + <span class="jxr_string">"-"</span> + TEST_PROJECT_VERSION + <span class="jxr_string">"."</span> + type );
<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>         artifact.setWhenGathered( <strong class="jxr_keyword">new</strong> Date() );
<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a>         artifact.setNamespace( TEST_NAMESPACE );
<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>         artifact.setProject( TEST_PROJECT );
<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>         artifact.setRepositoryId( TEST_REPO_ID );
<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>         artifact.setFileLastModified( System.currentTimeMillis() );
<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>         artifact.setVersion( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>         artifact.setProjectVersion( TEST_PROJECT_VERSION );
<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>         artifact.setMd5( TEST_MD5 );
<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>         artifact.setSha1( TEST_SHA1 );
<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>         <strong class="jxr_keyword">return</strong> artifact;
<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>     }
<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a> 
<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">ArtifactMetadataComparator</a>
<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>         <strong class="jxr_keyword">implements</strong> Comparator&lt;ArtifactMetadata&gt;
<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a>     {
<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>         @Override
<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> compare( ArtifactMetadata a, ArtifactMetadata b )
<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>         {
<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>             <strong class="jxr_keyword">return</strong> a.getProject().compareTo( b.getProject() );
<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>         }
<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>     }
<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a> 
<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">KindOfRepositoryStatistics</a>
<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>         <strong class="jxr_keyword">implements</strong> MetadataFacet
<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>     {
<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>         <strong class="jxr_keyword">private</strong> String value;
<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a> 
<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>         <strong class="jxr_keyword">private</strong> Date date;
<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a> 
<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String SCAN_TIMESTAMP_FORMAT = <span class="jxr_string">"yyyy/MM/dd/HHmmss.SSS"</span>;
<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> 
<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone( <span class="jxr_string">"UTC"</span> );
<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a> 
<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">KindOfRepositoryStatistics</a>( String value, Date date )
<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>         {
<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>             <strong class="jxr_keyword">this</strong>.value = value;
<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>             <strong class="jxr_keyword">this</strong>.date = date;
<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>         }
<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a> 
<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>         @Override
<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>         <strong class="jxr_keyword">public</strong> String getName()
<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>         {
<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a>             <strong class="jxr_keyword">return</strong> createNameFormat().format( date );
<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>         }
<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a> 
<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> SimpleDateFormat createNameFormat()
<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>         {
<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>             SimpleDateFormat fmt = <strong class="jxr_keyword">new</strong> SimpleDateFormat( SCAN_TIMESTAMP_FORMAT );
<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a>             fmt.setTimeZone( UTC_TIME_ZONE );
<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>             <strong class="jxr_keyword">return</strong> fmt;
<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>         }
<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a> 
<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>         @Override
<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>         <strong class="jxr_keyword">public</strong> String getFacetId()
<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>         {
<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>             <strong class="jxr_keyword">return</strong> KindOfRepositoryStatistics.<strong class="jxr_keyword">class</strong>.getName();
<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>         }
<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a> 
<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a>         @Override
<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a>         <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; toProperties()
<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a>         {
<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>             <strong class="jxr_keyword">return</strong> Collections.emptyMap();
<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>         }
<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a> 
<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>         @Override
<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> fromProperties( Map&lt;String, String&gt; properties )
<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>         {
<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>             <em class="jxr_comment">// no op</em>
<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>         }
<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>     }
<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a> 
<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>
<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>         <strong class="jxr_keyword">implements</strong> MetadataFacet
<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>     {
<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>         <strong class="jxr_keyword">private</strong> String testFacetId;
<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> 
<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>         <strong class="jxr_keyword">private</strong> Map&lt;String, String&gt; additionalProps;
<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a> 
<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>         <strong class="jxr_keyword">private</strong> String value;
<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a> 
<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( String value )
<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>         {
<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a>             <strong class="jxr_keyword">this</strong>.value = value;
<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a>             testFacetId = TEST_FACET_ID;
<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>         }
<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a> 
<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( String facetId, String value )
<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a>         {
<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>             <strong class="jxr_keyword">this</strong>.value = value;
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>             testFacetId = facetId;
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>         }
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a> 
<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a>( String facetId, String value, Map&lt;String, String&gt; additionalProps )
<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>         {
<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a>             <strong class="jxr_keyword">this</strong>( facetId, value );
<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>             <strong class="jxr_keyword">this</strong>.additionalProps = additionalProps;
<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a>         }
<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> 
<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>         @Override
<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>         <strong class="jxr_keyword">public</strong> String getFacetId()
<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>         {
<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>             <strong class="jxr_keyword">return</strong> testFacetId;
<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>         }
<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a> 
<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>         @Override
<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>         <strong class="jxr_keyword">public</strong> String getName()
<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>         {
<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>             <strong class="jxr_keyword">return</strong> TEST_NAME;
<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>         }
<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a> 
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>         @Override
<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>         <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; toProperties()
<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>         {
<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>             <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>             {
<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>                 <strong class="jxr_keyword">if</strong> ( additionalProps == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>                 {
<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>                     <strong class="jxr_keyword">return</strong> Collections.singletonMap( <span class="jxr_string">"foo"</span>, value );
<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>                 }
<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>                 {
<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>                     Map&lt;String, String&gt; props = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a>                     props.put( <span class="jxr_string">"foo"</span>, value );
<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a> 
<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>                     <strong class="jxr_keyword">for</strong> ( String key : additionalProps.keySet() )
<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a>                     {
<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>                         props.put( key, additionalProps.get( key ) );
<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>                     }
<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>                     <strong class="jxr_keyword">return</strong> props;
<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>                 }
<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>             }
<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a>             {
<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a>                 <strong class="jxr_keyword">return</strong> Collections.emptyMap();
<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a>             }
<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a>         }
<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a> 
<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a>         @Override
<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> fromProperties( Map&lt;String, String&gt; properties )
<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>         {
<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a>             String value = properties.get( <span class="jxr_string">"foo"</span> );
<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a>             <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a>             {
<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a>                 <strong class="jxr_keyword">this</strong>.value = value;
<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a>             }
<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a> 
<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a>             properties.remove( <span class="jxr_string">"foo"</span> );
<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a> 
<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a>             <strong class="jxr_keyword">if</strong> ( additionalProps == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a>             {
<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a>                 additionalProps = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a>             }
<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a> 
<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a>             <strong class="jxr_keyword">for</strong> ( String key : properties.keySet() )
<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a>             {
<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a>                 additionalProps.put( key, properties.get( key ) );
<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a>             }
<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>         }
<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a> 
<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>         <strong class="jxr_keyword">public</strong> String getValue()
<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a>         {
<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>             <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>         }
<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> 
<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>         @Override
<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a>         <strong class="jxr_keyword">public</strong> String toString()
<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a>         {
<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a>             <strong class="jxr_keyword">return</strong> <span class="jxr_string">"TestMetadataFacet{"</span> + <span class="jxr_string">"value='"</span> + value + '\'' + '}';
<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>         }
<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a> 
<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a>         @Override
<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals( Object o )
<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>         {
<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">this</strong> == o )
<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a>             {
<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>             }
<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>             <strong class="jxr_keyword">if</strong> ( o == <strong class="jxr_keyword">null</strong> || getClass() != o.getClass() )
<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>             {
<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a>                 <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a>             }
<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a> 
<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a>             <a href="../../../../../org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.html">TestMetadataFacet</a> that = (TestMetadataFacet) o;
<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a> 
<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a>             <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> ? !value.equals( that.value ) : that.value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a>             {
<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a>                 <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a>             }
<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a> 
<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a>         }
<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a> 
<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a>         @Override
<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> hashCode()
<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a>         {
<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a>             <strong class="jxr_keyword">return</strong> value != <strong class="jxr_keyword">null</strong> ? value.hashCode() : 0;
<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a>         }
<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a>     }
<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2022 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
