1 package org.apache.maven.plugins.shade.relocation;
2
3 import java.util.Arrays;
4
5 import junit.framework.TestCase;
6
7
8
9
10
11
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 }