<!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>AuditManagerTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../testapidocs/org/apache/archiva/audit/AuditManagerTest.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.audit;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ManagedRepositoryConfiguration;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.facets.AuditEvent;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.MetadataRepository;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.easymock.EasyMock;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.easymock.IMocksControl;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.junit.runner.RunWith;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.text.DecimalFormat;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.text.ParseException;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> java.util.TimeZone;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  @RunWith(ArchivaBlockJUnit4ClassRunner.<strong class="jxr_keyword">class</strong>)
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/archiva/audit/AuditManagerTest.html">AuditManagerTest</a>
<a class="jxr_linenumber" name="L47" href="#L47">47</a>      <strong class="jxr_keyword">extends</strong> TestCase
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  {
<a class="jxr_linenumber" name="L49" href="#L49">49</a>      <strong class="jxr_keyword">private</strong> DefaultAuditManager auditManager;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  
<a class="jxr_linenumber" name="L51" href="#L51">51</a>      <strong class="jxr_keyword">private</strong> IMocksControl metadataRepositoryControl;
<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> MetadataRepository metadataRepository;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  
<a class="jxr_linenumber" name="L55" href="#L55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String AUDIT_EVENT_BASE = <span class="jxr_string">"2010/01/18/123456."</span>;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  
<a class="jxr_linenumber" name="L57" href="#L57">57</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="L58" href="#L58">58</a>  
<a class="jxr_linenumber" name="L59" href="#L59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_REPO_ID_2 = <span class="jxr_string">"repo2"</span>;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  
<a class="jxr_linenumber" name="L61" href="#L61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_USER = <span class="jxr_string">"test_user"</span>;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  
<a class="jxr_linenumber" name="L63" href="#L63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_RESOURCE_BASE = <span class="jxr_string">"test/resource"</span>;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  
<a class="jxr_linenumber" name="L65" href="#L65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_IP_ADDRESS = <span class="jxr_string">"127.0.0.1"</span>;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> SimpleDateFormat TIMESTAMP_FORMAT = createTimestampFormat();
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  
<a class="jxr_linenumber" name="L69" href="#L69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> DecimalFormat MILLIS_FORMAT = <strong class="jxr_keyword">new</strong> DecimalFormat( <span class="jxr_string">"000"</span> );
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  
<a class="jxr_linenumber" name="L71" href="#L71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> SimpleDateFormat createTimestampFormat()
<a class="jxr_linenumber" name="L72" href="#L72">72</a>      {
<a class="jxr_linenumber" name="L73" href="#L73">73</a>          SimpleDateFormat fmt = <strong class="jxr_keyword">new</strong> SimpleDateFormat( AuditEvent.TIMESTAMP_FORMAT );
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          fmt.setTimeZone( TimeZone.getTimeZone( <span class="jxr_string">"UTC"</span> ) );
<a class="jxr_linenumber" name="L75" href="#L75">75</a>          <strong class="jxr_keyword">return</strong> fmt;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      }
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      @Override
<a class="jxr_linenumber" name="L79" href="#L79">79</a>      @Before
<a class="jxr_linenumber" name="L80" href="#L80">80</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp()
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L82" href="#L82">82</a>      {
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          <strong class="jxr_keyword">super</strong>.setUp();
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          auditManager = <strong class="jxr_keyword">new</strong> DefaultAuditManager();
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          metadataRepositoryControl = EasyMock.createControl();
<a class="jxr_linenumber" name="L88" href="#L88">88</a>          metadataRepository = metadataRepositoryControl.createMock( MetadataRepository.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  
<a class="jxr_linenumber" name="L90" href="#L90">90</a>          ManagedRepositoryConfiguration repository = <strong class="jxr_keyword">new</strong> ManagedRepositoryConfiguration();
<a class="jxr_linenumber" name="L91" href="#L91">91</a>          repository.setId( TEST_REPO_ID );
<a class="jxr_linenumber" name="L92" href="#L92">92</a>          repository.setLocation( <span class="jxr_string">""</span> );
<a class="jxr_linenumber" name="L93" href="#L93">93</a>      }
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  
<a class="jxr_linenumber" name="L95" href="#L95">95</a>      @Test
<a class="jxr_linenumber" name="L96" href="#L96">96</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMostRecentEvents()
<a class="jxr_linenumber" name="L97" href="#L97">97</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L98" href="#L98">98</a>      {
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          <strong class="jxr_keyword">int</strong> numEvents = 11;
<a class="jxr_linenumber" name="L100" href="#L100">100</a>         List&lt;AuditEvent&gt; expectedEvents = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( numEvents );
<a class="jxr_linenumber" name="L101" href="#L101">101</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; numEvents; i++ )
<a class="jxr_linenumber" name="L102" href="#L102">102</a>         {
<a class="jxr_linenumber" name="L103" href="#L103">103</a>             AuditEvent event = createEvent( AUDIT_EVENT_BASE + MILLIS_FORMAT.format( i ) );
<a class="jxr_linenumber" name="L104" href="#L104">104</a>             expectedEvents.add( event );
<a class="jxr_linenumber" name="L105" href="#L105">105</a>         }
<a class="jxr_linenumber" name="L106" href="#L106">106</a> 
<a class="jxr_linenumber" name="L107" href="#L107">107</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L108" href="#L108">108</a>             getEventNames( expectedEvents ) );
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 
<a class="jxr_linenumber" name="L110" href="#L110">110</a>         <strong class="jxr_keyword">for</strong> ( AuditEvent event : expectedEvents.subList( 1, expectedEvents.size() ) )
<a class="jxr_linenumber" name="L111" href="#L111">111</a>         {
<a class="jxr_linenumber" name="L112" href="#L112">112</a>             EasyMock.expect(
<a class="jxr_linenumber" name="L113" href="#L113">113</a>                 metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID, event.getName() ) ).andReturn(
<a class="jxr_linenumber" name="L114" href="#L114">114</a>                 event );
<a class="jxr_linenumber" name="L115" href="#L115">115</a>         }
<a class="jxr_linenumber" name="L116" href="#L116">116</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
<a class="jxr_linenumber" name="L118" href="#L118">118</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L119" href="#L119">119</a>             auditManager.getMostRecentAuditEvents( metadataRepository, Collections.singletonList( TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         assertNotNull( events );
<a class="jxr_linenumber" name="L121" href="#L121">121</a>         assertEquals( numEvents - 1, events.size() );
<a class="jxr_linenumber" name="L122" href="#L122">122</a>         <strong class="jxr_keyword">int</strong> expectedTimestampCounter = numEvents - 1;
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         <strong class="jxr_keyword">for</strong> ( AuditEvent event : events )
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         {
<a class="jxr_linenumber" name="L125" href="#L125">125</a>             String num = MILLIS_FORMAT.format( expectedTimestampCounter );
<a class="jxr_linenumber" name="L126" href="#L126">126</a>             assertTestEvent( event, AUDIT_EVENT_BASE + num, getDefaultTestResourceName( num ) );
<a class="jxr_linenumber" name="L127" href="#L127">127</a>             expectedTimestampCounter--;
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         }
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L131" href="#L131">131</a>     }
<a class="jxr_linenumber" name="L132" href="#L132">132</a> 
<a class="jxr_linenumber" name="L133" href="#L133">133</a>     @Test
<a class="jxr_linenumber" name="L134" href="#L134">134</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMostRecentEventsLessThan10()
<a class="jxr_linenumber" name="L135" href="#L135">135</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L136" href="#L136">136</a>     {
<a class="jxr_linenumber" name="L137" href="#L137">137</a>         <strong class="jxr_keyword">int</strong> numEvents = 5;
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         List&lt;AuditEvent&gt; expectedEvents = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( numEvents );
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; numEvents; i++ )
<a class="jxr_linenumber" name="L140" href="#L140">140</a>         {
<a class="jxr_linenumber" name="L141" href="#L141">141</a>             expectedEvents.add( createEvent( AUDIT_EVENT_BASE + MILLIS_FORMAT.format( i ) ) );
<a class="jxr_linenumber" name="L142" href="#L142">142</a>         }
<a class="jxr_linenumber" name="L143" href="#L143">143</a> 
<a class="jxr_linenumber" name="L144" href="#L144">144</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L145" href="#L145">145</a>             getEventNames( expectedEvents ) );
<a class="jxr_linenumber" name="L146" href="#L146">146</a>         <strong class="jxr_keyword">for</strong> ( AuditEvent event : expectedEvents )
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>             EasyMock.expect(
<a class="jxr_linenumber" name="L149" href="#L149">149</a>                 metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID, event.getName() ) ).andReturn(
<a class="jxr_linenumber" name="L150" href="#L150">150</a>                 event );
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         }
<a class="jxr_linenumber" name="L152" href="#L152">152</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L155" href="#L155">155</a>             auditManager.getMostRecentAuditEvents( metadataRepository, Collections.singletonList( TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         assertNotNull( events );
<a class="jxr_linenumber" name="L157" href="#L157">157</a>         assertEquals( numEvents, events.size() );
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         <strong class="jxr_keyword">int</strong> expectedTimestampCounter = numEvents - 1;
<a class="jxr_linenumber" name="L159" href="#L159">159</a>         <strong class="jxr_keyword">for</strong> ( AuditEvent event : events )
<a class="jxr_linenumber" name="L160" href="#L160">160</a>         {
<a class="jxr_linenumber" name="L161" href="#L161">161</a>             String num = MILLIS_FORMAT.format( expectedTimestampCounter );
<a class="jxr_linenumber" name="L162" href="#L162">162</a>             assertTestEvent( event, AUDIT_EVENT_BASE + num, getDefaultTestResourceName( num ) );
<a class="jxr_linenumber" name="L163" href="#L163">163</a>             expectedTimestampCounter--;
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         }
<a class="jxr_linenumber" name="L165" href="#L165">165</a> 
<a class="jxr_linenumber" name="L166" href="#L166">166</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L167" href="#L167">167</a>     }
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
<a class="jxr_linenumber" name="L169" href="#L169">169</a>     @Test
<a class="jxr_linenumber" name="L170" href="#L170">170</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMostRecentEventsInterleavedRepositories()
<a class="jxr_linenumber" name="L171" href="#L171">171</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     {
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         <strong class="jxr_keyword">int</strong> numEvents = 11;
<a class="jxr_linenumber" name="L174" href="#L174">174</a>         Map&lt;String, List&lt;String&gt;&gt; eventNames = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, List&lt;String&gt;&gt;();
<a class="jxr_linenumber" name="L175" href="#L175">175</a>         List&lt;AuditEvent&gt; events = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L176" href="#L176">176</a>         eventNames.put( TEST_REPO_ID, <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;() );
<a class="jxr_linenumber" name="L177" href="#L177">177</a>         eventNames.put( TEST_REPO_ID_2, <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;() );
<a class="jxr_linenumber" name="L178" href="#L178">178</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; numEvents; i++ )
<a class="jxr_linenumber" name="L179" href="#L179">179</a>         {
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             String repositoryId = i % 2 == 0 ? TEST_REPO_ID : TEST_REPO_ID_2;
<a class="jxr_linenumber" name="L181" href="#L181">181</a>             String num = MILLIS_FORMAT.format( i );
<a class="jxr_linenumber" name="L182" href="#L182">182</a>             AuditEvent event = createEvent( repositoryId, AUDIT_EVENT_BASE + num, getDefaultTestResourceName( num ) );
<a class="jxr_linenumber" name="L183" href="#L183">183</a>             events.add( event );
<a class="jxr_linenumber" name="L184" href="#L184">184</a>             eventNames.get( repositoryId ).add( event.getName() );
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         }
<a class="jxr_linenumber" name="L186" href="#L186">186</a> 
<a class="jxr_linenumber" name="L187" href="#L187">187</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L188" href="#L188">188</a>             eventNames.get( TEST_REPO_ID ) );
<a class="jxr_linenumber" name="L189" href="#L189">189</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID_2, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L190" href="#L190">190</a>             eventNames.get( TEST_REPO_ID_2 ) );
<a class="jxr_linenumber" name="L191" href="#L191">191</a> 
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         <strong class="jxr_keyword">for</strong> ( AuditEvent event : events.subList( 1, events.size() ) )
<a class="jxr_linenumber" name="L193" href="#L193">193</a>         {
<a class="jxr_linenumber" name="L194" href="#L194">194</a>             EasyMock.expect( metadataRepository.getMetadataFacet( event.getRepositoryId(), AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L195" href="#L195">195</a>                                                                   event.getName() ) ).andReturn( event );
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         }
<a class="jxr_linenumber" name="L197" href="#L197">197</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 
<a class="jxr_linenumber" name="L199" href="#L199">199</a>         events =
<a class="jxr_linenumber" name="L200" href="#L200">200</a>             auditManager.getMostRecentAuditEvents( metadataRepository, Arrays.asList( TEST_REPO_ID, TEST_REPO_ID_2 ) );
<a class="jxr_linenumber" name="L201" href="#L201">201</a>         assertNotNull( events );
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         assertEquals( numEvents - 1, events.size() );
<a class="jxr_linenumber" name="L203" href="#L203">203</a>         <strong class="jxr_keyword">int</strong> expectedTimestampCounter = numEvents - 1;
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         <strong class="jxr_keyword">for</strong> ( AuditEvent event : events )
<a class="jxr_linenumber" name="L205" href="#L205">205</a>         {
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             String num = MILLIS_FORMAT.format( expectedTimestampCounter );
<a class="jxr_linenumber" name="L207" href="#L207">207</a>             String expectedRepoId = expectedTimestampCounter % 2 == 0 ? TEST_REPO_ID : TEST_REPO_ID_2;
<a class="jxr_linenumber" name="L208" href="#L208">208</a>             assertTestEvent( event, expectedRepoId, AUDIT_EVENT_BASE + num, getDefaultTestResourceName( num ) );
<a class="jxr_linenumber" name="L209" href="#L209">209</a>             expectedTimestampCounter--;
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         }
<a class="jxr_linenumber" name="L211" href="#L211">211</a> 
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L213" href="#L213">213</a>     }
<a class="jxr_linenumber" name="L214" href="#L214">214</a> 
<a class="jxr_linenumber" name="L215" href="#L215">215</a>     @Test
<a class="jxr_linenumber" name="L216" href="#L216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetMostRecentEventsWhenEmpty()
<a class="jxr_linenumber" name="L217" href="#L217">217</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 
<a class="jxr_linenumber" name="L219" href="#L219">219</a>     {
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L222" href="#L222">222</a>             Collections.&lt;String&gt;emptyList() );
<a class="jxr_linenumber" name="L223" href="#L223">223</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L224" href="#L224">224</a> 
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         assertTrue( auditManager.getMostRecentAuditEvents( metadataRepository,
<a class="jxr_linenumber" name="L226" href="#L226">226</a>                                                            Collections.singletonList( TEST_REPO_ID ) ).isEmpty() );
<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
<a class="jxr_linenumber" name="L228" href="#L228">228</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L229" href="#L229">229</a>     }
<a class="jxr_linenumber" name="L230" href="#L230">230</a> 
<a class="jxr_linenumber" name="L231" href="#L231">231</a>     @Test
<a class="jxr_linenumber" name="L232" href="#L232">232</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddAuditEvent()
<a class="jxr_linenumber" name="L233" href="#L233">233</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     {
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         AuditEvent event = createEvent( <strong class="jxr_keyword">new</strong> Date() );
<a class="jxr_linenumber" name="L237" href="#L237">237</a> 
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         metadataRepository.addMetadataFacet( TEST_REPO_ID, event );
<a class="jxr_linenumber" name="L239" href="#L239">239</a> 
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L241" href="#L241">241</a> 
<a class="jxr_linenumber" name="L242" href="#L242">242</a>         auditManager.addAuditEvent( metadataRepository, event );
<a class="jxr_linenumber" name="L243" href="#L243">243</a> 
<a class="jxr_linenumber" name="L244" href="#L244">244</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L245" href="#L245">245</a>     }
<a class="jxr_linenumber" name="L246" href="#L246">246</a> 
<a class="jxr_linenumber" name="L247" href="#L247">247</a>     @Test
<a class="jxr_linenumber" name="L248" href="#L248">248</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddAuditEventNoRepositoryId()
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L250" href="#L250">250</a>     {
<a class="jxr_linenumber" name="L251" href="#L251">251</a>         AuditEvent event = createEvent( <strong class="jxr_keyword">new</strong> Date() );
<a class="jxr_linenumber" name="L252" href="#L252">252</a>         event.setRepositoryId( <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L253" href="#L253">253</a> 
<a class="jxr_linenumber" name="L254" href="#L254">254</a>         <em class="jxr_comment">// should just be ignored</em>
<a class="jxr_linenumber" name="L255" href="#L255">255</a> 
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L257" href="#L257">257</a> 
<a class="jxr_linenumber" name="L258" href="#L258">258</a>         auditManager.addAuditEvent( metadataRepository, event );
<a class="jxr_linenumber" name="L259" href="#L259">259</a> 
<a class="jxr_linenumber" name="L260" href="#L260">260</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L261" href="#L261">261</a>     }
<a class="jxr_linenumber" name="L262" href="#L262">262</a> 
<a class="jxr_linenumber" name="L263" href="#L263">263</a>     @Test
<a class="jxr_linenumber" name="L264" href="#L264">264</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeleteStats()
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L266" href="#L266">266</a> 
<a class="jxr_linenumber" name="L267" href="#L267">267</a>     {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>         metadataRepository.removeMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID );
<a class="jxr_linenumber" name="L269" href="#L269">269</a> 
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 
<a class="jxr_linenumber" name="L272" href="#L272">272</a>         auditManager.deleteAuditEvents( metadataRepository, TEST_REPO_ID );
<a class="jxr_linenumber" name="L273" href="#L273">273</a> 
<a class="jxr_linenumber" name="L274" href="#L274">274</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L275" href="#L275">275</a>     }
<a class="jxr_linenumber" name="L276" href="#L276">276</a> 
<a class="jxr_linenumber" name="L277" href="#L277">277</a>     @Test
<a class="jxr_linenumber" name="L278" href="#L278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsRangeInside()
<a class="jxr_linenumber" name="L279" href="#L279">279</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L280" href="#L280">280</a> 
<a class="jxr_linenumber" name="L281" href="#L281">281</a>     {
<a class="jxr_linenumber" name="L282" href="#L282">282</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L283" href="#L283">283</a> 
<a class="jxr_linenumber" name="L284" href="#L284">284</a>         AuditEvent event1 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 ) );
<a class="jxr_linenumber" name="L285" href="#L285">285</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         AuditEvent expectedEvent = createEvent( expectedTimestamp );
<a class="jxr_linenumber" name="L287" href="#L287">287</a>         AuditEvent event3 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 ) );
<a class="jxr_linenumber" name="L288" href="#L288">288</a> 
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L290" href="#L290">290</a>             Arrays.asList( event1.getName(), expectedEvent.getName(), event3.getName() ) );
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 
<a class="jxr_linenumber" name="L292" href="#L292">292</a>         <em class="jxr_comment">// only match the middle one</em>
<a class="jxr_linenumber" name="L293" href="#L293">293</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L294" href="#L294">294</a>                                                               expectedEvent.getName() ) ).andReturn( expectedEvent );
<a class="jxr_linenumber" name="L295" href="#L295">295</a> 
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L297" href="#L297">297</a> 
<a class="jxr_linenumber" name="L298" href="#L298">298</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L299" href="#L299">299</a>             auditManager.getAuditEventsInRange( metadataRepository, Collections.singletonList( TEST_REPO_ID ),
<a class="jxr_linenumber" name="L300" href="#L300">300</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 4000 ),
<a class="jxr_linenumber" name="L301" href="#L301">301</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 2000 ) );
<a class="jxr_linenumber" name="L302" href="#L302">302</a> 
<a class="jxr_linenumber" name="L303" href="#L303">303</a>         assertEquals( 1, events.size() );
<a class="jxr_linenumber" name="L304" href="#L304">304</a>         assertTestEvent( events.get( 0 ), TIMESTAMP_FORMAT.format( expectedTimestamp ), expectedEvent.getResource() );
<a class="jxr_linenumber" name="L305" href="#L305">305</a> 
<a class="jxr_linenumber" name="L306" href="#L306">306</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L307" href="#L307">307</a>     }
<a class="jxr_linenumber" name="L308" href="#L308">308</a> 
<a class="jxr_linenumber" name="L309" href="#L309">309</a>     @Test
<a class="jxr_linenumber" name="L310" href="#L310">310</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsRangeUpperOutside()
<a class="jxr_linenumber" name="L311" href="#L311">311</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L312" href="#L312">312</a>     {
<a class="jxr_linenumber" name="L313" href="#L313">313</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L314" href="#L314">314</a> 
<a class="jxr_linenumber" name="L315" href="#L315">315</a>         AuditEvent event1 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 ) );
<a class="jxr_linenumber" name="L316" href="#L316">316</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L317" href="#L317">317</a>         AuditEvent expectedEvent2 = createEvent( expectedTimestamp );
<a class="jxr_linenumber" name="L318" href="#L318">318</a>         Date ts3 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 );
<a class="jxr_linenumber" name="L319" href="#L319">319</a>         AuditEvent expectedEvent3 = createEvent( ts3 );
<a class="jxr_linenumber" name="L320" href="#L320">320</a> 
<a class="jxr_linenumber" name="L321" href="#L321">321</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L322" href="#L322">322</a>             Arrays.asList( event1.getName(), expectedEvent2.getName(), expectedEvent3.getName() ) );
<a class="jxr_linenumber" name="L323" href="#L323">323</a> 
<a class="jxr_linenumber" name="L324" href="#L324">324</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L325" href="#L325">325</a>                                                               expectedEvent2.getName() ) ).andReturn( expectedEvent2 );
<a class="jxr_linenumber" name="L326" href="#L326">326</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L327" href="#L327">327</a>                                                               expectedEvent3.getName() ) ).andReturn( expectedEvent3 );
<a class="jxr_linenumber" name="L328" href="#L328">328</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L329" href="#L329">329</a> 
<a class="jxr_linenumber" name="L330" href="#L330">330</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L331" href="#L331">331</a>             auditManager.getAuditEventsInRange( metadataRepository, Collections.singletonList( TEST_REPO_ID ),
<a class="jxr_linenumber" name="L332" href="#L332">332</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 4000 ), current );
<a class="jxr_linenumber" name="L333" href="#L333">333</a> 
<a class="jxr_linenumber" name="L334" href="#L334">334</a>         assertEquals( 2, events.size() );
<a class="jxr_linenumber" name="L335" href="#L335">335</a>         assertTestEvent( events.get( 0 ), TIMESTAMP_FORMAT.format( ts3 ), expectedEvent3.getResource() );
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         assertTestEvent( events.get( 1 ), TIMESTAMP_FORMAT.format( expectedTimestamp ), expectedEvent2.getResource() );
<a class="jxr_linenumber" name="L337" href="#L337">337</a> 
<a class="jxr_linenumber" name="L338" href="#L338">338</a>         metadataRepositoryControl.verify();
<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>     @Test
<a class="jxr_linenumber" name="L342" href="#L342">342</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsRangeLowerOutside()
<a class="jxr_linenumber" name="L343" href="#L343">343</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L344" href="#L344">344</a>     {
<a class="jxr_linenumber" name="L345" href="#L345">345</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L346" href="#L346">346</a> 
<a class="jxr_linenumber" name="L347" href="#L347">347</a>         Date ts1 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 );
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         AuditEvent expectedEvent1 = createEvent( ts1 );
<a class="jxr_linenumber" name="L349" href="#L349">349</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L350" href="#L350">350</a>         AuditEvent expectedEvent2 = createEvent( expectedTimestamp );
<a class="jxr_linenumber" name="L351" href="#L351">351</a>         AuditEvent event3 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 ) );
<a class="jxr_linenumber" name="L352" href="#L352">352</a> 
<a class="jxr_linenumber" name="L353" href="#L353">353</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L354" href="#L354">354</a>             Arrays.asList( expectedEvent1.getName(), expectedEvent2.getName(), event3.getName() ) );
<a class="jxr_linenumber" name="L355" href="#L355">355</a> 
<a class="jxr_linenumber" name="L356" href="#L356">356</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L357" href="#L357">357</a>                                                               expectedEvent1.getName() ) ).andReturn( expectedEvent1 );
<a class="jxr_linenumber" name="L358" href="#L358">358</a> 
<a class="jxr_linenumber" name="L359" href="#L359">359</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L360" href="#L360">360</a>                                                               expectedEvent2.getName() ) ).andReturn( expectedEvent2 );
<a class="jxr_linenumber" name="L361" href="#L361">361</a> 
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L363" href="#L363">363</a> 
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L365" href="#L365">365</a>             auditManager.getAuditEventsInRange( metadataRepository, Collections.singletonList( TEST_REPO_ID ),
<a class="jxr_linenumber" name="L366" href="#L366">366</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 20000 ),
<a class="jxr_linenumber" name="L367" href="#L367">367</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 2000 ) );
<a class="jxr_linenumber" name="L368" href="#L368">368</a> 
<a class="jxr_linenumber" name="L369" href="#L369">369</a>         assertEquals( 2, events.size() );
<a class="jxr_linenumber" name="L370" href="#L370">370</a>         assertTestEvent( events.get( 0 ), TIMESTAMP_FORMAT.format( expectedTimestamp ), expectedEvent2.getResource() );
<a class="jxr_linenumber" name="L371" href="#L371">371</a>         assertTestEvent( events.get( 1 ), TIMESTAMP_FORMAT.format( ts1 ), expectedEvent1.getResource() );
<a class="jxr_linenumber" name="L372" href="#L372">372</a> 
<a class="jxr_linenumber" name="L373" href="#L373">373</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L374" href="#L374">374</a>     }
<a class="jxr_linenumber" name="L375" href="#L375">375</a> 
<a class="jxr_linenumber" name="L376" href="#L376">376</a>     @Test
<a class="jxr_linenumber" name="L377" href="#L377">377</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsRangeLowerAndUpperOutside()
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L379" href="#L379">379</a>     {
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L381" href="#L381">381</a> 
<a class="jxr_linenumber" name="L382" href="#L382">382</a>         Date ts1 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 );
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         AuditEvent expectedEvent1 = createEvent( ts1 );
<a class="jxr_linenumber" name="L384" href="#L384">384</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L385" href="#L385">385</a>         AuditEvent expectedEvent2 = createEvent( expectedTimestamp );
<a class="jxr_linenumber" name="L386" href="#L386">386</a>         Date ts3 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 );
<a class="jxr_linenumber" name="L387" href="#L387">387</a>         AuditEvent expectedEvent3 = createEvent( ts3 );
<a class="jxr_linenumber" name="L388" href="#L388">388</a> 
<a class="jxr_linenumber" name="L389" href="#L389">389</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L390" href="#L390">390</a>             Arrays.asList( expectedEvent1.getName(), expectedEvent2.getName(), expectedEvent3.getName() ) );
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 
<a class="jxr_linenumber" name="L392" href="#L392">392</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L393" href="#L393">393</a>                                                               expectedEvent1.getName() ) ).andReturn( expectedEvent1 );
<a class="jxr_linenumber" name="L394" href="#L394">394</a> 
<a class="jxr_linenumber" name="L395" href="#L395">395</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L396" href="#L396">396</a>                                                               expectedEvent2.getName() ) ).andReturn( expectedEvent2 );
<a class="jxr_linenumber" name="L397" href="#L397">397</a> 
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L399" href="#L399">399</a>                                                               expectedEvent3.getName() ) ).andReturn( expectedEvent3 );
<a class="jxr_linenumber" name="L400" href="#L400">400</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L401" href="#L401">401</a> 
<a class="jxr_linenumber" name="L402" href="#L402">402</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L403" href="#L403">403</a>             auditManager.getAuditEventsInRange( metadataRepository, Collections.singletonList( TEST_REPO_ID ),
<a class="jxr_linenumber" name="L404" href="#L404">404</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 20000 ), current );
<a class="jxr_linenumber" name="L405" href="#L405">405</a> 
<a class="jxr_linenumber" name="L406" href="#L406">406</a>         assertEquals( 3, events.size() );
<a class="jxr_linenumber" name="L407" href="#L407">407</a>         assertTestEvent( events.get( 0 ), TIMESTAMP_FORMAT.format( ts3 ), expectedEvent3.getResource() );
<a class="jxr_linenumber" name="L408" href="#L408">408</a>         assertTestEvent( events.get( 1 ), TIMESTAMP_FORMAT.format( expectedTimestamp ), expectedEvent2.getResource() );
<a class="jxr_linenumber" name="L409" href="#L409">409</a>         assertTestEvent( events.get( 2 ), TIMESTAMP_FORMAT.format( ts1 ), expectedEvent1.getResource() );
<a class="jxr_linenumber" name="L410" href="#L410">410</a> 
<a class="jxr_linenumber" name="L411" href="#L411">411</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L412" href="#L412">412</a>     }
<a class="jxr_linenumber" name="L413" href="#L413">413</a> 
<a class="jxr_linenumber" name="L414" href="#L414">414</a>     @Test
<a class="jxr_linenumber" name="L415" href="#L415">415</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsWithResource()
<a class="jxr_linenumber" name="L416" href="#L416">416</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L417" href="#L417">417</a>     {
<a class="jxr_linenumber" name="L418" href="#L418">418</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L419" href="#L419">419</a> 
<a class="jxr_linenumber" name="L420" href="#L420">420</a>         Date ts1 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 );
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         AuditEvent expectedEvent1 = createEvent( ts1 );
<a class="jxr_linenumber" name="L422" href="#L422">422</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L423" href="#L423">423</a>         AuditEvent expectedEvent2 = createEvent( expectedTimestamp );
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         expectedEvent2.setResource( <span class="jxr_string">"different-resource"</span> );
<a class="jxr_linenumber" name="L425" href="#L425">425</a>         Date ts3 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 );
<a class="jxr_linenumber" name="L426" href="#L426">426</a>         AuditEvent expectedEvent3 = createEvent( ts3 );
<a class="jxr_linenumber" name="L427" href="#L427">427</a> 
<a class="jxr_linenumber" name="L428" href="#L428">428</a> 
<a class="jxr_linenumber" name="L429" href="#L429">429</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             Arrays.asList( expectedEvent1.getName(), expectedEvent2.getName(), expectedEvent3.getName() ) );
<a class="jxr_linenumber" name="L431" href="#L431">431</a> 
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L434" href="#L434">434</a>                                                               expectedEvent1.getName() ) ).andReturn( expectedEvent1 );
<a class="jxr_linenumber" name="L435" href="#L435">435</a> 
<a class="jxr_linenumber" name="L436" href="#L436">436</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L437" href="#L437">437</a>                                                               expectedEvent2.getName() ) ).andReturn( expectedEvent2 );
<a class="jxr_linenumber" name="L438" href="#L438">438</a> 
<a class="jxr_linenumber" name="L439" href="#L439">439</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID,
<a class="jxr_linenumber" name="L440" href="#L440">440</a>                                                               expectedEvent3.getName() ) ).andReturn( expectedEvent3 );
<a class="jxr_linenumber" name="L441" href="#L441">441</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L442" href="#L442">442</a> 
<a class="jxr_linenumber" name="L443" href="#L443">443</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L444" href="#L444">444</a>             auditManager.getAuditEventsInRange( metadataRepository, Collections.singletonList( TEST_REPO_ID ),
<a class="jxr_linenumber" name="L445" href="#L445">445</a>                                                 TEST_RESOURCE_BASE, <strong class="jxr_keyword">new</strong> Date( current.getTime() - 20000 ), current );
<a class="jxr_linenumber" name="L446" href="#L446">446</a> 
<a class="jxr_linenumber" name="L447" href="#L447">447</a>         assertEquals( 2, events.size() );
<a class="jxr_linenumber" name="L448" href="#L448">448</a>         assertTestEvent( events.get( 0 ), TIMESTAMP_FORMAT.format( ts3 ), expectedEvent3.getResource() );
<a class="jxr_linenumber" name="L449" href="#L449">449</a>         assertTestEvent( events.get( 1 ), TIMESTAMP_FORMAT.format( ts1 ), expectedEvent1.getResource() );
<a class="jxr_linenumber" name="L450" href="#L450">450</a> 
<a class="jxr_linenumber" name="L451" href="#L451">451</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L452" href="#L452">452</a>     }
<a class="jxr_linenumber" name="L453" href="#L453">453</a> 
<a class="jxr_linenumber" name="L454" href="#L454">454</a>     @Test
<a class="jxr_linenumber" name="L455" href="#L455">455</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsWithNonExistantResource()
<a class="jxr_linenumber" name="L456" href="#L456">456</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L457" href="#L457">457</a>     {
<a class="jxr_linenumber" name="L458" href="#L458">458</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         AuditEvent expectedEvent1 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 ) );
<a class="jxr_linenumber" name="L461" href="#L461">461</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L462" href="#L462">462</a>         AuditEvent expectedEvent2 = createEvent( expectedTimestamp );
<a class="jxr_linenumber" name="L463" href="#L463">463</a>         expectedEvent2.setResource( <span class="jxr_string">"different-resource"</span> );
<a class="jxr_linenumber" name="L464" href="#L464">464</a>         AuditEvent expectedEvent3 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 ) );
<a class="jxr_linenumber" name="L465" href="#L465">465</a> 
<a class="jxr_linenumber" name="L466" href="#L466">466</a> 
<a class="jxr_linenumber" name="L467" href="#L467">467</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) ).andReturn(
<a class="jxr_linenumber" name="L468" href="#L468">468</a>             Arrays.asList( expectedEvent1.getName(), expectedEvent2.getName(), expectedEvent3.getName() ) );
<a class="jxr_linenumber" name="L469" href="#L469">469</a> 
<a class="jxr_linenumber" name="L470" href="#L470">470</a> 
<a class="jxr_linenumber" name="L471" href="#L471">471</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID, expectedEvent1.getName() ) ).andReturn( expectedEvent1 );
<a class="jxr_linenumber" name="L472" href="#L472">472</a> 
<a class="jxr_linenumber" name="L473" href="#L473">473</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID, expectedEvent2.getName() ) ).andReturn( expectedEvent2 );
<a class="jxr_linenumber" name="L474" href="#L474">474</a> 
<a class="jxr_linenumber" name="L475" href="#L475">475</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID, expectedEvent3.getName() ) ).andReturn( expectedEvent3 );
<a class="jxr_linenumber" name="L476" href="#L476">476</a> 
<a class="jxr_linenumber" name="L477" href="#L477">477</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L478" href="#L478">478</a> 
<a class="jxr_linenumber" name="L479" href="#L479">479</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L480" href="#L480">480</a>             auditManager.getAuditEventsInRange( metadataRepository, Collections.singletonList( TEST_REPO_ID ), <span class="jxr_string">"foo"</span>,
<a class="jxr_linenumber" name="L481" href="#L481">481</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 20000 ), current );
<a class="jxr_linenumber" name="L482" href="#L482">482</a> 
<a class="jxr_linenumber" name="L483" href="#L483">483</a>         assertEquals( 0, events.size() );
<a class="jxr_linenumber" name="L484" href="#L484">484</a> 
<a class="jxr_linenumber" name="L485" href="#L485">485</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L486" href="#L486">486</a>     }
<a class="jxr_linenumber" name="L487" href="#L487">487</a> 
<a class="jxr_linenumber" name="L488" href="#L488">488</a>     @Test
<a class="jxr_linenumber" name="L489" href="#L489">489</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsRangeMultipleRepositories()
<a class="jxr_linenumber" name="L490" href="#L490">490</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L491" href="#L491">491</a>     {
<a class="jxr_linenumber" name="L492" href="#L492">492</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L493" href="#L493">493</a> 
<a class="jxr_linenumber" name="L494" href="#L494">494</a>         Date ts1 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 );
<a class="jxr_linenumber" name="L495" href="#L495">495</a>         AuditEvent expectedEvent1 = createEvent( ts1 );
<a class="jxr_linenumber" name="L496" href="#L496">496</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L497" href="#L497">497</a>         AuditEvent expectedEvent2 = createEvent( expectedTimestamp );
<a class="jxr_linenumber" name="L498" href="#L498">498</a>         expectedEvent2.setRepositoryId( TEST_REPO_ID_2 );
<a class="jxr_linenumber" name="L499" href="#L499">499</a>         Date ts3 = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 );
<a class="jxr_linenumber" name="L500" href="#L500">500</a>         AuditEvent expectedEvent3 = createEvent( ts3 );
<a class="jxr_linenumber" name="L501" href="#L501">501</a> 
<a class="jxr_linenumber" name="L502" href="#L502">502</a> 
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) )
<a class="jxr_linenumber" name="L504" href="#L504">504</a>             .andReturn( Arrays.asList( expectedEvent1.getName(), expectedEvent3.getName() )  );
<a class="jxr_linenumber" name="L505" href="#L505">505</a> 
<a class="jxr_linenumber" name="L506" href="#L506">506</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID_2, AuditEvent.FACET_ID ) )
<a class="jxr_linenumber" name="L507" href="#L507">507</a>             .andReturn( Arrays.asList( expectedEvent2.getName() ) );
<a class="jxr_linenumber" name="L508" href="#L508">508</a> 
<a class="jxr_linenumber" name="L509" href="#L509">509</a> 
<a class="jxr_linenumber" name="L510" href="#L510">510</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID, expectedEvent1.getName() ) )
<a class="jxr_linenumber" name="L511" href="#L511">511</a>             .andReturn( expectedEvent1 );
<a class="jxr_linenumber" name="L512" href="#L512">512</a> 
<a class="jxr_linenumber" name="L513" href="#L513">513</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID_2, AuditEvent.FACET_ID, expectedEvent2.getName() ) )
<a class="jxr_linenumber" name="L514" href="#L514">514</a>             .andReturn( expectedEvent2 );
<a class="jxr_linenumber" name="L515" href="#L515">515</a> 
<a class="jxr_linenumber" name="L516" href="#L516">516</a>         EasyMock.expect( metadataRepository.getMetadataFacet( TEST_REPO_ID, AuditEvent.FACET_ID, expectedEvent3.getName() ) )
<a class="jxr_linenumber" name="L517" href="#L517">517</a>             .andReturn( expectedEvent3 );
<a class="jxr_linenumber" name="L518" href="#L518">518</a> 
<a class="jxr_linenumber" name="L519" href="#L519">519</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L520" href="#L520">520</a> 
<a class="jxr_linenumber" name="L521" href="#L521">521</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L522" href="#L522">522</a>             auditManager.getAuditEventsInRange( metadataRepository, Arrays.asList( TEST_REPO_ID, TEST_REPO_ID_2 ),
<a class="jxr_linenumber" name="L523" href="#L523">523</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 20000 ), current );
<a class="jxr_linenumber" name="L524" href="#L524">524</a> 
<a class="jxr_linenumber" name="L525" href="#L525">525</a>         assertEquals( 3, events.size() );
<a class="jxr_linenumber" name="L526" href="#L526">526</a>         assertTestEvent( events.get( 0 ), TEST_REPO_ID, TIMESTAMP_FORMAT.format( ts3 ), expectedEvent3.getResource() );
<a class="jxr_linenumber" name="L527" href="#L527">527</a>         assertTestEvent( events.get( 1 ), TEST_REPO_ID_2, TIMESTAMP_FORMAT.format( expectedTimestamp ),
<a class="jxr_linenumber" name="L528" href="#L528">528</a>                          expectedEvent2.getResource() );
<a class="jxr_linenumber" name="L529" href="#L529">529</a>         assertTestEvent( events.get( 2 ), TEST_REPO_ID, TIMESTAMP_FORMAT.format( ts1 ), expectedEvent1.getResource() );
<a class="jxr_linenumber" name="L530" href="#L530">530</a> 
<a class="jxr_linenumber" name="L531" href="#L531">531</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L532" href="#L532">532</a>     }
<a class="jxr_linenumber" name="L533" href="#L533">533</a> 
<a class="jxr_linenumber" name="L534" href="#L534">534</a>     @Test
<a class="jxr_linenumber" name="L535" href="#L535">535</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetEventsRangeNotInside()
<a class="jxr_linenumber" name="L536" href="#L536">536</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L537" href="#L537">537</a>     {
<a class="jxr_linenumber" name="L538" href="#L538">538</a>         Date current = <strong class="jxr_keyword">new</strong> Date();
<a class="jxr_linenumber" name="L539" href="#L539">539</a> 
<a class="jxr_linenumber" name="L540" href="#L540">540</a>         String name1 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 12345 ) ).getName();
<a class="jxr_linenumber" name="L541" href="#L541">541</a>         Date expectedTimestamp = <strong class="jxr_keyword">new</strong> Date( current.getTime() - 3000 );
<a class="jxr_linenumber" name="L542" href="#L542">542</a>         String name2 = createEvent( expectedTimestamp ).getName();
<a class="jxr_linenumber" name="L543" href="#L543">543</a>         String name3 = createEvent( <strong class="jxr_keyword">new</strong> Date( current.getTime() - 1000 ) ).getName();
<a class="jxr_linenumber" name="L544" href="#L544">544</a> 
<a class="jxr_linenumber" name="L545" href="#L545">545</a>         EasyMock.expect( metadataRepository.getMetadataFacets( TEST_REPO_ID, AuditEvent.FACET_ID ) )
<a class="jxr_linenumber" name="L546" href="#L546">546</a>             .andReturn( Arrays.asList( name1, name2, name3 ) );
<a class="jxr_linenumber" name="L547" href="#L547">547</a> 
<a class="jxr_linenumber" name="L548" href="#L548">548</a>         metadataRepositoryControl.replay();
<a class="jxr_linenumber" name="L549" href="#L549">549</a> 
<a class="jxr_linenumber" name="L550" href="#L550">550</a>         List&lt;AuditEvent&gt; events =
<a class="jxr_linenumber" name="L551" href="#L551">551</a>             auditManager.getAuditEventsInRange( metadataRepository, Collections.singletonList( TEST_REPO_ID ),
<a class="jxr_linenumber" name="L552" href="#L552">552</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 20000 ),
<a class="jxr_linenumber" name="L553" href="#L553">553</a>                                                 <strong class="jxr_keyword">new</strong> Date( current.getTime() - 16000 ) );
<a class="jxr_linenumber" name="L554" href="#L554">554</a> 
<a class="jxr_linenumber" name="L555" href="#L555">555</a>         assertEquals( 0, events.size() );
<a class="jxr_linenumber" name="L556" href="#L556">556</a> 
<a class="jxr_linenumber" name="L557" href="#L557">557</a>         metadataRepositoryControl.verify();
<a class="jxr_linenumber" name="L558" href="#L558">558</a>     }
<a class="jxr_linenumber" name="L559" href="#L559">559</a> 
<a class="jxr_linenumber" name="L560" href="#L560">560</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getDefaultTestResourceName( String num )
<a class="jxr_linenumber" name="L561" href="#L561">561</a>     {
<a class="jxr_linenumber" name="L562" href="#L562">562</a>         <strong class="jxr_keyword">return</strong> TEST_RESOURCE_BASE + <span class="jxr_string">"/"</span> + num + <span class="jxr_string">".xml"</span>;
<a class="jxr_linenumber" name="L563" href="#L563">563</a>     }
<a class="jxr_linenumber" name="L564" href="#L564">564</a> 
<a class="jxr_linenumber" name="L565" href="#L565">565</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> AuditEvent createEvent( Date timestamp )
<a class="jxr_linenumber" name="L566" href="#L566">566</a>         <strong class="jxr_keyword">throws</strong> ParseException
<a class="jxr_linenumber" name="L567" href="#L567">567</a>     {
<a class="jxr_linenumber" name="L568" href="#L568">568</a>         <strong class="jxr_keyword">return</strong> createEvent( TIMESTAMP_FORMAT.format( timestamp ) );
<a class="jxr_linenumber" name="L569" href="#L569">569</a>     }
<a class="jxr_linenumber" name="L570" href="#L570">570</a> 
<a class="jxr_linenumber" name="L571" href="#L571">571</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> AuditEvent createEvent( String ts )
<a class="jxr_linenumber" name="L572" href="#L572">572</a>         <strong class="jxr_keyword">throws</strong> ParseException
<a class="jxr_linenumber" name="L573" href="#L573">573</a>     {
<a class="jxr_linenumber" name="L574" href="#L574">574</a>         <strong class="jxr_keyword">return</strong> createEvent( TEST_REPO_ID, ts, getDefaultTestResourceName(
<a class="jxr_linenumber" name="L575" href="#L575">575</a>             ts.substring( AUDIT_EVENT_BASE.length(), AUDIT_EVENT_BASE.length() + 3 ) ) );
<a class="jxr_linenumber" name="L576" href="#L576">576</a>     }
<a class="jxr_linenumber" name="L577" href="#L577">577</a> 
<a class="jxr_linenumber" name="L578" href="#L578">578</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> AuditEvent createEvent( String repositoryId, String timestamp, String resource )
<a class="jxr_linenumber" name="L579" href="#L579">579</a>         <strong class="jxr_keyword">throws</strong> ParseException
<a class="jxr_linenumber" name="L580" href="#L580">580</a>     {
<a class="jxr_linenumber" name="L581" href="#L581">581</a>         AuditEvent event = <strong class="jxr_keyword">new</strong> AuditEvent();
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         event.setTimestamp( TIMESTAMP_FORMAT.parse( timestamp ) );
<a class="jxr_linenumber" name="L583" href="#L583">583</a>         event.setAction( AuditEvent.UPLOAD_FILE );
<a class="jxr_linenumber" name="L584" href="#L584">584</a>         event.setRemoteIP( TEST_IP_ADDRESS );
<a class="jxr_linenumber" name="L585" href="#L585">585</a>         event.setRepositoryId( repositoryId );
<a class="jxr_linenumber" name="L586" href="#L586">586</a>         event.setUserId( TEST_USER );
<a class="jxr_linenumber" name="L587" href="#L587">587</a>         event.setResource( resource );
<a class="jxr_linenumber" name="L588" href="#L588">588</a>         <strong class="jxr_keyword">return</strong> event;
<a class="jxr_linenumber" name="L589" href="#L589">589</a>     }
<a class="jxr_linenumber" name="L590" href="#L590">590</a> 
<a class="jxr_linenumber" name="L591" href="#L591">591</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertTestEvent( AuditEvent event, String timestamp, String resource )
<a class="jxr_linenumber" name="L592" href="#L592">592</a>     {
<a class="jxr_linenumber" name="L593" href="#L593">593</a>         assertTestEvent( event, TEST_REPO_ID, timestamp, resource );
<a class="jxr_linenumber" name="L594" href="#L594">594</a>     }
<a class="jxr_linenumber" name="L595" href="#L595">595</a> 
<a class="jxr_linenumber" name="L596" href="#L596">596</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertTestEvent( AuditEvent event, String repositoryId, String timestamp, String resource )
<a class="jxr_linenumber" name="L597" href="#L597">597</a>     {
<a class="jxr_linenumber" name="L598" href="#L598">598</a>         assertEquals( timestamp, TIMESTAMP_FORMAT.format( event.getTimestamp() ) );
<a class="jxr_linenumber" name="L599" href="#L599">599</a>         assertEquals( AuditEvent.UPLOAD_FILE, event.getAction() );
<a class="jxr_linenumber" name="L600" href="#L600">600</a>         assertEquals( TEST_IP_ADDRESS, event.getRemoteIP() );
<a class="jxr_linenumber" name="L601" href="#L601">601</a>         assertEquals( repositoryId, event.getRepositoryId() );
<a class="jxr_linenumber" name="L602" href="#L602">602</a>         assertEquals( TEST_USER, event.getUserId() );
<a class="jxr_linenumber" name="L603" href="#L603">603</a>         assertEquals( resource, event.getResource() );
<a class="jxr_linenumber" name="L604" href="#L604">604</a>     }
<a class="jxr_linenumber" name="L605" href="#L605">605</a> 
<a class="jxr_linenumber" name="L606" href="#L606">606</a>     <strong class="jxr_keyword">private</strong> List&lt;String&gt; getEventNames( List&lt;AuditEvent&gt; events )
<a class="jxr_linenumber" name="L607" href="#L607">607</a>     {
<a class="jxr_linenumber" name="L608" href="#L608">608</a>         List&lt;String&gt; names = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( events.size() );
<a class="jxr_linenumber" name="L609" href="#L609">609</a>         <strong class="jxr_keyword">for</strong> ( AuditEvent event : events )
<a class="jxr_linenumber" name="L610" href="#L610">610</a>         {
<a class="jxr_linenumber" name="L611" href="#L611">611</a>             names.add( event.getName() );
<a class="jxr_linenumber" name="L612" href="#L612">612</a>         }
<a class="jxr_linenumber" name="L613" href="#L613">613</a>         <strong class="jxr_keyword">return</strong> names;
<a class="jxr_linenumber" name="L614" href="#L614">614</a>     }
<a class="jxr_linenumber" name="L615" href="#L615">615</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>
