package org.codehaus.plexus.components.io.resources;
import java.io.File;
import java.io.IOException;
import org.codehaus.plexus.components.io.attributes.Java7FileAttributes;
import org.codehaus.plexus.components.io.attributes.Java7Reflector;
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
import junit.framework.TestCase;
import org.codehaus.plexus.components.io.attributes.SymlinkUtils;
import org.codehaus.plexus.util.Os;
public class PlexusIoPlexusIoFileResourceTest
extends TestCase {
public void testRealSymlink()
throws IOException
{
if (!Java7Reflector.isAtLeastJava7()) return;
if ( Os.isFamily(Os.FAMILY_WINDOWS)) return;
final File file = new File( "src/test/resources/symlinks/src/symDir" );
PlexusIoResourceAttributes attrs = Java7FileAttributes.uncached( file );
assertTrue(attrs.isSymbolicLink());
PlexusIoFileResource r = new PlexusIoFileResource( file, "symDir", attrs);
assertTrue(r.isSymbolicLink());
final File target = SymlinkUtils.readSymbolicLink( file );
assertTrue(target.getName().endsWith( "targetDir" ));
}
}