package org.apache.archiva.common.utils;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.commons.lang.StringUtils;
import junit.framework.TestCase;
import java.io.File;
/**
* BaseFileTest
*
*
*/
public class BaseFileTest
extends TestCase
{
public void testFileString()
{
File repoDir = new File( "/home/user/foo/repository" );
String pathFile = "path/to/resource.xml";
BaseFile file = new BaseFile( repoDir, pathFile );
assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file );
assertRelativePath( "path/to/resource.xml", file );
assertBasedir( "/home/user/foo/repository", file );
}
public void testFileFile()
{
File repoDir = new File( "/home/user/foo/repository" );
File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" );
BaseFile file = new BaseFile( repoDir, pathFile );
assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file );
assertRelativePath( "path/to/resource.xml", file );
assertBasedir( "/home/user/foo/repository", file );
}
public void testStringFile()
{
String repoDir = "/home/user/foo/repository";
File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" );
BaseFile file = new BaseFile( repoDir, pathFile );
assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file );
assertRelativePath( "path/to/resource.xml", file );
assertBasedir( "/home/user/foo/repository", file );
}
public void testFileThenSetBaseString()
{
String repoDir = "/home/user/foo/repository";
File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" );
BaseFile file = new BaseFile( pathFile );
file.setBaseDir( repoDir );
assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file );
assertRelativePath( "path/to/resource.xml", file );
assertBasedir( "/home/user/foo/repository", file );
}
public void testFileThenSetBaseFile()
{
File repoDir = new File( "/home/user/foo/repository" );
File pathFile = new File( "/home/user/foo/repository/path/to/resource.xml" );
BaseFile file = new BaseFile( pathFile );
file.setBaseDir( repoDir );
assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file );
assertRelativePath( "path/to/resource.xml", file );
assertBasedir( "/home/user/foo/repository", file );
}
public void testStringThenSetBaseString()
{
String repoDir = "/home/user/foo/repository";
String pathFile = "/home/user/foo/repository/path/to/resource.xml";
BaseFile file = new BaseFile( pathFile );
file.setBaseDir( repoDir );
assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file );
assertRelativePath( "path/to/resource.xml", file );
assertBasedir( "/home/user/foo/repository", file );
}
public void testStringThenSetBaseFile()
{
File repoDir = new File( "/home/user/foo/repository" );
String pathFile = "/home/user/foo/repository/path/to/resource.xml";
BaseFile file = new BaseFile( pathFile );
file.setBaseDir( repoDir );
assertAbsolutePath( "/home/user/foo/repository/path/to/resource.xml", file );
assertRelativePath( "path/to/resource.xml", file );
assertBasedir( "/home/user/foo/repository", file );
}
private void assertAbsolutePath( String expectedPath, BaseFile actualFile )
{
assertEquals( new File( expectedPath ).getAbsolutePath(), actualFile.getAbsolutePath() );
}
private void assertRelativePath( String expectedPath, BaseFile actualFile )
{
assertEquals( expectedPath, StringUtils.replace( actualFile.getRelativePath(), "\\", "/" ) );
}
private void assertBasedir( String expectedPath, BaseFile actualFile )
{
assertEquals( new File( expectedPath ), actualFile.getBaseDir() );
}
}