package de.axone.tools;
import static org.assertj.core.api.Assertions.*;
import static org.testng.Assert.*;
import org.testng.annotations.Test;
@Test( groups="tools.classconfiguration" )
public class ClassConfiguratorTest {
private static final String TESTCLASS = "de.axone.tools.ClassConfiguratorTest_TestClass";
public void testSimpleCreation() throws Exception {
Object instance = ClassConfigurator.create( TESTCLASS );
assertThat( instance ).isInstanceOf( ClassConfiguratorTest_TestClass.class );
}
public void testParameter() throws Exception {
String clazz = TESTCLASS + " ( x = '5', yyy= '6' , z12345EneMene='Muh/Mäh&123\\' ) ";
Object instance = ClassConfigurator.create( clazz );
assertThat( instance ).isInstanceOf( ClassConfiguratorTest_TestClass.class );
ClassConfiguratorTest_TestClass t = (ClassConfiguratorTest_TestClass)instance;
assertEquals( t.x, "5" );
assertEquals( t.yyy, "6" );
assertEquals( t.z12345EneMene, "Muh/Mäh&123\\" );
}
public void testEmptyParameters() throws Exception {
String clazz = TESTCLASS + "( yyy='', z12345EneMene='' )";
Object instance = ClassConfigurator.create( clazz );
assertThat( instance ).isInstanceOf( ClassConfiguratorTest_TestClass.class );
ClassConfiguratorTest_TestClass t = (ClassConfiguratorTest_TestClass)instance;
assertNull( t.x );
assertEquals( t.yyy, "" );
assertEquals( t.z12345EneMene, "" );
}
public void testConstructor() throws Exception {
String clazz = TESTCLASS + "(yyy='test')";
Class<?> [] cClasses = new Class<?>[]{ Integer.class, String.class };
Object [] cParas = new Object[]{ 5, "abc" };
Object instance = ClassConfigurator.create( clazz, cClasses, cParas );
assertThat( instance ).isInstanceOf( ClassConfiguratorTest_TestClass.class );
ClassConfiguratorTest_TestClass t = (ClassConfiguratorTest_TestClass)instance;
assertEquals( t.i, Integer.valueOf( 5 ) );
assertEquals( t.x, "abc" );
assertEquals( t.yyy, "test" );
}
}