package net.bytebuddy.dynamic.loading; import net.bytebuddy.test.utility.ClassFileExtraction; import net.bytebuddy.test.utility.ObjectPropertyAssertion; import org.junit.Test; import java.lang.reflect.Method; import java.util.Arrays; import java.util.Iterator; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; public class ByteArrayClassLoaderPackageLookupStrategy { @Test public void testGetPackage() throws Exception { ByteArrayClassLoader byteArrayClassLoader = new ByteArrayClassLoader(ClassLoadingStrategy.BOOTSTRAP_LOADER, ClassFileExtraction.of(Foo.class)); byteArrayClassLoader.loadClass(Foo.class.getName()); assertThat(ByteArrayClassLoader.PackageLookupStrategy.ForLegacyVm.INSTANCE.apply(byteArrayClassLoader, Foo.class.getPackage().getName()).getName(), is(Foo.class.getPackage().getName())); } @Test public void testObjectProperties() throws Exception { ObjectPropertyAssertion.of(ByteArrayClassLoader.PackageLookupStrategy.CreationAction.class).apply(); ObjectPropertyAssertion.of(ByteArrayClassLoader.PackageLookupStrategy.ForLegacyVm.class).apply(); final Iterator<Method> iterator = Arrays.asList(Object.class.getDeclaredMethods()).iterator(); ObjectPropertyAssertion.of(ByteArrayClassLoader.PackageLookupStrategy.ForJava9CapableVm.class).create(new ObjectPropertyAssertion.Creator<Method>() { @Override public Method create() { return iterator.next(); } }).apply(); } private static class Foo { /* empty */ } }