View Javadoc

1   package org.apache.maven.plugins.shade.relocation;
2   
3   import java.util.Arrays;
4   
5   import junit.framework.TestCase;
6   
7   /**
8    * Test for {@link SimpleRelocator}.
9    * 
10   * @author Benjamin Bentmann
11   * @version $Id: SimpleRelocatorTest.html 816644 2012-05-08 13:45:27Z hboutemy $
12   */
13  public class SimpleRelocatorTest
14      extends TestCase
15  {
16  
17      public void testCanRelocatePath()
18      {
19          SimpleRelocator relocator;
20  
21          relocator = new SimpleRelocator( "org.foo", null, null, null );
22          assertEquals( true, relocator.canRelocatePath( "org/foo/Class" ) );
23          assertEquals( true, relocator.canRelocatePath( "org/foo/Class.class" ) );
24          assertEquals( true, relocator.canRelocatePath( "org/foo/bar/Class" ) );
25          assertEquals( true, relocator.canRelocatePath( "org/foo/bar/Class.class" ) );
26          assertEquals( false, relocator.canRelocatePath( "com/foo/bar/Class" ) );
27          assertEquals( false, relocator.canRelocatePath( "com/foo/bar/Class.class" ) );
28          assertEquals( false, relocator.canRelocatePath( "org/Foo/Class" ) );
29          assertEquals( false, relocator.canRelocatePath( "org/Foo/Class.class" ) );
30  
31          relocator =
32              new SimpleRelocator( "org.foo", null, null, Arrays.asList( new String[] { "org.foo.Excluded", "org.foo.public.*",
33                  "org.foo.Public*Stuff" } ) );
34          assertEquals( true, relocator.canRelocatePath( "org/foo/Class" ) );
35          assertEquals( true, relocator.canRelocatePath( "org/foo/Class.class" ) );
36          assertEquals( true, relocator.canRelocatePath( "org/foo/excluded" ) );
37          assertEquals( false, relocator.canRelocatePath( "org/foo/Excluded" ) );
38          assertEquals( false, relocator.canRelocatePath( "org/foo/Excluded.class" ) );
39          assertEquals( false, relocator.canRelocatePath( "org/foo/public" ) );
40          assertEquals( false, relocator.canRelocatePath( "org/foo/public/Class" ) );
41          assertEquals( false, relocator.canRelocatePath( "org/foo/public/Class.class" ) );
42          assertEquals( true, relocator.canRelocatePath( "org/foo/publicRELOC/Class" ) );
43          assertEquals( true, relocator.canRelocatePath( "org/foo/PrivateStuff" ) );
44          assertEquals( true, relocator.canRelocatePath( "org/foo/PrivateStuff.class" ) );
45          assertEquals( false, relocator.canRelocatePath( "org/foo/PublicStuff" ) );
46          assertEquals( false, relocator.canRelocatePath( "org/foo/PublicStuff.class" ) );
47          assertEquals( false, relocator.canRelocatePath( "org/foo/PublicUtilStuff" ) );
48          assertEquals( false, relocator.canRelocatePath( "org/foo/PublicUtilStuff.class" ) );
49      }
50  
51      public void testCanRelocateClass()
52      {
53          SimpleRelocator relocator;
54  
55          relocator = new SimpleRelocator( "org.foo", null, null, null );
56          assertEquals( true, relocator.canRelocateClass( "org.foo.Class" ) );
57          assertEquals( true, relocator.canRelocateClass( "org.foo.bar.Class" ) );
58          assertEquals( false, relocator.canRelocateClass( "com.foo.bar.Class" ) );
59          assertEquals( false, relocator.canRelocateClass( "org.Foo.Class" ) );
60  
61          relocator =
62              new SimpleRelocator( "org.foo", null, null, Arrays.asList( new String[] { "org.foo.Excluded", "org.foo.public.*",
63                  "org.foo.Public*Stuff" } ) );
64          assertEquals( true, relocator.canRelocateClass( "org.foo.Class" ) );
65          assertEquals( true, relocator.canRelocateClass( "org.foo.excluded" ) );
66          assertEquals( false, relocator.canRelocateClass( "org.foo.Excluded" ) );
67          assertEquals( false, relocator.canRelocateClass( "org.foo.public" ) );
68          assertEquals( false, relocator.canRelocateClass( "org.foo.public.Class" ) );
69          assertEquals( true, relocator.canRelocateClass( "org.foo.publicRELOC.Class" ) );
70          assertEquals( true, relocator.canRelocateClass( "org.foo.PrivateStuff" ) );
71          assertEquals( false, relocator.canRelocateClass( "org.foo.PublicStuff" ) );
72          assertEquals( false, relocator.canRelocateClass( "org.foo.PublicUtilStuff" ) );
73      }
74  
75      public void testRelocatePath()
76      {
77          SimpleRelocator relocator;
78  
79          relocator = new SimpleRelocator( "org.foo", null, null, null );
80          assertEquals( "hidden/org/foo/bar/Class.class", relocator.relocatePath( "org/foo/bar/Class.class" ) );
81  
82          relocator = new SimpleRelocator( "org.foo", "private.stuff", null, null );
83          assertEquals( "private/stuff/bar/Class.class", relocator.relocatePath( "org/foo/bar/Class.class" ) );
84      }
85  
86      public void testRelocateClass()
87      {
88          SimpleRelocator relocator;
89  
90          relocator = new SimpleRelocator( "org.foo", null, null, null );
91          assertEquals( "hidden.org.foo.bar.Class", relocator.relocateClass( "org.foo.bar.Class" ) );
92  
93          relocator = new SimpleRelocator( "org.foo", "private.stuff", null, null );
94          assertEquals( "private.stuff.bar.Class", relocator.relocateClass( "org.foo.bar.Class" ) );
95      }
96  
97  }