@Test public void testLoadResource_returnsInputStream() throws Exception { Context context = RuntimeEnvironment.application; Uri uri = Uri.parse("file://nothing"); ContentResolver contentResolver = context.getContentResolver(); ContentResolverShadow shadow = (ContentResolverShadow) Shadow.extract(contentResolver); shadow.registerInputStream(uri, new ByteArrayInputStream(new byte[0])); StreamLocalUriFetcher fetcher = new StreamLocalUriFetcher(context.getContentResolver(), uri); fetcher.loadData(Priority.NORMAL, callback); verify(callback).onDataReady(isNotNull(InputStream.class)); }
@Test public void testLoadResource_withNullInputStream_callsLoadFailed() { Context context = RuntimeEnvironment.application; Uri uri = Uri.parse("file://nothing"); ContentResolver contentResolver = context.getContentResolver(); ContentResolverShadow shadow = (ContentResolverShadow) Shadow.extract(contentResolver); shadow.registerInputStream(uri, null /*inputStream*/); StreamLocalUriFetcher fetcher = new StreamLocalUriFetcher(context.getContentResolver(), uri); fetcher.loadData(Priority.LOW, callback); verify(callback).onLoadFailed(isA(FileNotFoundException.class)); }
@Test public void testLoadResource_returnsInputStream() throws Exception { Context context = RuntimeEnvironment.application; Uri uri = Uri.parse("file://nothing"); ContentResolver contentResolver = context.getContentResolver(); ContentResolverShadow shadow = Shadow.extract(contentResolver); shadow.registerInputStream(uri, new ByteArrayInputStream(new byte[0])); StreamLocalUriFetcher fetcher = new StreamLocalUriFetcher(context.getContentResolver(), uri); fetcher.loadData(Priority.NORMAL, callback); verify(callback).onDataReady(isNotNull(InputStream.class)); }
@Test public void testLoadResource_withNullInputStream_callsLoadFailed() { Context context = RuntimeEnvironment.application; Uri uri = Uri.parse("file://nothing"); ContentResolver contentResolver = context.getContentResolver(); ContentResolverShadow shadow = Shadow.extract(contentResolver); shadow.registerInputStream(uri, null /*inputStream*/); StreamLocalUriFetcher fetcher = new StreamLocalUriFetcher(context.getContentResolver(), uri); fetcher.loadData(Priority.LOW, callback); verify(callback).onLoadFailed(isA(FileNotFoundException.class)); }
@Override public DataFetcher<InputStream> build(Uri uri) { return new StreamLocalUriFetcher(contentResolver, uri); }
@Override protected DataFetcher<InputStream> getLocalUriFetcher(Context context, Uri uri) { return new StreamLocalUriFetcher(context, uri); }