package de.axone.tools;
import static org.testng.Assert.*;
import java.io.File;
import java.util.List;
import org.testng.annotations.Test;
@Test( groups="tools.superproperties" )
public class SuperPropertiesTest {
public void testAccess(){
SuperProperties p = new SuperProperties();
p.setProperty( "A", "a--" );
p.setProperty( "B.1", "b--1" );
p.setProperty( "B.2", "b--2" );
p.setProperty( "B.3", "b--3" );
p.setProperty( "C.D", "cd-" );
p.setProperty( "C.E.1", "ce-1" );
p.setProperty( "C.E.2", "ce-2" );
p.setProperty( "C.E.3", "ce-3" );
p.setProperty( "C.F.G", "cfg" );
p.setProperty( "C.F.H", "cfh" );
// Property access
assertEquals( p.getProperty( "A" ), "a--" );
// List access
List<String> listB = p.getList( "B" );
assertNotNull( listB );
assertEquals( listB.size(), 3 );
assertEquals( listB.get( 0 ), "b--1" );
assertEquals( listB.get( 1 ), "b--2" );
assertEquals( listB.get( 2 ), "b--3" );
// Sub-Properties
SuperProperties pC = p.subset( "C" );
assertEquals( pC.getProperty( "D" ), "cd-" );
List<String> listCE = pC.getList( "E" );
assertNotNull( listCE );
assertEquals( listCE.size(), 3 );
assertEquals( listCE.get( 0 ), "ce-1" );
assertEquals( listCE.get( 1 ), "ce-2" );
assertEquals( listCE.get( 2 ), "ce-3" );
}
public void testTypes(){
SuperProperties p = new SuperProperties();
p.setProperty( "string", "string" );
p.setProperty( "int", "123" );
p.setProperty( "bool", "true" );
assertEquals( p.getProperty( "string" ), "string" );
assertEquals( (int)p.getInt( "int" ), 123 );
assertEquals( (boolean)p.getBoolean( "bool" ), true );
assertEquals( p.getProperty( "no", "default" ), "default" );
assertEquals( p.getInt( "no", 321 ), 321 );
assertEquals( p.getBoolean( "no", true ), true );
}
public void testFiles() throws Exception {
File abs = new File( "abs.txt" ).getAbsoluteFile();
SuperProperties p = new SuperProperties();
p.setProperty( "base", "base" );
p.setProperty( "rel", "rel.ext" );
p.setProperty( "abs", abs.getPath() ); //<- allways the abs. path
assertEquals( p.getFile( "rel" ), new File( "rel.ext" ) );
assertEquals( p.getFile( "abs" ), abs );
assertFalse( p.getFile( "rel" ).isAbsolute() );
assertTrue( p.getFile( "abs" ).isAbsolute() );
assertEquals( p.getFile( new File( "bd" ), "rel" ), new File( "bd/rel.ext" ) );
assertEquals( p.getFile( new File( "bd" ), "abs" ), abs );
assertEquals( p.getFile( "base", "rel" ), new File( "base/rel.ext" ) );
assertEquals( p.getFile( "base", "abs" ), abs );
assertEquals( p.getFile( "no", "rel" ), new File( "rel.ext" ) );
assertEquals( p.getFile( "no", "abs" ), abs );
p.setRootDir( new File( "root" ) );
assertEquals( p.getFile( "rel" ), new File( "root/rel.ext" ) );
assertEquals( p.getFile( "abs" ), abs );
assertEquals( p.getFile( new File( "bd" ), "rel" ), new File( "root/bd/rel.ext" ) );
assertEquals( p.getFile( new File( "bd" ), "abs" ), abs );
assertEquals( p.getFile( "base", "rel" ), new File( "root/base/rel.ext" ) );
assertEquals( p.getFile( "base", "abs" ), abs );
assertEquals( p.getFile( "no", "rel" ), new File( "root/rel.ext" ) );
assertEquals( p.getFile( "no", "abs" ), abs );
}
public void testFilesRequired() throws Exception {
File abs = new File( "abs.txt" ).getAbsoluteFile();
SuperProperties p = new SuperProperties();
p.setProperty( "base", "base" );
p.setProperty( "rel", "rel.ext" );
p.setProperty( "abs", abs.getPath() ); //<- allways the abs. path
assertEquals( p.getFileRequired( "rel" ), new File( "rel.ext" ) );
assertEquals( p.getFileRequired( "abs" ), abs );
assertFalse( p.getFileRequired( "rel" ).isAbsolute() );
assertTrue( p.getFileRequired( "abs" ).isAbsolute() );
assertEquals( p.getFileRequired( new File( "bd" ), "rel" ), new File( "bd/rel.ext" ) );
assertEquals( p.getFileRequired( new File( "bd" ), "abs" ), abs );
assertEquals( p.getFileRequired( "base", "rel" ), new File( "base/rel.ext" ) );
assertEquals( p.getFileRequired( "base", "abs" ), abs );
p.setRootDir( new File( "root" ) );
assertEquals( p.getFileRequired( "rel" ), new File( "root/rel.ext" ) );
assertEquals( p.getFileRequired( "abs" ), abs );
assertEquals( p.getFileRequired( new File( "bd" ), "rel" ), new File( "root/bd/rel.ext" ) );
assertEquals( p.getFileRequired( new File( "bd" ), "abs" ), abs );
assertEquals( p.getFileRequired( "base", "rel" ), new File( "root/base/rel.ext" ) );
assertEquals( p.getFileRequired( "base", "abs" ), abs );
}
}