View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.plugin.eclipse;
20  
21  import junit.framework.TestCase;
22  
23  import org.apache.maven.model.Dependency;
24  
25  /**
26   * @author Fabrizio Giustina
27   * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
28   * @version $Id: EclipseToMavenTest.java 595476 2007-11-15 22:21:55Z aheritier $
29   */
30  public class EclipseToMavenTest
31      extends TestCase
32  {
33  
34      /**
35       * Mojo under test.
36       */
37      protected EclipseToMavenMojo mojo;
38  
39      /**
40       * @see junit.framework.TestCase#setUp()
41       */
42      protected void setUp()
43          throws Exception
44      {
45          super.setUp();
46          mojo = new EclipseToMavenMojo();
47      }
48  
49      /**
50       * Tests the parsing of the "Require-Bundle" entry from a manifest.
51       */
52      public void testParseDependencies()
53      {
54          Dependency[] deps =
55              mojo.parseDependencies( "org.eclipse.ui;bundle-version=\"[3.2.0,4.0.0)\","
56                  + "org.eclipse.ui.console;resolution:=\"optional\";bundle-version=\"[3.1.100,4.0.0)\",org.eclipse.help;"
57                  + "bundle-version=\"[3.2.0,4.0.0)\",org.eclipse.core.expressions;bundle-version=\"[3.2.0,4.0.0)\"" );
58  
59          assertEquals( 4, deps.length );
60          assertEquals( "org.eclipse", deps[0].getGroupId() );
61          assertEquals( "ui", deps[0].getArtifactId() );
62          assertEquals( "[3.2.0,4.0.0)", deps[0].getVersion() );
63          assertFalse( deps[0].isOptional() );
64  
65          assertEquals( "org.eclipse.ui", deps[1].getGroupId() );
66          assertEquals( "console", deps[1].getArtifactId() );
67          assertEquals( "[3.1.100,4.0.0)", deps[1].getVersion() );
68          assertTrue( deps[1].isOptional() );
69  
70          assertEquals( "org.eclipse", deps[2].getGroupId() );
71          assertEquals( "help", deps[2].getArtifactId() );
72          assertEquals( "[3.2.0,4.0.0)", deps[2].getVersion() );
73          assertFalse( deps[2].isOptional() );
74  
75          assertEquals( "org.eclipse.core", deps[3].getGroupId() );
76          assertEquals( "expressions", deps[3].getArtifactId() );
77          assertEquals( "[3.2.0,4.0.0)", deps[3].getVersion() );
78          assertFalse( deps[3].isOptional() );
79      }
80  
81      /**
82       * Tests the parsing of the "Require-Bundle" entry from a manifest.
83       */
84      public void testParseDependenciesWithQualifier()
85      {
86          Dependency[] deps =
87              mojo.parseDependencies( "org.eclipse.ui;bundle-version=\"[3.2.0.0,4.0.0.0)\","
88                  + "org.eclipse.ui.console;resolution:=\"optional\";bundle-version=\"[3.1.100.0,4.0.0.0)\",org.eclipse.help;"
89                  + "bundle-version=\"[3.2.0.1,4.0.0.2)\",org.eclipse.core.expressions;bundle-version=\"[3.2.0.0,4.0.0.0)\"" );
90  
91          assertEquals( 4, deps.length );
92          assertEquals( "org.eclipse", deps[0].getGroupId() );
93          assertEquals( "ui", deps[0].getArtifactId() );
94          assertEquals( "[3.2.0-0,4.0.0-0)", deps[0].getVersion() );
95          assertEquals( "org.eclipse.ui", deps[1].getGroupId() );
96          assertEquals( "console", deps[1].getArtifactId() );
97          assertEquals( "[3.1.100-0,4.0.0-0)", deps[1].getVersion() );
98          assertEquals( "org.eclipse", deps[2].getGroupId() );
99          assertEquals( "help", deps[2].getArtifactId() );
100         assertEquals( "[3.2.0-1,4.0.0-2)", deps[2].getVersion() );
101         assertEquals( "org.eclipse.core", deps[3].getGroupId() );
102         assertEquals( "expressions", deps[3].getArtifactId() );
103         assertEquals( "[3.2.0-0,4.0.0-0)", deps[3].getVersion() );
104     }
105 
106     /**
107      * Test the generation of a groupId from a bundle symbolic name.
108      */
109     public void testCreateGroupId()
110     {
111         assertEquals( "test", mojo.createGroupId( "test" ) );
112         assertEquals( "org", mojo.createGroupId( "org.eclipse" ) );
113         assertEquals( "org.eclipse", mojo.createGroupId( "org.eclipse.jdt" ) );
114         assertEquals( "org.eclipse.jdt", mojo.createGroupId( "org.eclipse.jdt.apt" ) );
115         assertEquals( "org.eclipse.jdt.apt", mojo.createGroupId( "org.eclipse.jdt.apt.core" ) );
116     }
117 
118     /**
119      * Test the generation of a artifactId from a bundle symbolic name.
120      */
121     public void testCreateArtifactId()
122     {
123         assertEquals( "test", mojo.createArtifactId( "test" ) );
124         assertEquals( "eclipse", mojo.createArtifactId( "org.eclipse" ) );
125         assertEquals( "jdt", mojo.createArtifactId( "org.eclipse.jdt" ) );
126         assertEquals( "apt", mojo.createArtifactId( "org.eclipse.jdt.apt" ) );
127         assertEquals( "core", mojo.createArtifactId( "org.eclipse.jdt.apt.core" ) );
128     }
129 
130     public void testOsgiVersionToMavenVersion()
131     {
132         assertEquals( "1.2.3", mojo.osgiVersionToMavenVersion( "1.2.3", null, false ) );
133         assertEquals( "1.2.3", mojo.osgiVersionToMavenVersion( "1.2.3", "20060101", false ) );
134         assertEquals( "1.2.3", mojo.osgiVersionToMavenVersion( "1.2.3", null, true ) );
135         assertEquals( "1.2.3", mojo.osgiVersionToMavenVersion( "1.2.3", "20060101", true ) );
136 
137         assertEquals( "1.2.3", mojo.osgiVersionToMavenVersion( "1.2.3.1", null, true ) );
138         assertEquals( "1.2.3", mojo.osgiVersionToMavenVersion( "1.2.3.1", "20060101", true ) );
139         assertEquals( "1.2.3-20060101", mojo.osgiVersionToMavenVersion( "1.2.3.1", "20060101", false ) );
140         assertEquals( "1.2.3-1", mojo.osgiVersionToMavenVersion( "1.2.3.1", null, false ) );
141     }
142 }