package org.fusesource.mvnplugins.uberize.relocation;
import java.util.Arrays;
import junit.framework.TestCase;
/**
* Test for {@link SimpleRelocator}.
*
* @author Benjamin Bentmann
* @version $Id$
*/
public class SimpleRelocatorTest
extends TestCase
{
public void testCanRelocatePath()
{
SimpleRelocator relocator;
relocator = new SimpleRelocator( "org.foo", null, null );
assertEquals( true, relocator.canRelocatePath( "org/foo/Class" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/Class.class" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/bar/Class" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/bar/Class.class" ) );
assertEquals( false, relocator.canRelocatePath( "com/foo/bar/Class" ) );
assertEquals( false, relocator.canRelocatePath( "com/foo/bar/Class.class" ) );
assertEquals( false, relocator.canRelocatePath( "org/Foo/Class" ) );
assertEquals( false, relocator.canRelocatePath( "org/Foo/Class.class" ) );
relocator =
new SimpleRelocator( "org.foo", null, Arrays.asList( new String[] { "org.foo.Excluded", "org.foo.public.*",
"org.foo.Public*Stuff" } ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/Class" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/Class.class" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/excluded" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/Excluded" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/Excluded.class" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/public" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/public/Class" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/public/Class.class" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/publicRELOC/Class" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/PrivateStuff" ) );
assertEquals( true, relocator.canRelocatePath( "org/foo/PrivateStuff.class" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/PublicStuff" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/PublicStuff.class" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/PublicUtilStuff" ) );
assertEquals( false, relocator.canRelocatePath( "org/foo/PublicUtilStuff.class" ) );
}
public void testCanRelocateClass()
{
SimpleRelocator relocator;
relocator = new SimpleRelocator( "org.foo", null, null );
assertEquals( true, relocator.canRelocateClass( "org.foo.Class" ) );
assertEquals( true, relocator.canRelocateClass( "org.foo.bar.Class" ) );
assertEquals( false, relocator.canRelocateClass( "com.foo.bar.Class" ) );
assertEquals( false, relocator.canRelocateClass( "org.Foo.Class" ) );
relocator =
new SimpleRelocator( "org.foo", null, Arrays.asList( new String[] { "org.foo.Excluded", "org.foo.public.*",
"org.foo.Public*Stuff" } ) );
assertEquals( true, relocator.canRelocateClass( "org.foo.Class" ) );
assertEquals( true, relocator.canRelocateClass( "org.foo.excluded" ) );
assertEquals( false, relocator.canRelocateClass( "org.foo.Excluded" ) );
assertEquals( false, relocator.canRelocateClass( "org.foo.public" ) );
assertEquals( false, relocator.canRelocateClass( "org.foo.public.Class" ) );
assertEquals( true, relocator.canRelocateClass( "org.foo.publicRELOC.Class" ) );
assertEquals( true, relocator.canRelocateClass( "org.foo.PrivateStuff" ) );
assertEquals( false, relocator.canRelocateClass( "org.foo.PublicStuff" ) );
assertEquals( false, relocator.canRelocateClass( "org.foo.PublicUtilStuff" ) );
}
public void testRelocatePath()
{
SimpleRelocator relocator;
relocator = new SimpleRelocator( "org.foo", null, null );
assertEquals( "hidden/org/foo/bar/Class.class", relocator.relocatePath( "org/foo/bar/Class.class" ) );
relocator = new SimpleRelocator( "org.foo", "private.stuff", null );
assertEquals( "private/stuff/bar/Class.class", relocator.relocatePath( "org/foo/bar/Class.class" ) );
}
public void testRelocateClass()
{
SimpleRelocator relocator;
relocator = new SimpleRelocator( "org.foo", null, null );
assertEquals( "hidden.org.foo.bar.Class", relocator.relocateClass( "org.foo.bar.Class" ) );
relocator = new SimpleRelocator( "org.foo", "private.stuff", null );
assertEquals( "private.stuff.bar.Class", relocator.relocateClass( "org.foo.bar.Class" ) );
}
}