/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.resource;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
public class ResourceKeyTest
{
@Test
public void testFrom_null()
{
final ResourceKey key = ResourceKey.from( null );
assertNull( key );
}
@Test
public void testFrom_empty()
{
final ResourceKey key1 = ResourceKey.from( "" );
assertNull( key1 );
final ResourceKey key2 = ResourceKey.from( " " );
assertNull( key2 );
}
@Test
public void testFrom_path()
{
final ResourceKey key1 = ResourceKey.from( "/" );
assertNotNull( key1 );
assertEquals( "/", key1.toString() );
final ResourceKey key2 = ResourceKey.from( "a/b/c" );
assertNotNull( key2 );
assertEquals( "/a/b/c", key2.toString() );
final ResourceKey key3 = ResourceKey.from( "/a///b/c" );
assertNotNull( key3 );
assertEquals( "/a/b/c", key3.toString() );
}
@Test
public void testNormalize()
{
final ResourceKey key1 = ResourceKey.from( ".." );
assertNotNull( key1 );
assertEquals( "/", key1.toString() );
final ResourceKey key2 = ResourceKey.from( "././." );
assertNotNull( key2 );
assertEquals( "/", key2.toString() );
final ResourceKey key3 = ResourceKey.from( "/a/../." );
assertNotNull( key3 );
assertEquals( "/", key3.toString() );
final ResourceKey key4 = ResourceKey.from( "a/./b/c/./../.." );
assertNotNull( key4 );
assertEquals( "/a", key4.toString() );
}
@Test
public void testIsRoot()
{
final ResourceKey key1 = ResourceKey.from( "/" );
assertNotNull( key1 );
assertTrue( key1.isRoot() );
final ResourceKey key2 = ResourceKey.from( "a/b/c" );
assertNotNull( key2 );
assertFalse( key2.isRoot() );
}
@Test
public void testGetName()
{
final ResourceKey key1 = ResourceKey.from( "/" );
assertNotNull( key1 );
assertEquals( "", key1.getName() );
final ResourceKey key2 = ResourceKey.from( "a/b/c" );
assertNotNull( key2 );
assertEquals( "c", key2.getName() );
}
@Test
public void testGetExtension()
{
final ResourceKey key1 = ResourceKey.from( "/a/b" );
assertNotNull( key1 );
assertEquals( "", key1.getExtension() );
final ResourceKey key2 = ResourceKey.from( "/a/b.txt" );
assertNotNull( key2 );
assertEquals( "txt", key2.getExtension() );
}
@Test
public void testGetParent()
{
final ResourceKey key1 = ResourceKey.from( "/" );
assertNotNull( key1 );
assertNull( key1.getParent() );
final ResourceKey key2 = ResourceKey.from( "/a/b.txt" );
assertNotNull( key2 );
assertEquals( "/a", key2.getParent().toString() );
}
}