<!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>RepositoryGroupAdminTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../testapidocs/org/apache/archiva/admin/repository/group/RepositoryGroupAdminTest.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.admin.repository.group;
<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.RepositoryAdminException;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.beans.ManagedRepository;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.beans.RepositoryGroup;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.group.RepositoryGroupAdmin;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.repository.AbstractRepositoryAdminTest;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.facets.AuditEvent;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment"> * @author Olivier Lamy</em>
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/admin/repository/group/RepositoryGroupAdminTest.html">RepositoryGroupAdminTest</a>
<a class="jxr_linenumber" name="L37" href="#L37">37</a>      <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.html">AbstractRepositoryAdminTest</a>
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  {
<a class="jxr_linenumber" name="L39" href="#L39">39</a>      @Inject
<a class="jxr_linenumber" name="L40" href="#L40">40</a>      RepositoryGroupAdmin repositoryGroupAdmin;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  
<a class="jxr_linenumber" name="L42" href="#L42">42</a>      @Test
<a class="jxr_linenumber" name="L43" href="#L43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAndDeleteGroup()
<a class="jxr_linenumber" name="L44" href="#L44">44</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L45" href="#L45">45</a>      {
<a class="jxr_linenumber" name="L46" href="#L46">46</a>          <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L47" href="#L47">47</a>          {
<a class="jxr_linenumber" name="L48" href="#L48">48</a>              ManagedRepository managedRepositoryOne =
<a class="jxr_linenumber" name="L49" href="#L49">49</a>                  getTestManagedRepository( <span class="jxr_string">"test-new-one"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-one"</span> );
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  
<a class="jxr_linenumber" name="L51" href="#L51">51</a>              ManagedRepository managedRepositoryTwo =
<a class="jxr_linenumber" name="L52" href="#L52">52</a>                  getTestManagedRepository( <span class="jxr_string">"test-new-two"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-two"</span> );
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  
<a class="jxr_linenumber" name="L54" href="#L54">54</a>              managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  
<a class="jxr_linenumber" name="L56" href="#L56">56</a>              managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  
<a class="jxr_linenumber" name="L58" href="#L58">58</a>              RepositoryGroup repositoryGroup =
<a class="jxr_linenumber" name="L59" href="#L59">59</a>                  <strong class="jxr_keyword">new</strong> RepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ) );
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  
<a class="jxr_linenumber" name="L61" href="#L61">61</a>              mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  
<a class="jxr_linenumber" name="L63" href="#L63">63</a>              repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  
<a class="jxr_linenumber" name="L65" href="#L65">65</a>              assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L66" href="#L66">66</a>              assertEquals( <span class="jxr_string">"repo-group-one"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
<a class="jxr_linenumber" name="L67" href="#L67">67</a>              assertEquals( 2, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
<a class="jxr_linenumber" name="L68" href="#L68">68</a>              assertEquals( Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ),
<a class="jxr_linenumber" name="L69" href="#L69">69</a>                            repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  
<a class="jxr_linenumber" name="L71" href="#L71">71</a>              <em class="jxr_comment">// verify if default values were saved</em>
<a class="jxr_linenumber" name="L72" href="#L72">72</a>              assertEquals(30, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getMergedIndexTtl() );
<a class="jxr_linenumber" name="L73" href="#L73">73</a>              assertEquals(<span class="jxr_string">"/.indexer"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getMergedIndexPath() );
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  
<a class="jxr_linenumber" name="L75" href="#L75">75</a>              repositoryGroupAdmin.deleteRepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  
<a class="jxr_linenumber" name="L77" href="#L77">77</a>              assertEquals( 0, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  
<a class="jxr_linenumber" name="L79" href="#L79">79</a>              assertEquals( 2, mockAuditListener.getAuditEvents().size() );
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  
<a class="jxr_linenumber" name="L81" href="#L81">81</a>              assertEquals( AuditEvent.ADD_REPO_GROUP, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
<a class="jxr_linenumber" name="L82" href="#L82">82</a>              assertEquals( AuditEvent.DELETE_REPO_GROUP, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          }
<a class="jxr_linenumber" name="L84" href="#L84">84</a>          <strong class="jxr_keyword">finally</strong>
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          {
<a class="jxr_linenumber" name="L86" href="#L86">86</a>              mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L87" href="#L87">87</a>              managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-one"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L88" href="#L88">88</a>              managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-two"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L89" href="#L89">89</a>          }
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      }
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  
<a class="jxr_linenumber" name="L92" href="#L92">92</a>      @Test
<a class="jxr_linenumber" name="L93" href="#L93">93</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAndUpdateAndDeleteGroup()
<a class="jxr_linenumber" name="L94" href="#L94">94</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L95" href="#L95">95</a>      {
<a class="jxr_linenumber" name="L96" href="#L96">96</a>          <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L97" href="#L97">97</a>          {
<a class="jxr_linenumber" name="L98" href="#L98">98</a>              ManagedRepository managedRepositoryOne =
<a class="jxr_linenumber" name="L99" href="#L99">99</a>                  getTestManagedRepository( <span class="jxr_string">"test-new-one"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-one"</span> );
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 
<a class="jxr_linenumber" name="L101" href="#L101">101</a>             ManagedRepository managedRepositoryTwo =
<a class="jxr_linenumber" name="L102" href="#L102">102</a>                 getTestManagedRepository( <span class="jxr_string">"test-new-two"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-two"</span> );
<a class="jxr_linenumber" name="L103" href="#L103">103</a> 
<a class="jxr_linenumber" name="L104" href="#L104">104</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 
<a class="jxr_linenumber" name="L106" href="#L106">106</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
<a class="jxr_linenumber" name="L108" href="#L108">108</a>             RepositoryGroup repositoryGroup = <strong class="jxr_keyword">new</strong> RepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, Arrays.asList( <span class="jxr_string">"test-new-one"</span> ) )
<a class="jxr_linenumber" name="L109" href="#L109">109</a>                     .mergedIndexTtl( 20 ).mergedIndexPath( <span class="jxr_string">"/.nonDefaultPath"</span> );
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>             repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
<a class="jxr_linenumber" name="L115" href="#L115">115</a>             assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L116" href="#L116">116</a>             assertEquals( <span class="jxr_string">"repo-group-one"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
<a class="jxr_linenumber" name="L117" href="#L117">117</a>             assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
<a class="jxr_linenumber" name="L118" href="#L118">118</a>             assertEquals( Arrays.asList( <span class="jxr_string">"test-new-one"</span> ),
<a class="jxr_linenumber" name="L119" href="#L119">119</a>                           repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
<a class="jxr_linenumber" name="L120" href="#L120">120</a>             assertEquals( 20, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getMergedIndexTtl() );
<a class="jxr_linenumber" name="L121" href="#L121">121</a>             assertEquals( <span class="jxr_string">"/.nonDefaultPath"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getMergedIndexPath() );
<a class="jxr_linenumber" name="L122" href="#L122">122</a> 
<a class="jxr_linenumber" name="L123" href="#L123">123</a>             repositoryGroup = repositoryGroupAdmin.getRepositoryGroup( <span class="jxr_string">"repo-group-one"</span> );
<a class="jxr_linenumber" name="L124" href="#L124">124</a>             assertNotNull( repositoryGroup );
<a class="jxr_linenumber" name="L125" href="#L125">125</a> 
<a class="jxr_linenumber" name="L126" href="#L126">126</a>             repositoryGroup.addRepository( managedRepositoryTwo.getId() );
<a class="jxr_linenumber" name="L127" href="#L127">127</a> 
<a class="jxr_linenumber" name="L128" href="#L128">128</a>             repositoryGroupAdmin.updateRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
<a class="jxr_linenumber" name="L130" href="#L130">130</a>             assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L131" href="#L131">131</a>             assertEquals( <span class="jxr_string">"repo-group-one"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
<a class="jxr_linenumber" name="L132" href="#L132">132</a>             assertEquals( 2, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             assertEquals( Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ),
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                           repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 
<a class="jxr_linenumber" name="L136" href="#L136">136</a>             repositoryGroupAdmin.deleteRepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
<a class="jxr_linenumber" name="L138" href="#L138">138</a>             assertEquals( 0, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L139" href="#L139">139</a> 
<a class="jxr_linenumber" name="L140" href="#L140">140</a>             assertEquals( 3, mockAuditListener.getAuditEvents().size() );
<a class="jxr_linenumber" name="L141" href="#L141">141</a> 
<a class="jxr_linenumber" name="L142" href="#L142">142</a>             assertEquals( AuditEvent.ADD_REPO_GROUP, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
<a class="jxr_linenumber" name="L143" href="#L143">143</a>             assertEquals( AuditEvent.MODIFY_REPO_GROUP, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
<a class="jxr_linenumber" name="L144" href="#L144">144</a>             assertEquals( AuditEvent.DELETE_REPO_GROUP, mockAuditListener.getAuditEvents().get( 2 ).getAction() );
<a class="jxr_linenumber" name="L145" href="#L145">145</a>         }
<a class="jxr_linenumber" name="L146" href="#L146">146</a>         <strong class="jxr_keyword">finally</strong>
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L149" href="#L149">149</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-one"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L150" href="#L150">150</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-two"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         }
<a class="jxr_linenumber" name="L152" href="#L152">152</a>     }
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
<a class="jxr_linenumber" name="L154" href="#L154">154</a>     @Test
<a class="jxr_linenumber" name="L155" href="#L155">155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAndDeleteGroupWithRemovedManagedRepo()
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L157" href="#L157">157</a>     {
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L159" href="#L159">159</a>         {
<a class="jxr_linenumber" name="L160" href="#L160">160</a>             ManagedRepository managedRepositoryOne =
<a class="jxr_linenumber" name="L161" href="#L161">161</a>                 getTestManagedRepository( <span class="jxr_string">"test-new-one"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-one"</span> );
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>             ManagedRepository managedRepositoryTwo =
<a class="jxr_linenumber" name="L164" href="#L164">164</a>                 getTestManagedRepository( <span class="jxr_string">"test-new-two"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-two"</span> );
<a class="jxr_linenumber" name="L165" href="#L165">165</a> 
<a class="jxr_linenumber" name="L166" href="#L166">166</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L167" href="#L167">167</a> 
<a class="jxr_linenumber" name="L168" href="#L168">168</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L169" href="#L169">169</a> 
<a class="jxr_linenumber" name="L170" href="#L170">170</a>             RepositoryGroup repositoryGroup =
<a class="jxr_linenumber" name="L171" href="#L171">171</a>                 <strong class="jxr_keyword">new</strong> RepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ) );
<a class="jxr_linenumber" name="L172" href="#L172">172</a> 
<a class="jxr_linenumber" name="L173" href="#L173">173</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a>             repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
<a class="jxr_linenumber" name="L177" href="#L177">177</a>             assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L178" href="#L178">178</a>             assertEquals( <span class="jxr_string">"repo-group-one"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
<a class="jxr_linenumber" name="L179" href="#L179">179</a>             assertEquals( 2, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             assertEquals( Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ),
<a class="jxr_linenumber" name="L181" href="#L181">181</a>                           repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
<a class="jxr_linenumber" name="L182" href="#L182">182</a> 
<a class="jxr_linenumber" name="L183" href="#L183">183</a>             <em class="jxr_comment">// deleting a managed repo to validate repogroup correctly updated !</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-one"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L185" href="#L185">185</a> 
<a class="jxr_linenumber" name="L186" href="#L186">186</a>             assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L187" href="#L187">187</a>             assertEquals( <span class="jxr_string">"repo-group-one"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
<a class="jxr_linenumber" name="L188" href="#L188">188</a>             assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
<a class="jxr_linenumber" name="L189" href="#L189">189</a>             assertEquals( Arrays.asList( <span class="jxr_string">"test-new-two"</span> ),
<a class="jxr_linenumber" name="L190" href="#L190">190</a>                           repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
<a class="jxr_linenumber" name="L191" href="#L191">191</a> 
<a class="jxr_linenumber" name="L192" href="#L192">192</a>             repositoryGroupAdmin.deleteRepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 
<a class="jxr_linenumber" name="L194" href="#L194">194</a>             assertEquals( 0, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L195" href="#L195">195</a> 
<a class="jxr_linenumber" name="L196" href="#L196">196</a>             assertEquals( 3, mockAuditListener.getAuditEvents().size() );
<a class="jxr_linenumber" name="L197" href="#L197">197</a> 
<a class="jxr_linenumber" name="L198" href="#L198">198</a>             assertEquals( AuditEvent.ADD_REPO_GROUP, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
<a class="jxr_linenumber" name="L199" href="#L199">199</a>             assertEquals( AuditEvent.DELETE_MANAGED_REPO, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
<a class="jxr_linenumber" name="L200" href="#L200">200</a>             assertEquals( AuditEvent.DELETE_REPO_GROUP, mockAuditListener.getAuditEvents().get( 2 ).getAction() );
<a class="jxr_linenumber" name="L201" href="#L201">201</a>         }
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         <strong class="jxr_keyword">finally</strong>
<a class="jxr_linenumber" name="L203" href="#L203">203</a>         {
<a class="jxr_linenumber" name="L204" href="#L204">204</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L205" href="#L205">205</a> 
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-two"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>     }
<a class="jxr_linenumber" name="L209" href="#L209">209</a> 
<a class="jxr_linenumber" name="L210" href="#L210">210</a>     @Test( expected = RepositoryAdminException.<strong class="jxr_keyword">class</strong> )
<a class="jxr_linenumber" name="L211" href="#L211">211</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddGroupWithInvalidMergedIndexTtl() <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L213" href="#L213">213</a>             ManagedRepository managedRepositoryOne =
<a class="jxr_linenumber" name="L214" href="#L214">214</a>                     getTestManagedRepository( <span class="jxr_string">"test-new-one"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-one"</span> );
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 
<a class="jxr_linenumber" name="L216" href="#L216">216</a>             ManagedRepository managedRepositoryTwo =
<a class="jxr_linenumber" name="L217" href="#L217">217</a>                     getTestManagedRepository( <span class="jxr_string">"test-new-two"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-two"</span> );
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 
<a class="jxr_linenumber" name="L219" href="#L219">219</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
<a class="jxr_linenumber" name="L221" href="#L221">221</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L222" href="#L222">222</a> 
<a class="jxr_linenumber" name="L223" href="#L223">223</a>             RepositoryGroup repositoryGroup =
<a class="jxr_linenumber" name="L224" href="#L224">224</a>                     <strong class="jxr_keyword">new</strong> RepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ) )
<a class="jxr_linenumber" name="L225" href="#L225">225</a>                     .mergedIndexTtl( -1 );
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 
<a class="jxr_linenumber" name="L227" href="#L227">227</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L228" href="#L228">228</a> 
<a class="jxr_linenumber" name="L229" href="#L229">229</a>             repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L230" href="#L230">230</a>         }
<a class="jxr_linenumber" name="L231" href="#L231">231</a>         <strong class="jxr_keyword">finally</strong>
<a class="jxr_linenumber" name="L232" href="#L232">232</a>         {
<a class="jxr_linenumber" name="L233" href="#L233">233</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L234" href="#L234">234</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-one"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L235" href="#L235">235</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-two"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         }
<a class="jxr_linenumber" name="L237" href="#L237">237</a>     }
<a class="jxr_linenumber" name="L238" href="#L238">238</a> 
<a class="jxr_linenumber" name="L239" href="#L239">239</a>     @Test( expected = RepositoryAdminException.<strong class="jxr_keyword">class</strong> )
<a class="jxr_linenumber" name="L240" href="#L240">240</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddAndUpdateGroupWithInvalidMergedIndexTtl() <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L242" href="#L242">242</a>             ManagedRepository managedRepositoryOne =
<a class="jxr_linenumber" name="L243" href="#L243">243</a>                     getTestManagedRepository( <span class="jxr_string">"test-new-one"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-one"</span> );
<a class="jxr_linenumber" name="L244" href="#L244">244</a> 
<a class="jxr_linenumber" name="L245" href="#L245">245</a>             ManagedRepository managedRepositoryTwo =
<a class="jxr_linenumber" name="L246" href="#L246">246</a>                     getTestManagedRepository( <span class="jxr_string">"test-new-two"</span>, APPSERVER_BASE_PATH + File.separator + <span class="jxr_string">"test-new-two"</span> );
<a class="jxr_linenumber" name="L247" href="#L247">247</a> 
<a class="jxr_linenumber" name="L248" href="#L248">248</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L249" href="#L249">249</a> 
<a class="jxr_linenumber" name="L250" href="#L250">250</a>             managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, false, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L251" href="#L251">251</a> 
<a class="jxr_linenumber" name="L252" href="#L252">252</a>             RepositoryGroup repositoryGroup =
<a class="jxr_linenumber" name="L253" href="#L253">253</a>                     <strong class="jxr_keyword">new</strong> RepositoryGroup( <span class="jxr_string">"repo-group-one"</span>, Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ) );
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 
<a class="jxr_linenumber" name="L255" href="#L255">255</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L256" href="#L256">256</a> 
<a class="jxr_linenumber" name="L257" href="#L257">257</a>             repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 
<a class="jxr_linenumber" name="L259" href="#L259">259</a>             assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
<a class="jxr_linenumber" name="L260" href="#L260">260</a>             assertEquals( <span class="jxr_string">"repo-group-one"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
<a class="jxr_linenumber" name="L261" href="#L261">261</a>             assertEquals( 2, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
<a class="jxr_linenumber" name="L262" href="#L262">262</a>             assertEquals( Arrays.asList( <span class="jxr_string">"test-new-one"</span>, <span class="jxr_string">"test-new-two"</span> ),
<a class="jxr_linenumber" name="L263" href="#L263">263</a>                     repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
<a class="jxr_linenumber" name="L264" href="#L264">264</a> 
<a class="jxr_linenumber" name="L265" href="#L265">265</a>             <em class="jxr_comment">// verify if default values were saved</em>
<a class="jxr_linenumber" name="L266" href="#L266">266</a>             assertEquals(30, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getMergedIndexTtl() );
<a class="jxr_linenumber" name="L267" href="#L267">267</a>             assertEquals(<span class="jxr_string">"/.indexer"</span>, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getMergedIndexPath() );
<a class="jxr_linenumber" name="L268" href="#L268">268</a> 
<a class="jxr_linenumber" name="L269" href="#L269">269</a>             repositoryGroup = repositoryGroupAdmin.getRepositoryGroup( <span class="jxr_string">"repo-group-one"</span> );
<a class="jxr_linenumber" name="L270" href="#L270">270</a>             assertNotNull( repositoryGroup );
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             repositoryGroup.mergedIndexTtl( -1 );
<a class="jxr_linenumber" name="L273" href="#L273">273</a> 
<a class="jxr_linenumber" name="L274" href="#L274">274</a>             repositoryGroupAdmin.updateRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
<a class="jxr_linenumber" name="L275" href="#L275">275</a>         }
<a class="jxr_linenumber" name="L276" href="#L276">276</a>         <strong class="jxr_keyword">finally</strong>
<a class="jxr_linenumber" name="L277" href="#L277">277</a>         {
<a class="jxr_linenumber" name="L278" href="#L278">278</a>             mockAuditListener.clearEvents();
<a class="jxr_linenumber" name="L279" href="#L279">279</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-one"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L280" href="#L280">280</a>             managedRepositoryAdmin.deleteManagedRepository( <span class="jxr_string">"test-new-two"</span>, getFakeAuditInformation(), <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L281" href="#L281">281</a>         }
<a class="jxr_linenumber" name="L282" href="#L282">282</a>     }
<a class="jxr_linenumber" name="L283" href="#L283">283</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>
