
org.robolectric.shadows.ShadowParcelFileDescriptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of framework Show documentation
Show all versions of framework Show documentation
An alternative Android testing framework.
The newest version!
package org.robolectric.shadows;
import android.os.ParcelFileDescriptor;
import org.robolectric.Shadows;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.lang.reflect.Constructor;
@Implements(ParcelFileDescriptor.class)
public class ShadowParcelFileDescriptor {
private RandomAccessFile file;
@Implementation
public static ParcelFileDescriptor open(File file, int mode) throws FileNotFoundException {
ParcelFileDescriptor pfd;
try {
Constructor constructor = ParcelFileDescriptor.class.getDeclaredConstructor(FileDescriptor.class);
pfd = constructor.newInstance(new FileDescriptor());
} catch (Exception e) {
throw new RuntimeException(e);
}
Shadows.shadowOf(pfd).file = new RandomAccessFile(file, mode == ParcelFileDescriptor.MODE_READ_ONLY ? "r" : "rw");
return pfd;
}
@Implementation
public FileDescriptor getFileDescriptor() {
try {
return file.getFD();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Implementation
public long getStatSize() {
try {
return file.length();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Implementation
public void close() throws IOException {
file.close();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy