package kr.debop4j.core.reflect; import com.carrotsearch.junitbenchmarks.BenchmarkOptions; import kr.debop4j.core.AbstractTest; import kr.debop4j.core.tools.JClass; import lombok.extern.slf4j.Slf4j; import org.junit.Assert; import org.junit.Test; /** * kr.debop4j.core.reflect.ActivatorsTest * * @author 배성혁 ( sunghyouk.bae@gmail.com ) * @since 13. 1. 20. */ @Slf4j public class ActivatorsTest extends AbstractTest { @BenchmarkOptions(benchmarkRounds = 100, warmupRounds = 1) @Test public void createInstanceWithDefaultConstructor() { JClass obj = Activators.createInstance(JClass.class); Assert.assertNotNull(obj); Assert.assertEquals(0, obj.getId()); } @BenchmarkOptions(benchmarkRounds = 100, warmupRounds = 1) @Test public void crateInstanceWithParameters() { JClass obj = Activators.createInstance(JClass.class, 100, "Dynamic", 200); Assert.assertNotNull(obj); Assert.assertEquals(100, obj.getId()); Assert.assertEquals("Dynamic", obj.getName()); } @BenchmarkOptions(benchmarkRounds = 100, warmupRounds = 1) @Test public void crateInstanceWithParameterTypes() throws Exception { JClass obj = (JClass) Activators .getConstructor(JClass.class, Integer.TYPE, String.class, Integer.class) .newInstance(100, "Dynamic", 200); Assert.assertNotNull(obj); Assert.assertEquals(100, obj.getId()); Assert.assertEquals("Dynamic", obj.getName()); } @BenchmarkOptions(benchmarkRounds = 100, warmupRounds = 1) @Test public void reflectionsWithDefaultConstructor() { try { JClass obj = (JClass) JClass.class .getConstructor(Integer.TYPE, String.class, Integer.class) .newInstance(100, "Dynamic", 200); Assert.assertNotNull(obj); Assert.assertEquals(100, obj.getId()); Assert.assertEquals("Dynamic", obj.getName()); } catch (Exception e) { throw new RuntimeException(e); } } }