<!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>BrowseServiceTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../testapidocs/org/apache/archiva/rest/services/BrowseServiceTest.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.<strong class="jxr_keyword">rest</strong>.services;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</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="L12" href="#L12">12</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.beans.ManagedRepository;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.maven2.model.Artifact;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.ProjectVersionMetadata;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.<strong class="jxr_keyword">rest</strong>.api.model.Role;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.<strong class="jxr_keyword">rest</strong>.api.services.RedbackServiceException;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.model.ArtifactContentEntry;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.model.BrowseResult;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.model.BrowseResultEntry;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.model.Entry;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.model.MetadataAddRequest;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.model.VersionsList;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.services.ArchivaRestServiceException;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.services.BrowseService;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.cxf.jaxrs.client.WebClient;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.assertj.core.data.MapEntry;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.junit.After;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<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> javax.ws.rs.core.MediaType;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> java.util.*;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.assertj.core.api.Assertions.assertThat;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment"> * @author Olivier Lamy</em>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/rest/services/BrowseServiceTest.html">BrowseServiceTest</a>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>      <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/archiva/rest/services/AbstractArchivaRestTest.html">AbstractArchivaRestTest</a>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  {
<a class="jxr_linenumber" name="L53" href="#L53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_REPO_ID = <span class="jxr_string">"test-repo"</span>;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  
<a class="jxr_linenumber" name="L55" href="#L55">55</a>      Map&lt;String, String&gt; toMap( List&lt;Entry&gt; entries )
<a class="jxr_linenumber" name="L56" href="#L56">56</a>      {
<a class="jxr_linenumber" name="L57" href="#L57">57</a>          Map&lt;String, String&gt; map = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;( entries.size() );
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  
<a class="jxr_linenumber" name="L59" href="#L59">59</a>          <strong class="jxr_keyword">for</strong> ( Entry entry : entries )
<a class="jxr_linenumber" name="L60" href="#L60">60</a>          {
<a class="jxr_linenumber" name="L61" href="#L61">61</a>              map.put( entry.getKey(), entry.getValue() );
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          }
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  
<a class="jxr_linenumber" name="L64" href="#L64">64</a>          <strong class="jxr_keyword">return</strong> map;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>      }
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      @Test
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> metadatagetthenadd()
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L70" href="#L70">70</a>      {
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          scanRepo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          waitForScanToComplete( TEST_REPO_ID );
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  
<a class="jxr_linenumber" name="L76" href="#L76">76</a>          Map&lt;String, String&gt; metadatas =
<a class="jxr_linenumber" name="L77" href="#L77">77</a>              toMap( browseService.getMetadatas( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  
<a class="jxr_linenumber" name="L79" href="#L79">79</a>          assertThat( metadatas ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          browseService.addMetadata( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          metadatas = toMap( browseService.getMetadatas( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          assertThat( metadatas ).isNotNull().isNotEmpty().contains( MapEntry.entry( <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span> ) );
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      }
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
<a class="jxr_linenumber" name="L89" href="#L89">89</a>      @Test
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> metadatagetthenaddthendelete()
<a class="jxr_linenumber" name="L91" href="#L91">91</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L92" href="#L92">92</a>      {
<a class="jxr_linenumber" name="L93" href="#L93">93</a>          <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L94" href="#L94">94</a>          {
<a class="jxr_linenumber" name="L95" href="#L95">95</a>              scanRepo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L96" href="#L96">96</a>              waitForScanToComplete( TEST_REPO_ID );
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  
<a class="jxr_linenumber" name="L98" href="#L98">98</a>              BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  
<a class="jxr_linenumber" name="L100" href="#L100">100</a>             Map&lt;String, String&gt; metadatas =
<a class="jxr_linenumber" name="L101" href="#L101">101</a>                 toMap( browseService.getMetadatas( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
<a class="jxr_linenumber" name="L103" href="#L103">103</a>             assertThat( metadatas ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 
<a class="jxr_linenumber" name="L105" href="#L105">105</a>             browseService.addMetadata( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L106" href="#L106">106</a> 
<a class="jxr_linenumber" name="L107" href="#L107">107</a>             metadatas = toMap( browseService.getMetadatas( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L108" href="#L108">108</a> 
<a class="jxr_linenumber" name="L109" href="#L109">109</a>             assertThat( metadatas ).isNotNull().isNotEmpty().contains( MapEntry.entry( <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span> ) );
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a>             browseService.deleteMetadata( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, <span class="jxr_string">"wine"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>             metadatas = toMap( browseService.getMetadatas( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
<a class="jxr_linenumber" name="L115" href="#L115">115</a>             assertThat( metadatas ).isNotNull().isEmpty();
<a class="jxr_linenumber" name="L116" href="#L116">116</a>         }
<a class="jxr_linenumber" name="L117" href="#L117">117</a>         <strong class="jxr_keyword">catch</strong> ( ArchivaRestServiceException e )
<a class="jxr_linenumber" name="L118" href="#L118">118</a>         {
<a class="jxr_linenumber" name="L119" href="#L119">119</a>             log.error( e.getMessage(), e );
<a class="jxr_linenumber" name="L120" href="#L120">120</a>             <strong class="jxr_keyword">throw</strong> e;
<a class="jxr_linenumber" name="L121" href="#L121">121</a>         }
<a class="jxr_linenumber" name="L122" href="#L122">122</a>     }
<a class="jxr_linenumber" name="L123" href="#L123">123</a> 
<a class="jxr_linenumber" name="L124" href="#L124">124</a>     @Test
<a class="jxr_linenumber" name="L125" href="#L125">125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> browserootGroups()
<a class="jxr_linenumber" name="L126" href="#L126">126</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L127" href="#L127">127</a>     {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         BrowseResult browseResult = browseService.getRootGroups( TEST_REPO_ID );
<a class="jxr_linenumber" name="L131" href="#L131">131</a>         assertThat( browseResult ).isNotNull();
<a class="jxr_linenumber" name="L132" href="#L132">132</a>         assertThat( browseResult.getBrowseResultEntries() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             .isNotNull() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L134" href="#L134">134</a>             .isNotEmpty() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L135" href="#L135">135</a>             .hasSize( 3 ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L136" href="#L136">136</a>             .contains( <strong class="jxr_keyword">new</strong> BrowseResultEntry( <span class="jxr_string">"commons-cli"</span>, false ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L137" href="#L137">137</a>                        <strong class="jxr_keyword">new</strong> BrowseResultEntry( <span class="jxr_string">"commons-logging"</span>, false ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L138" href="#L138">138</a>                        <strong class="jxr_keyword">new</strong> BrowseResultEntry( <span class="jxr_string">"org.apache"</span>, false ) );
<a class="jxr_linenumber" name="L139" href="#L139">139</a>     }
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 
<a class="jxr_linenumber" name="L141" href="#L141">141</a>     @Test
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> browsegroupId()
<a class="jxr_linenumber" name="L143" href="#L143">143</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L144" href="#L144">144</a>     {
<a class="jxr_linenumber" name="L145" href="#L145">145</a>         BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L146" href="#L146">146</a> 
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         BrowseResult browseResult = browseService.browseGroupId( <span class="jxr_string">"org.apache"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         assertThat( browseResult ).isNotNull();
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         assertThat( browseResult.getBrowseResultEntries() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L150" href="#L150">150</a>             .isNotNull() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L151" href="#L151">151</a>             .isNotEmpty() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L152" href="#L152">152</a>             .hasSize( 2 ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L153" href="#L153">153</a>             .contains( <strong class="jxr_keyword">new</strong> BrowseResultEntry( <span class="jxr_string">"org.apache.felix"</span>, false ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L154" href="#L154">154</a>                        <strong class="jxr_keyword">new</strong> BrowseResultEntry( <span class="jxr_string">"org.apache.karaf.features"</span>, false ) );
<a class="jxr_linenumber" name="L155" href="#L155">155</a>     }
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
<a class="jxr_linenumber" name="L157" href="#L157">157</a>     @Test
<a class="jxr_linenumber" name="L158" href="#L158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> listUserRepositories()
<a class="jxr_linenumber" name="L159" href="#L159">159</a>             <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L160" href="#L160">160</a>     {
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         initSourceTargetRepo();
<a class="jxr_linenumber" name="L162" href="#L162">162</a>         BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L163" href="#L163">163</a> 
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         List&lt;ManagedRepository&gt; browseResult = browseService.getUserRepositories();
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         assertThat( browseResult )
<a class="jxr_linenumber" name="L166" href="#L166">166</a>                 .isNotNull()
<a class="jxr_linenumber" name="L167" href="#L167">167</a>                 .isNotEmpty()
<a class="jxr_linenumber" name="L168" href="#L168">168</a>                 .hasSize(5);
<a class="jxr_linenumber" name="L169" href="#L169">169</a>         List&lt;String&gt; repIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L170" href="#L170">170</a>         <strong class="jxr_keyword">for</strong>(ManagedRepository rep : browseResult) {
<a class="jxr_linenumber" name="L171" href="#L171">171</a>             repIds.add(rep.getId());
<a class="jxr_linenumber" name="L172" href="#L172">172</a>         }
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         assertThat(repIds).contains(<span class="jxr_string">"internal"</span>,<span class="jxr_string">"snapshots"</span>,<span class="jxr_string">"test-repo"</span>,<span class="jxr_string">"test-copy-target"</span>,<span class="jxr_string">"test-origin-repo"</span>);
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     }
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
<a class="jxr_linenumber" name="L177" href="#L177">177</a> 
<a class="jxr_linenumber" name="L178" href="#L178">178</a>     @Test
<a class="jxr_linenumber" name="L179" href="#L179">179</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> listUserManagableRepositories()
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L181" href="#L181">181</a>     {
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         initSourceTargetRepo();
<a class="jxr_linenumber" name="L183" href="#L183">183</a>         <em class="jxr_comment">// Giving the guest user a manager role</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         String name = <span class="jxr_string">"Repository Manager - internal"</span>;
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         Role role = getRoleManagementService( authorizationHeader ).getRole( name );
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         role.setUsers( Arrays.asList( getUserService( authorizationHeader ).getUser( <span class="jxr_string">"guest"</span> ) ) );
<a class="jxr_linenumber" name="L187" href="#L187">187</a>         getRoleManagementService( authorizationHeader ).updateRoleUsers( role );
<a class="jxr_linenumber" name="L188" href="#L188">188</a> 
<a class="jxr_linenumber" name="L189" href="#L189">189</a>         <em class="jxr_comment">// browseService with guest user</em>
<a class="jxr_linenumber" name="L190" href="#L190">190</a>         BrowseService browseService = getBrowseService( <span class="jxr_string">""</span>, false );
<a class="jxr_linenumber" name="L191" href="#L191">191</a> 
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         List&lt;ManagedRepository&gt; browseResult = browseService.getUserManagableRepositories();
<a class="jxr_linenumber" name="L193" href="#L193">193</a>         assertThat( browseResult )
<a class="jxr_linenumber" name="L194" href="#L194">194</a>                 .isNotNull()
<a class="jxr_linenumber" name="L195" href="#L195">195</a>                 .isNotEmpty().hasSize(1);
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         List&lt;String&gt; repIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L197" href="#L197">197</a>         <strong class="jxr_keyword">for</strong>(ManagedRepository rep : browseResult) {
<a class="jxr_linenumber" name="L198" href="#L198">198</a>             repIds.add(rep.getId());
<a class="jxr_linenumber" name="L199" href="#L199">199</a>         }
<a class="jxr_linenumber" name="L200" href="#L200">200</a>         assertThat(repIds).contains(<span class="jxr_string">"internal"</span>);
<a class="jxr_linenumber" name="L201" href="#L201">201</a> 
<a class="jxr_linenumber" name="L202" href="#L202">202</a>     }
<a class="jxr_linenumber" name="L203" href="#L203">203</a> 
<a class="jxr_linenumber" name="L204" href="#L204">204</a>     @Test
<a class="jxr_linenumber" name="L205" href="#L205">205</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> browsegroupIdWithReleaseStartNumber()
<a class="jxr_linenumber" name="L206" href="#L206">206</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L207" href="#L207">207</a>     {
<a class="jxr_linenumber" name="L208" href="#L208">208</a>         BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L209" href="#L209">209</a>         BrowseResult browseResult = browseService.browseGroupId( <span class="jxr_string">"commons-logging.commons-logging"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         log.info( <span class="jxr_string">"browseResult: {}"</span>, browseResult );
<a class="jxr_linenumber" name="L211" href="#L211">211</a>     }
<a class="jxr_linenumber" name="L212" href="#L212">212</a> 
<a class="jxr_linenumber" name="L213" href="#L213">213</a>     @Test
<a class="jxr_linenumber" name="L214" href="#L214">214</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> versionsList()
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L216" href="#L216">216</a>     {
<a class="jxr_linenumber" name="L217" href="#L217">217</a>         BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         VersionsList versions =
<a class="jxr_linenumber" name="L220" href="#L220">220</a>             browseService.getVersionsList( <span class="jxr_string">"org.apache.karaf.features"</span>, <span class="jxr_string">"org.apache.karaf.features.core"</span>,
<a class="jxr_linenumber" name="L221" href="#L221">221</a>                                            TEST_REPO_ID );
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         assertThat( versions ).isNotNull();
<a class="jxr_linenumber" name="L223" href="#L223">223</a>         assertThat( versions.getVersions() ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L224" href="#L224">224</a>             .isNotNull() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L225" href="#L225">225</a>             .isNotEmpty() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L226" href="#L226">226</a>             .hasSize( 2 ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L227" href="#L227">227</a>             .contains( <span class="jxr_string">"2.2.1"</span>, <span class="jxr_string">"2.2.2"</span> );
<a class="jxr_linenumber" name="L228" href="#L228">228</a>     }
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
<a class="jxr_linenumber" name="L230" href="#L230">230</a>     @Test
<a class="jxr_linenumber" name="L231" href="#L231">231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getProjectVersionMetadata()
<a class="jxr_linenumber" name="L232" href="#L232">232</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L233" href="#L233">233</a>     {
<a class="jxr_linenumber" name="L234" href="#L234">234</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L235" href="#L235">235</a> 
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         ProjectVersionMetadata metadata =
<a class="jxr_linenumber" name="L237" href="#L237">237</a>             browseService.getProjectVersionMetadata( <span class="jxr_string">"org.apache.karaf.features"</span>, <span class="jxr_string">"org.apache.karaf.features.core"</span>,
<a class="jxr_linenumber" name="L238" href="#L238">238</a>                                                      TEST_REPO_ID );
<a class="jxr_linenumber" name="L239" href="#L239">239</a> 
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         assertThat( metadata ).isNotNull();
<a class="jxr_linenumber" name="L241" href="#L241">241</a>     }
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 
<a class="jxr_linenumber" name="L243" href="#L243">243</a>     @Test
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> readArtifactContentEntries()
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L246" href="#L246">246</a>     {
<a class="jxr_linenumber" name="L247" href="#L247">247</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         List&lt;ArtifactContentEntry&gt; artifactContentEntries =
<a class="jxr_linenumber" name="L250" href="#L250">250</a>             browseService.getArtifactContentEntries( <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"1.1"</span>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="L251" href="#L251">251</a>                                                      TEST_REPO_ID );
<a class="jxr_linenumber" name="L252" href="#L252">252</a> 
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         log.info( <span class="jxr_string">"artifactContentEntries: {}"</span>, artifactContentEntries );
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 
<a class="jxr_linenumber" name="L255" href="#L255">255</a>         assertThat( artifactContentEntries ).isNotNull() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L256" href="#L256">256</a>             .isNotEmpty() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L257" href="#L257">257</a>             .hasSize( 2 ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L258" href="#L258">258</a>             .contains( <strong class="jxr_keyword">new</strong> ArtifactContentEntry( <span class="jxr_string">"org"</span>, false, 0, TEST_REPO_ID ), <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L259" href="#L259">259</a>                        <strong class="jxr_keyword">new</strong> ArtifactContentEntry( <span class="jxr_string">"META-INF"</span>, false, 0, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L260" href="#L260">260</a>     }
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
<a class="jxr_linenumber" name="L262" href="#L262">262</a>     @Test
<a class="jxr_linenumber" name="L263" href="#L263">263</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> readArtifactContentEntriesRootPath()
<a class="jxr_linenumber" name="L264" href="#L264">264</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L265" href="#L265">265</a>     {
<a class="jxr_linenumber" name="L266" href="#L266">266</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L267" href="#L267">267</a> 
<a class="jxr_linenumber" name="L268" href="#L268">268</a>         List&lt;ArtifactContentEntry&gt; artifactContentEntries =
<a class="jxr_linenumber" name="L269" href="#L269">269</a>             browseService.getArtifactContentEntries( <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"1.1"</span>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"org/"</span>,
<a class="jxr_linenumber" name="L270" href="#L270">270</a>                                                      TEST_REPO_ID );
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 
<a class="jxr_linenumber" name="L272" href="#L272">272</a>         log.info( <span class="jxr_string">"artifactContentEntries: {}"</span>, artifactContentEntries );
<a class="jxr_linenumber" name="L273" href="#L273">273</a> 
<a class="jxr_linenumber" name="L274" href="#L274">274</a>         assertThat( artifactContentEntries ).isNotNull() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L275" href="#L275">275</a>             .isNotEmpty() <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L276" href="#L276">276</a>             .hasSize( 1 ) <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L277" href="#L277">277</a>             .contains( <strong class="jxr_keyword">new</strong> ArtifactContentEntry( <span class="jxr_string">"org/apache"</span>, false, 1, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L278" href="#L278">278</a>     }
<a class="jxr_linenumber" name="L279" href="#L279">279</a> 
<a class="jxr_linenumber" name="L280" href="#L280">280</a>     @Test
<a class="jxr_linenumber" name="L281" href="#L281">281</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> readArtifactContentEntriesFilesAndDirectories()
<a class="jxr_linenumber" name="L282" href="#L282">282</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L283" href="#L283">283</a>     {
<a class="jxr_linenumber" name="L284" href="#L284">284</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L285" href="#L285">285</a> 
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         List&lt;ArtifactContentEntry&gt; artifactContentEntries =
<a class="jxr_linenumber" name="L287" href="#L287">287</a>             browseService.getArtifactContentEntries( <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"1.1"</span>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="L288" href="#L288">288</a>                                                      <span class="jxr_string">"org/apache/commons/logging/"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L289" href="#L289">289</a> 
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         log.info( <span class="jxr_string">"artifactContentEntries: {}"</span>, artifactContentEntries );
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 
<a class="jxr_linenumber" name="L292" href="#L292">292</a>         assertThat( artifactContentEntries ).isNotNull().isNotEmpty().hasSize( 10 ).contains(
<a class="jxr_linenumber" name="L293" href="#L293">293</a>             <strong class="jxr_keyword">new</strong> ArtifactContentEntry( <span class="jxr_string">"org/apache/commons/logging/impl"</span>, false, 4, TEST_REPO_ID ),
<a class="jxr_linenumber" name="L294" href="#L294">294</a>             <strong class="jxr_keyword">new</strong> ArtifactContentEntry( <span class="jxr_string">"org/apache/commons/logging/LogSource.class"</span>, <strong class="jxr_keyword">true</strong>, 4, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L295" href="#L295">295</a>     }
<a class="jxr_linenumber" name="L296" href="#L296">296</a> 
<a class="jxr_linenumber" name="L297" href="#L297">297</a>     @Test
<a class="jxr_linenumber" name="L298" href="#L298">298</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getArtifactDownloadInfos()
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L300" href="#L300">300</a>     {
<a class="jxr_linenumber" name="L301" href="#L301">301</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L302" href="#L302">302</a> 
<a class="jxr_linenumber" name="L303" href="#L303">303</a>         List&lt;Artifact&gt; artifactDownloadInfos =
<a class="jxr_linenumber" name="L304" href="#L304">304</a>             browseService.getArtifactDownloadInfos( <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"1.1"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L305" href="#L305">305</a> 
<a class="jxr_linenumber" name="L306" href="#L306">306</a>         log.info( <span class="jxr_string">"artifactDownloadInfos {}"</span>, artifactDownloadInfos );
<a class="jxr_linenumber" name="L307" href="#L307">307</a>         assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 3 );
<a class="jxr_linenumber" name="L308" href="#L308">308</a>     }
<a class="jxr_linenumber" name="L309" href="#L309">309</a> 
<a class="jxr_linenumber" name="L310" href="#L310">310</a> 
<a class="jxr_linenumber" name="L311" href="#L311">311</a>     @Test
<a class="jxr_linenumber" name="L312" href="#L312">312</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getArtifactsByMetadata()
<a class="jxr_linenumber" name="L313" href="#L313">313</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L314" href="#L314">314</a>     {
<a class="jxr_linenumber" name="L315" href="#L315">315</a>         <em class="jxr_comment">// START SNIPPET: get-artifacts-by-metadata</em>
<a class="jxr_linenumber" name="L316" href="#L316">316</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L317" href="#L317">317</a> 
<a class="jxr_linenumber" name="L318" href="#L318">318</a>         List&lt;Artifact&gt; artifactDownloadInfos = browseService.getArtifactsByMetadata( <span class="jxr_string">"type"</span>, <span class="jxr_string">"pom"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L319" href="#L319">319</a> 
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 11 );
<a class="jxr_linenumber" name="L321" href="#L321">321</a>         <em class="jxr_comment">// END SNIPPET: get-artifacts-by-metadata</em>
<a class="jxr_linenumber" name="L322" href="#L322">322</a>     }
<a class="jxr_linenumber" name="L323" href="#L323">323</a> 
<a class="jxr_linenumber" name="L324" href="#L324">324</a> 
<a class="jxr_linenumber" name="L325" href="#L325">325</a>     @Test
<a class="jxr_linenumber" name="L326" href="#L326">326</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getArtifactsByProjectVersionMetadata()
<a class="jxr_linenumber" name="L327" href="#L327">327</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L328" href="#L328">328</a>     {
<a class="jxr_linenumber" name="L329" href="#L329">329</a>         <em class="jxr_comment">// START SNIPPET: get-artifacts-by-project-version-metadata</em>
<a class="jxr_linenumber" name="L330" href="#L330">330</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L331" href="#L331">331</a> 
<a class="jxr_linenumber" name="L332" href="#L332">332</a>         browseService.addMetadata( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L333" href="#L333">333</a> 
<a class="jxr_linenumber" name="L334" href="#L334">334</a>         List&lt;Artifact&gt; artifactDownloadInfos =
<a class="jxr_linenumber" name="L335" href="#L335">335</a>             browseService.getArtifactsByProjectVersionMetadata( <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L336" href="#L336">336</a> 
<a class="jxr_linenumber" name="L337" href="#L337">337</a>         assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 3 );
<a class="jxr_linenumber" name="L338" href="#L338">338</a>         <em class="jxr_comment">// END SNIPPET: get-artifacts-by-project-version-metadata</em>
<a class="jxr_linenumber" name="L339" href="#L339">339</a>     }
<a class="jxr_linenumber" name="L340" href="#L340">340</a> 
<a class="jxr_linenumber" name="L341" href="#L341">341</a> 
<a class="jxr_linenumber" name="L342" href="#L342">342</a>     @Test
<a class="jxr_linenumber" name="L343" href="#L343">343</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getArtifactsByProjectVersionMetadataWithNoRepository()
<a class="jxr_linenumber" name="L344" href="#L344">344</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L345" href="#L345">345</a>     {
<a class="jxr_linenumber" name="L346" href="#L346">346</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L347" href="#L347">347</a> 
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         browseService.addMetadata( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 
<a class="jxr_linenumber" name="L350" href="#L350">350</a>         List&lt;Artifact&gt; artifactDownloadInfos =
<a class="jxr_linenumber" name="L351" href="#L351">351</a>             browseService.getArtifactsByProjectVersionMetadata( <span class="jxr_string">"wine"</span>, <span class="jxr_string">"bordeaux"</span>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L352" href="#L352">352</a> 
<a class="jxr_linenumber" name="L353" href="#L353">353</a>         assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 3 );
<a class="jxr_linenumber" name="L354" href="#L354">354</a>     }
<a class="jxr_linenumber" name="L355" href="#L355">355</a> 
<a class="jxr_linenumber" name="L356" href="#L356">356</a> 
<a class="jxr_linenumber" name="L357" href="#L357">357</a>     @Test
<a class="jxr_linenumber" name="L358" href="#L358">358</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getArtifactsByProperty()
<a class="jxr_linenumber" name="L359" href="#L359">359</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L360" href="#L360">360</a>     {
<a class="jxr_linenumber" name="L361" href="#L361">361</a>         <em class="jxr_comment">// START SNIPPET: get-artifacts-by-property</em>
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L363" href="#L363">363</a> 
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         List&lt;Artifact&gt; artifactDownloadInfos =
<a class="jxr_linenumber" name="L365" href="#L365">365</a>             browseService.getArtifactsByProperty( <span class="jxr_string">"org.name"</span>, <span class="jxr_string">"The Apache Software Foundation"</span>, TEST_REPO_ID );
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 
<a class="jxr_linenumber" name="L367" href="#L367">367</a>         assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 7 );
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         <em class="jxr_comment">// END SNIPPET: get-artifacts-by-property</em>
<a class="jxr_linenumber" name="L369" href="#L369">369</a>     }
<a class="jxr_linenumber" name="L370" href="#L370">370</a> 
<a class="jxr_linenumber" name="L371" href="#L371">371</a> 
<a class="jxr_linenumber" name="L372" href="#L372">372</a>     @Test
<a class="jxr_linenumber" name="L373" href="#L373">373</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> searchArtifacts()
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L375" href="#L375">375</a>     {
<a class="jxr_linenumber" name="L376" href="#L376">376</a>         <em class="jxr_comment">// START SNIPPET: search-artifacts</em>
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L378" href="#L378">378</a> 
<a class="jxr_linenumber" name="L379" href="#L379">379</a>         List&lt;Artifact&gt; artifactDownloadInfos =
<a class="jxr_linenumber" name="L380" href="#L380">380</a>             browseService.searchArtifacts( <span class="jxr_string">"The Apache Software Foundation"</span>, TEST_REPO_ID, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L381" href="#L381">381</a> 
<a class="jxr_linenumber" name="L382" href="#L382">382</a>         assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 7 );
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         <em class="jxr_comment">// END SNIPPET: search-artifacts</em>
<a class="jxr_linenumber" name="L384" href="#L384">384</a>     }
<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> searchArtifactsByField()
<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">// START SNIPPET: search-artifacts-by-field</em>
<a class="jxr_linenumber" name="L392" href="#L392">392</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L393" href="#L393">393</a> 
<a class="jxr_linenumber" name="L394" href="#L394">394</a>         List&lt;Artifact&gt; artifactDownloadInfos =
<a class="jxr_linenumber" name="L395" href="#L395">395</a>             browseService.searchArtifacts( <span class="jxr_string">"org.name"</span>, <span class="jxr_string">"The Apache Software Foundation"</span>, TEST_REPO_ID, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L396" href="#L396">396</a> 
<a class="jxr_linenumber" name="L397" href="#L397">397</a>         assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 7 );
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         <em class="jxr_comment">// END SNIPPET: search-artifacts-by-field</em>
<a class="jxr_linenumber" name="L399" href="#L399">399</a>     }
<a class="jxr_linenumber" name="L400" href="#L400">400</a> 
<a class="jxr_linenumber" name="L401" href="#L401">401</a> 
<a class="jxr_linenumber" name="L402" href="#L402">402</a>     @Test
<a class="jxr_linenumber" name="L403" href="#L403">403</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> readArtifactContentText()
<a class="jxr_linenumber" name="L404" href="#L404">404</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L405" href="#L405">405</a>     {
<a class="jxr_linenumber" name="L406" href="#L406">406</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L407" href="#L407">407</a> 
<a class="jxr_linenumber" name="L408" href="#L408">408</a>         WebClient.client( browseService ).accept( MediaType.TEXT_PLAIN );
<a class="jxr_linenumber" name="L409" href="#L409">409</a> 
<a class="jxr_linenumber" name="L410" href="#L410">410</a>         String text =
<a class="jxr_linenumber" name="L411" href="#L411">411</a>             browseService.getArtifactContentText( <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"1.1"</span>, <span class="jxr_string">"sources"</span>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="L412" href="#L412">412</a>                                                   <span class="jxr_string">"org/apache/commons/logging/LogSource.java"</span>,
<a class="jxr_linenumber" name="L413" href="#L413">413</a>                                                   TEST_REPO_ID ).getContent();
<a class="jxr_linenumber" name="L414" href="#L414">414</a> 
<a class="jxr_linenumber" name="L415" href="#L415">415</a>         log.debug( <span class="jxr_string">"text: {}"</span>, text );
<a class="jxr_linenumber" name="L416" href="#L416">416</a> 
<a class="jxr_linenumber" name="L417" href="#L417">417</a>         assertThat( text ).contains( <span class="jxr_string">"package org.apache.commons.logging;"</span> ).contains( <span class="jxr_string">"public class LogSource {"</span> );
<a class="jxr_linenumber" name="L418" href="#L418">418</a>     }
<a class="jxr_linenumber" name="L419" href="#L419">419</a> 
<a class="jxr_linenumber" name="L420" href="#L420">420</a> 
<a class="jxr_linenumber" name="L421" href="#L421">421</a>     @Test
<a class="jxr_linenumber" name="L422" href="#L422">422</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> readArtifactContentTextPom()
<a class="jxr_linenumber" name="L423" href="#L423">423</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L424" href="#L424">424</a>     {
<a class="jxr_linenumber" name="L425" href="#L425">425</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L426" href="#L426">426</a> 
<a class="jxr_linenumber" name="L427" href="#L427">427</a>         WebClient.client( browseService ).accept( MediaType.TEXT_PLAIN );
<a class="jxr_linenumber" name="L428" href="#L428">428</a> 
<a class="jxr_linenumber" name="L429" href="#L429">429</a>         String text =
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             browseService.getArtifactContentText( <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"commons-logging"</span>, <span class="jxr_string">"1.1"</span>, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"pom"</span>, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="L431" href="#L431">431</a>                                                   TEST_REPO_ID ).getContent();
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         log.info( <span class="jxr_string">"text: {}"</span>, text );
<a class="jxr_linenumber" name="L434" href="#L434">434</a> 
<a class="jxr_linenumber" name="L435" href="#L435">435</a>         assertThat( text ).contains(
<a class="jxr_linenumber" name="L436" href="#L436">436</a>             <span class="jxr_string">"&lt;url&gt;http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/&lt;/url&gt;"</span> ).contains(
<a class="jxr_linenumber" name="L437" href="#L437">437</a>             <span class="jxr_string">"&lt;subscribe&gt;commons-dev-subscribe@jakarta.apache.org&lt;/subscribe&gt;"</span> );
<a class="jxr_linenumber" name="L438" href="#L438">438</a>     }
<a class="jxr_linenumber" name="L439" href="#L439">439</a> 
<a class="jxr_linenumber" name="L440" href="#L440">440</a> 
<a class="jxr_linenumber" name="L441" href="#L441">441</a>     @Test
<a class="jxr_linenumber" name="L442" href="#L442">442</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> artifactsNumber()
<a class="jxr_linenumber" name="L443" href="#L443">443</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L444" href="#L444">444</a>     {
<a class="jxr_linenumber" name="L445" href="#L445">445</a>         BrowseService browseService = getBrowseService( authorizationHeader, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L446" href="#L446">446</a> 
<a class="jxr_linenumber" name="L447" href="#L447">447</a>         <em class="jxr_comment">//WebClient.client( browseService ).accept( MediaType.TEXT_PLAIN );</em>
<a class="jxr_linenumber" name="L448" href="#L448">448</a> 
<a class="jxr_linenumber" name="L449" href="#L449">449</a>         <strong class="jxr_keyword">int</strong> number = browseService.getArtifacts( TEST_REPO_ID ).size();
<a class="jxr_linenumber" name="L450" href="#L450">450</a> 
<a class="jxr_linenumber" name="L451" href="#L451">451</a>         log.info( <span class="jxr_string">"getArtifactsNumber: {}"</span>, number );
<a class="jxr_linenumber" name="L452" href="#L452">452</a> 
<a class="jxr_linenumber" name="L453" href="#L453">453</a>         assertTrue( number &gt; 1 );
<a class="jxr_linenumber" name="L454" href="#L454">454</a>     }
<a class="jxr_linenumber" name="L455" href="#L455">455</a> 
<a class="jxr_linenumber" name="L456" href="#L456">456</a>     @Test
<a class="jxr_linenumber" name="L457" href="#L457">457</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> metadatainbatchmode()
<a class="jxr_linenumber" name="L458" href="#L458">458</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L459" href="#L459">459</a>     {
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         scanRepo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L461" href="#L461">461</a>         waitForScanToComplete( TEST_REPO_ID );
<a class="jxr_linenumber" name="L462" href="#L462">462</a> 
<a class="jxr_linenumber" name="L463" href="#L463">463</a>         BrowseService browseService = getBrowseService( authorizationHeader, false );
<a class="jxr_linenumber" name="L464" href="#L464">464</a> 
<a class="jxr_linenumber" name="L465" href="#L465">465</a>         Map&lt;String, String&gt; inputMetadata = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;( 3 );
<a class="jxr_linenumber" name="L466" href="#L466">466</a>         inputMetadata.put( <span class="jxr_string">"buildNumber"</span>, <span class="jxr_string">"1"</span> );
<a class="jxr_linenumber" name="L467" href="#L467">467</a>         inputMetadata.put( <span class="jxr_string">"author"</span>, <span class="jxr_string">"alecharp"</span> );
<a class="jxr_linenumber" name="L468" href="#L468">468</a>         inputMetadata.put( <span class="jxr_string">"jenkins_version"</span>, <span class="jxr_string">"1.486"</span> );
<a class="jxr_linenumber" name="L469" href="#L469">469</a> 
<a class="jxr_linenumber" name="L470" href="#L470">470</a>         MetadataAddRequest metadataAddRequest = <strong class="jxr_keyword">new</strong> MetadataAddRequest();
<a class="jxr_linenumber" name="L471" href="#L471">471</a>         metadataAddRequest.setGroupId( <span class="jxr_string">"commons-cli"</span> );
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         metadataAddRequest.setArtifactId( <span class="jxr_string">"commons-cli"</span> );
<a class="jxr_linenumber" name="L473" href="#L473">473</a>         metadataAddRequest.setVersion( <span class="jxr_string">"1.0"</span> );
<a class="jxr_linenumber" name="L474" href="#L474">474</a>         metadataAddRequest.setMetadatas( inputMetadata );
<a class="jxr_linenumber" name="L475" href="#L475">475</a>         browseService.importMetadata( metadataAddRequest, TEST_REPO_ID );
<a class="jxr_linenumber" name="L476" href="#L476">476</a> 
<a class="jxr_linenumber" name="L477" href="#L477">477</a>         Map&lt;String, String&gt; metadatas =
<a class="jxr_linenumber" name="L478" href="#L478">478</a>             toMap( browseService.getMetadatas( <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"commons-cli"</span>, <span class="jxr_string">"1.0"</span>, TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L479" href="#L479">479</a> 
<a class="jxr_linenumber" name="L480" href="#L480">480</a>         assertThat( metadatas ).isNotNull().isNotEmpty().contains( MapEntry.entry( <span class="jxr_string">"buildNumber"</span>, <span class="jxr_string">"1"</span> ) ).contains(
<a class="jxr_linenumber" name="L481" href="#L481">481</a>             MapEntry.entry( <span class="jxr_string">"author"</span>, <span class="jxr_string">"alecharp"</span> ) ).contains( MapEntry.entry( <span class="jxr_string">"jenkins_version"</span>, <span class="jxr_string">"1.486"</span> ) );
<a class="jxr_linenumber" name="L482" href="#L482">482</a>     }
<a class="jxr_linenumber" name="L483" href="#L483">483</a> 
<a class="jxr_linenumber" name="L484" href="#L484">484</a>     @Before
<a class="jxr_linenumber" name="L485" href="#L485">485</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initialiseTestRepo()
<a class="jxr_linenumber" name="L486" href="#L486">486</a>         <strong class="jxr_keyword">throws</strong> RedbackServiceException, ArchivaRestServiceException, IOException, InterruptedException
<a class="jxr_linenumber" name="L487" href="#L487">487</a>     {
<a class="jxr_linenumber" name="L488" href="#L488">488</a>         <em class="jxr_comment">// force guest user creation if not exists</em>
<a class="jxr_linenumber" name="L489" href="#L489">489</a>         <strong class="jxr_keyword">if</strong> ( getUserService( authorizationHeader ).getGuestUser() == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L490" href="#L490">490</a>         {
<a class="jxr_linenumber" name="L491" href="#L491">491</a>             assertNotNull( getUserService( authorizationHeader ).createGuestUser() );
<a class="jxr_linenumber" name="L492" href="#L492">492</a>         }
<a class="jxr_linenumber" name="L493" href="#L493">493</a> 
<a class="jxr_linenumber" name="L494" href="#L494">494</a>         createAndIndexRepo( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> File( getBasedir(), <span class="jxr_string">"src/test/repo-with-osgi"</span> ).getAbsolutePath(),
<a class="jxr_linenumber" name="L495" href="#L495">495</a>                             false );
<a class="jxr_linenumber" name="L496" href="#L496">496</a> 
<a class="jxr_linenumber" name="L497" href="#L497">497</a>         waitForScanToComplete( TEST_REPO_ID );
<a class="jxr_linenumber" name="L498" href="#L498">498</a>     }
<a class="jxr_linenumber" name="L499" href="#L499">499</a> 
<a class="jxr_linenumber" name="L500" href="#L500">500</a>     @After
<a class="jxr_linenumber" name="L501" href="#L501">501</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteTestRepo()
<a class="jxr_linenumber" name="L502" href="#L502">502</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L503" href="#L503">503</a>     {
<a class="jxr_linenumber" name="L504" href="#L504">504</a>         scanRepo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L505" href="#L505">505</a>         waitForScanToComplete( TEST_REPO_ID );
<a class="jxr_linenumber" name="L506" href="#L506">506</a>         deleteTestRepo( TEST_REPO_ID );
<a class="jxr_linenumber" name="L507" href="#L507">507</a>     }
<a class="jxr_linenumber" name="L508" href="#L508">508</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>
