package net.bytebuddy.benchmark; import org.hamcrest.CoreMatchers; import org.junit.Before; import org.junit.Test; import java.lang.reflect.Proxy; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; public class TrivialClassCreationBenchmarkTest { private TrivialClassCreationBenchmark trivialClassCreationBenchmark; @Before public void setUp() throws Exception { trivialClassCreationBenchmark = new TrivialClassCreationBenchmark(); } @Test public void testBaseline() throws Exception { Class<?> type = trivialClassCreationBenchmark.baseline(); assertThat(type, CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS)); } @Test public void testByteBuddyClassCreation() throws Exception { Class<?> type = trivialClassCreationBenchmark.benchmarkByteBuddy(); assertThat(type, not(CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS))); assertThat(type.getSuperclass(), CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS)); assertThat(trivialClassCreationBenchmark.benchmarkByteBuddy(), not(CoreMatchers.<Class<?>>is(type))); } @Test public void testCglibClassCreation() throws Exception { Class<?> type = trivialClassCreationBenchmark.benchmarkCglib(); assertThat(type, not(CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS))); assertThat(type.getSuperclass(), CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS)); assertThat(trivialClassCreationBenchmark.benchmarkCglib(), not(CoreMatchers.<Class<?>>is(type))); } @Test public void testJavassistClassCreation() throws Exception { Class<?> type = trivialClassCreationBenchmark.benchmarkJavassist(); assertThat(type, not(CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS))); assertThat(type.getSuperclass(), CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS)); assertThat(trivialClassCreationBenchmark.benchmarkJavassist(), not(CoreMatchers.<Class<?>>is(type))); } @Test public void testJdkProxyClassCreation() throws Exception { Class<?> type = trivialClassCreationBenchmark.benchmarkJdkProxy(); assertThat(type, not(CoreMatchers.<Class<?>>is(TrivialClassCreationBenchmark.BASE_CLASS))); assertThat(type.getSuperclass(), CoreMatchers.<Class<?>>is(Proxy.class)); assertThat(trivialClassCreationBenchmark.benchmarkJdkProxy(), not(CoreMatchers.<Class<?>>is(type))); } }