/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.resource;
import org.junit.Assert;
import org.junit.Test;
public class FileResourceNameTest
{
@Test
public void testName()
{
FileResourceName name = new FileResourceName( null );
Assert.assertEquals( "", name.getName() );
name = new FileResourceName( "" );
Assert.assertEquals( "", name.getName() );
name = new FileResourceName( "/" );
Assert.assertEquals( "", name.getName() );
name = new FileResourceName( "somename" );
Assert.assertEquals( "somename", name.getName() );
name = new FileResourceName( "/parentname/somename" );
Assert.assertEquals( "somename", name.getName() );
}
@Test
public void testPath()
{
FileResourceName name = new FileResourceName( null );
Assert.assertEquals( "/", name.getPath() );
name = new FileResourceName( "" );
Assert.assertEquals( "/", name.getPath() );
name = new FileResourceName( "/" );
Assert.assertEquals( "/", name.getPath() );
name = new FileResourceName( "somename" );
Assert.assertEquals( "/somename", name.getPath() );
name = new FileResourceName( "/parentname/somename" );
Assert.assertEquals( "/parentname/somename", name.getPath() );
}
@Test
public void testIsRoot()
{
FileResourceName name = new FileResourceName( null );
Assert.assertTrue( name.isRoot() );
name = new FileResourceName( "" );
Assert.assertTrue( name.isRoot() );
name = new FileResourceName( "/" );
Assert.assertTrue( name.isRoot() );
name = new FileResourceName( "somename" );
Assert.assertFalse( name.isRoot() );
name = new FileResourceName( "/parentname/somename" );
Assert.assertFalse( name.isRoot() );
}
@Test
public void testGetParent()
{
FileResourceName name = new FileResourceName( null );
Assert.assertNull( name.getParent() );
name = new FileResourceName( "" );
Assert.assertNull( name.getParent() );
name = new FileResourceName( "/" );
Assert.assertNull( name.getParent() );
name = new FileResourceName( "somename" );
Assert.assertNotNull( name.getParent() );
Assert.assertEquals( "/", name.getParent().getPath() );
name = new FileResourceName( "/parentname/somename" );
Assert.assertNotNull( name.getParent() );
Assert.assertEquals( "/parentname", name.getParent().getPath() );
}
@Test
public void testToString()
{
FileResourceName name = new FileResourceName( "somename" );
Assert.assertEquals( "/somename", name.toString() );
name = new FileResourceName( "/parentname/somename" );
Assert.assertEquals( "/parentname/somename", name.toString() );
}
@Test
public void testEquals()
{
Assert.assertTrue( new FileResourceName( "somename" ).equals( new FileResourceName( "somename" ) ) );
Assert.assertTrue( new FileResourceName( "somename" ).equals( new FileResourceName( "//somename" ) ) );
Assert.assertFalse( new FileResourceName( "somename" ).equals( new FileResourceName( "/" ) ) );
}
@Test
public void testPathsWithDots()
{
Assert.assertEquals( new FileResourceName( "path/to/somename" ), new FileResourceName( "./path/to/somename" ) );
Assert.assertEquals( new FileResourceName( "/path/to/somename" ), new FileResourceName( "/path/to/./somename" ) );
Assert.assertEquals( new FileResourceName( "/somename" ), new FileResourceName( "./somename" ) );
Assert.assertEquals( new FileResourceName( "/path/to/somename" ), new FileResourceName( "/path/to/./././somename" ) );
Assert.assertEquals( new FileResourceName( "path/somename" ), new FileResourceName( "path/to/../somename" ) );
Assert.assertEquals( new FileResourceName( "/path/to/somename" ), new FileResourceName( "/path/to/../to/somename" ) );
Assert.assertEquals( new FileResourceName( "somename" ), new FileResourceName( "path/to/../../somename" ) );
Assert.assertEquals( new FileResourceName( "/somename" ), new FileResourceName( "/path/to/../../../../somename" ) );
Assert.assertEquals( new FileResourceName( "/path/to" ), new FileResourceName( "/path/to/somename/.." ) );
Assert.assertEquals( new FileResourceName( "/" ), new FileResourceName( "../../.." ) );
}
}