Ho una classe che esegue una query sul MediaStore per le immagini. Ad esempio, ho un codice che assomiglia a someContentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, ...)
. Voglio verificare che, tra le altre cose, le mie domande sul MediaStore siano corrette.è possibile sostituire il MediaStore con un doppio di prova usando robolectric?
Quello che ho fatto finora nella mia prova è questo:
ContentResolver resolver = new Activity().getContentResolver();
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA,
"/fake/path/file1.jpg");
values.put(MediaStore.Images.Media.DATE_ADDED,
fakeTime.getTime());
resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
values);
inietto questo resolver nella mia classe, che esegue una query su di esso. Tuttavia, la query restituisce null. Ho visto questo post: http://ikaruga2.wordpress.com/2013/07/29/roboelectric-and-contentresolverscontentproviders/ che dice per registrare il provider di contenuti utilizzando ShadowContentResolver, quindi, qualcosa di simile a:
ShadowContentResolver.registerProvider(MediaStore.AUTHORITY, <SOMETHING_GOES_HERE>);
ma non so cosa mettere per il fornitore di contenuti. Forse usi un oggetto MediaStore
? No, non è un ContentProvider
. Forse è MediaProvider
? Il simbolo non può essere risolto, per qualche motivo.
A questo punto ho seri dubbi che questo sia anche lontanamente l'approccio corretto. Qualcuno può guidarmi nella giusta direzione?
utilizzando Robolectric 2.4 istantanea e API 19.
Hai già trovato una soluzione? –
@SebastianRoth no, non l'ho fatto. – Kevin