<!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=ISO-8859-1" />
<title>Maven2OsgiConverterTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
<a name="2" href="#2">2</a>   
<a name="3" href="#3">3</a>   <em class="jxr_comment">/*</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a name="20" href="#20">20</a>  <em class="jxr_comment"> */</em>
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.ArtifactStub;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.PlexusTestCase;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">/**</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * Test for {@link DefaultMaven2OsgiConverter}</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * </em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:carlos@apache.org" target="alexandria_uri">mailto:carlos@apache.org</a>"&gt;Carlos Sanchez&lt;/a&gt;</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> */</em>
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> Maven2OsgiConverterTest
<a name="34" href="#34">34</a>      <strong class="jxr_keyword">extends</strong> PlexusTestCase
<a name="35" href="#35">35</a>  {
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> Maven2OsgiConverter maven2Osgi = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetBundleSymbolicName()
<a name="40" href="#40">40</a>      {
<a name="41" href="#41">41</a>          ArtifactStub artifact = getTestArtifact();
<a name="42" href="#42">42</a>          String s;
<a name="43" href="#43">43</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="44" href="#44">44</a>          assertEquals( <span class="jxr_string">"org.apache.commons.logging"</span>, s );
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>          artifact.setGroupId( <span class="jxr_string">"org.apache.commons"</span> );
<a name="47" href="#47">47</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="48" href="#48">48</a>          assertEquals( <span class="jxr_string">"org.apache.commons.logging"</span>, s );
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>          artifact.setGroupId( <span class="jxr_string">"org.apache.commons.commons-logging"</span> );
<a name="51" href="#51">51</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="52" href="#52">52</a>          assertEquals( <span class="jxr_string">"org.apache.commons.commons-logging"</span>, s );
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>          artifact.setGroupId( <span class="jxr_string">"org.apache"</span> );
<a name="55" href="#55">55</a>          artifact.setArtifactId( <span class="jxr_string">"org.apache.commons-logging"</span> );
<a name="56" href="#56">56</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="57" href="#57">57</a>          assertEquals( <span class="jxr_string">"org.apache.commons-logging"</span>, s );
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>          artifact.setFile( getTestFile( <span class="jxr_string">"junit-3.8.2.jar"</span> ) );
<a name="60" href="#60">60</a>          artifact.setGroupId( <span class="jxr_string">"junit"</span> );
<a name="61" href="#61">61</a>          artifact.setArtifactId( <span class="jxr_string">"junit"</span> );
<a name="62" href="#62">62</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="63" href="#63">63</a>          assertEquals( <span class="jxr_string">"junit"</span>, s );
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>          artifact.setFile( getTestFile( <span class="jxr_string">"xml-apis-1.0.b2.jar"</span> ) );
<a name="66" href="#66">66</a>          artifact.setGroupId( <span class="jxr_string">"xml-apis"</span> );
<a name="67" href="#67">67</a>          artifact.setArtifactId( <span class="jxr_string">"a"</span> );
<a name="68" href="#68">68</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="69" href="#69">69</a>          assertEquals( <span class="jxr_string">"xml-apis.a"</span>, s );
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>          artifact.setFile( getTestFile( <span class="jxr_string">"test-1.jar"</span> ) );
<a name="72" href="#72">72</a>          artifact.setGroupId( <span class="jxr_string">"test"</span> );
<a name="73" href="#73">73</a>          artifact.setArtifactId( <span class="jxr_string">"test"</span> );
<a name="74" href="#74">74</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="75" href="#75">75</a>          assertEquals( <span class="jxr_string">"test"</span>, s );
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>          artifact.setFile( getTestFile( <span class="jxr_string">"xercesImpl-2.6.2.jar"</span> ) );
<a name="78" href="#78">78</a>          artifact.setGroupId( <span class="jxr_string">"xerces"</span> );
<a name="79" href="#79">79</a>          artifact.setArtifactId( <span class="jxr_string">"xercesImpl"</span> );
<a name="80" href="#80">80</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="81" href="#81">81</a>          assertEquals( <span class="jxr_string">"xerces.Impl"</span>, s );
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>          artifact.setFile( getTestFile( <span class="jxr_string">"aopalliance-1.0.jar"</span> ) );
<a name="84" href="#84">84</a>          artifact.setGroupId( <span class="jxr_string">"org.aopalliance"</span> );
<a name="85" href="#85">85</a>          artifact.setArtifactId( <span class="jxr_string">"aopalliance"</span> );
<a name="86" href="#86">86</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
<a name="87" href="#87">87</a>          assertEquals( <span class="jxr_string">"org.aopalliance"</span>, s );
<a name="88" href="#88">88</a>      }
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetBundleFileName()
<a name="91" href="#91">91</a>      {
<a name="92" href="#92">92</a>          ArtifactStub artifact = getTestArtifact();
<a name="93" href="#93">93</a>          String s;
<a name="94" href="#94">94</a>          s = maven2Osgi.getBundleFileName( artifact );
<a name="95" href="#95">95</a>          assertEquals( <span class="jxr_string">"org.apache.commons.logging_1.1.0.jar"</span>, s );
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>          artifact.setGroupId( <span class="jxr_string">"org.aopalliance"</span> );
<a name="98" href="#98">98</a>          artifact.setArtifactId( <span class="jxr_string">"aopalliance"</span> );
<a name="99" href="#99">99</a>          s = maven2Osgi.getBundleFileName( artifact );
<a name="100" href="#100">100</a>         assertEquals( <span class="jxr_string">"org.aopalliance_1.1.0.jar"</span>, s );
<a name="101" href="#101">101</a>     }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetVersion()
<a name="104" href="#104">104</a>     {
<a name="105" href="#105">105</a>         ArtifactStub artifact = getTestArtifact();
<a name="106" href="#106">106</a>         String s = maven2Osgi.getVersion( artifact );
<a name="107" href="#107">107</a>         assertEquals( <span class="jxr_string">"1.1.0"</span>, s );
<a name="108" href="#108">108</a>     }
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConvertVersionToOsgi()
<a name="111" href="#111">111</a>     {
<a name="112" href="#112">112</a>         String osgiVersion;
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1.0-SNAPSHOT"</span> );
<a name="115" href="#115">115</a>         assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1-SNAPSHOT"</span> );
<a name="118" href="#118">118</a>         assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2-SNAPSHOT"</span> );
<a name="121" href="#121">121</a>         assertEquals( <span class="jxr_string">"2.0.0.SNAPSHOT"</span>, osgiVersion );
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2"</span> );
<a name="124" href="#124">124</a>         assertEquals( <span class="jxr_string">"2.0.0"</span>, osgiVersion );
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1"</span> );
<a name="127" href="#127">127</a>         assertEquals( <span class="jxr_string">"2.1.0"</span>, osgiVersion );
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1.3"</span> );
<a name="130" href="#130">130</a>         assertEquals( <span class="jxr_string">"2.1.3"</span>, osgiVersion );
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1.3.4"</span> );
<a name="133" href="#133">133</a>         assertEquals( <span class="jxr_string">"2.1.3.4"</span>, osgiVersion );
<a name="134" href="#134">134</a> 
<a name="135" href="#135">135</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"4aug2000r7-dev"</span> );
<a name="136" href="#136">136</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
<a name="137" href="#137">137</a> 
<a name="138" href="#138">138</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.1-alpha-2"</span> );
<a name="139" href="#139">139</a>         assertEquals( <span class="jxr_string">"1.1.0.alpha-2"</span>, osgiVersion );
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.0-alpha-16-20070122.203121-13"</span> );
<a name="142" href="#142">142</a>         assertEquals( <span class="jxr_string">"1.0.0.alpha-16-20070122_203121-13"</span>, osgiVersion );
<a name="143" href="#143">143</a> 
<a name="144" href="#144">144</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.0-20070119.021432-1"</span> );
<a name="145" href="#145">145</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1-20070119.021432-1"</span> );
<a name="148" href="#148">148</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.4.1-20070217.082013-7"</span> );
<a name="151" href="#151">151</a>         assertEquals( <span class="jxr_string">"1.4.1.20070217_082013-7"</span>, osgiVersion );
<a name="152" href="#152">152</a>         
<a name="153" href="#153">153</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span> );
<a name="154" href="#154">154</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
<a name="155" href="#155">155</a>         
<a name="156" href="#156">156</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"4aug2000r7-dev"</span> );
<a name="157" href="#157">157</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
<a name="158" href="#158">158</a>     }
<a name="159" href="#159">159</a> 
<a name="160" href="#160">160</a>     <strong class="jxr_keyword">private</strong> ArtifactStub getTestArtifact()
<a name="161" href="#161">161</a>     {
<a name="162" href="#162">162</a>         ArtifactStub a = <strong class="jxr_keyword">new</strong> ArtifactStub();
<a name="163" href="#163">163</a>         a.setGroupId( <span class="jxr_string">"commons-logging"</span> );
<a name="164" href="#164">164</a>         a.setArtifactId( <span class="jxr_string">"commons-logging"</span> );
<a name="165" href="#165">165</a>         a.setVersion( <span class="jxr_string">"1.1"</span> );
<a name="166" href="#166">166</a>         a.setFile( getTestFile( <span class="jxr_string">"commons-logging-1.1.jar"</span> ) );
<a name="167" href="#167">167</a>         <strong class="jxr_keyword">return</strong> a;
<a name="168" href="#168">168</a>     }
<a name="169" href="#169">169</a> 
<a name="170" href="#170">170</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> File getTestFile( String fileName )
<a name="171" href="#171">171</a>     {
<a name="172" href="#172">172</a>         <strong class="jxr_keyword">return</strong> PlexusTestCase.getTestFile( <span class="jxr_string">"src/test/resources/"</span> + fileName );
<a name="173" href="#173">173</a>     }
<a name="174" href="#174">174</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

