blob: eeac19db280c93d4e630796d55c8385815c933c5 [file] [log] [blame]
package org.mockito.android.internal.creation;
import static org.mockito.internal.util.StringUtil.join;
import java.io.File;
import net.bytebuddy.android.AndroidClassLoadingStrategy;
import net.bytebuddy.dynamic.loading.ClassLoadingStrategy;
import org.mockito.exceptions.base.MockitoException;
import org.mockito.internal.creation.bytebuddy.SubclassLoader;
class AndroidLoadingStrategy implements SubclassLoader {
@Override
public ClassLoadingStrategy<ClassLoader> getStrategy(Class<?> mockFeatures) {
File target = AndroidTempFileLocator.target;
if (target == null) {
throw new MockitoException(join(
"Could not look up implicit location for storing generated classes",
"",
"You can configure an explicit location by setting the system property",
"'org.mockito.android.target' to a folder for storing generated class files",
"This location must be in private scope for most API versions, for example:",
"",
"MyActivity.this.getDir(\"target\", Context.MODE_PRIVATE)",
"or",
"getInstrumentation().getTargetContext().getCacheDir().getPath()"
));
}
return new AndroidClassLoadingStrategy.Injecting(target);
}
}