19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 28280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.test.mock; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 198280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.ContentProvider; 208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.ContentProviderOperation; 218280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.ContentProviderResult; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentValues; 238280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.Context; 248280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.IContentProvider; 258943737692169f564cd34a9c8d471f3a5d438712Fred Quintanaimport android.content.OperationApplicationException; 268280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.pm.PathPermission; 278280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.pm.ProviderInfo; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.AssetFileDescriptor; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.Cursor; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 311877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrickimport android.os.Bundle; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ParcelFileDescriptor; 348280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.os.RemoteException; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileNotFoundException; 3703d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintanaimport java.util.ArrayList; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 408280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Mock implementation of ContentProvider. All methods are non-functional and throw 418280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link java.lang.UnsupportedOperationException}. Tests can extend this class to 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * implement behavior needed for tests. 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawapublic class MockContentProvider extends ContentProvider { 458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /* 468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Note: if you add methods to ContentProvider, you must add similar methods to 478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * MockContentProvider. 488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * IContentProvider that directs all calls to this MockContentProvider. 528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private class InversionIContentProvider implements IContentProvider { 54d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) 568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException, OperationApplicationException { 578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.applyBatch(operations); 588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 60d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri url, ContentValues[] initialValues) throws RemoteException { 628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.bulkInsert(url, initialValues); 638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 65d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri url, String selection, String[] selectionArgs) 678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.delete(url, selection, selectionArgs); 698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 71d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri url) throws RemoteException { 738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.getType(url); 748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 76d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Uri insert(Uri url, ContentValues initialValues) throws RemoteException { 788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.insert(url, initialValues); 798280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 808280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 81d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 828280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public AssetFileDescriptor openAssetFile(Uri url, String mode) throws RemoteException, 838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa FileNotFoundException { 848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openAssetFile(url, mode); 858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 87d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ParcelFileDescriptor openFile(Uri url, String mode) throws RemoteException, 898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa FileNotFoundException { 908280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openFile(url, mode); 918280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 928280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 93d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 948280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, 958280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) throws RemoteException { 968280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.query(url, projection, selection, 978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa selectionArgs, sortOrder); 988280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 998280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 100d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1018280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri url, ContentValues values, String selection, String[] selectionArgs) 1028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 1038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.update(url, values, selection, selectionArgs); 1048280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1058280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 106d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1071877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) 1081877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throws RemoteException { 1091877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return MockContentProvider.this.call(method, request, args); 1101877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1111877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 112d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1138280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public IBinder asBinder() { 1148280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException(); 1158280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 117d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 11823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) throws RemoteException { 11923fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.getStreamTypes(url, mimeTypeFilter); 12023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 12123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 122d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 12323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts) 12423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throws RemoteException, FileNotFoundException { 12523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.openTypedAssetFile(url, mimeType, opts); 12623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1288280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private final InversionIContentProvider mIContentProvider = new InversionIContentProvider(); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1308280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1318280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor using {@link MockContext} instance as a Context in it. 1328280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1338280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa protected MockContentProvider() { 1348280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(new MockContext(), "", "", null); 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1378280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1388280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor accepting a Context instance, which is supposed to be the subclasss of 1398280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link MockContext}. 1408280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1418280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context) { 1428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, "", "", null); 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor which initialize four member variables which 1478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link android.content.ContentProvider} have internally. 1488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 1498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param context A Context object which should be some mock instance (like the 1508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * instance of {@link android.test.mock.MockContext}). 1518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param readPermission The read permision you want this instance should have in the 1528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * test, which is available via {@link #getReadPermission()}. 1538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param writePermission The write permission you want this instance should have 1548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getWritePermission()}. 1558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param pathPermissions The PathPermissions you want this instance should have 1568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getPathPermissions()}. 1578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context, 1598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String readPermission, 1608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String writePermission, 1618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa PathPermission[] pathPermissions) { 1628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, readPermission, writePermission, pathPermissions); 1638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri uri, String selection, String[] selectionArgs) { 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri uri) { 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Uri insert(Uri uri, ContentValues values) { 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1808280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1818280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public boolean onCreate() { 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1848943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 1858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 1878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) { 1888943737692169f564cd34a9c8d471f3a5d438712Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 1898943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 1908943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 1918280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1928280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1965bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana /** 1978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * If you're reluctant to implement this manually, please just call super.bulkInsert(). 1985bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana */ 1998280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2008280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri uri, ContentValues[] values) { 2016a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 2026a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana } 2036a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 2048280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2058280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public void attachInfo(Context context, ProviderInfo info) { 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2098280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2148280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 2151877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 2161877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 2171877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick @Override 2181877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) { 2191877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throw new UnsupportedOperationException("unimplemented mock method call"); 2201877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 2211877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 22223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) { 22323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 22423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 22523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 22623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts) { 22723fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 22823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 22923fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 2301877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 2318280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Returns IContentProvider which calls back same methods in this class. 2328280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * By overriding this class, we avoid the mechanism hidden behind ContentProvider 2338280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * (IPC, etc.) 2348280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 2358280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @hide 2368280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 2378280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2388280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public final IContentProvider getIContentProvider() { 2398280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return mIContentProvider; 2408280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 241f99e2e042dbec5eba997eb0ac5e00d5fa23f7840Fred Quintana} 242