MockContentProvider.java revision 1877d0158b529663b8315482e7346a7bcaa96166
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; 246a8d5332f00bdfade6674b312e7166940aa28348Fred Quintanaimport android.content.EntityIterator; 258280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.IContentProvider; 268943737692169f564cd34a9c8d471f3a5d438712Fred Quintanaimport android.content.OperationApplicationException; 278280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.pm.PathPermission; 288280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.pm.ProviderInfo; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.AssetFileDescriptor; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.Cursor; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.CursorWindow; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.IBulkCursor; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.IContentObserver; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 351877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrickimport android.os.Bundle; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ParcelFileDescriptor; 388280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.os.RemoteException; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileNotFoundException; 4103d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintanaimport java.util.ArrayList; 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Mock implementation of ContentProvider. All methods are non-functional and throw 458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link java.lang.UnsupportedOperationException}. Tests can extend this class to 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * implement behavior needed for tests. 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawapublic class MockContentProvider extends ContentProvider { 498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /* 508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Note: if you add methods to ContentProvider, you must add similar methods to 518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * MockContentProvider. 528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * IContentProvider that directs all calls to this MockContentProvider. 568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private class InversionIContentProvider implements IContentProvider { 588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) 608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException, OperationApplicationException { 618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.applyBatch(operations); 628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri url, ContentValues[] initialValues) throws RemoteException { 668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.bulkInsert(url, initialValues); 678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public IBulkCursor bulkQuery(Uri url, String[] projection, String selection, 718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String[] selectionArgs, String sortOrder, IContentObserver observer, 728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa CursorWindow window) throws RemoteException { 738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("Must not come here"); 748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri url, String selection, String[] selectionArgs) 788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 798280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.delete(url, selection, selectionArgs); 808280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 818280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 828280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri url) throws RemoteException { 848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.getType(url); 858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Uri insert(Uri url, ContentValues initialValues) throws RemoteException { 898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.insert(url, initialValues); 908280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 918280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 928280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 938280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public AssetFileDescriptor openAssetFile(Uri url, String mode) throws RemoteException, 948280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa FileNotFoundException { 958280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openAssetFile(url, mode); 968280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 988280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 998280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ParcelFileDescriptor openFile(Uri url, String mode) throws RemoteException, 1008280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa FileNotFoundException { 1018280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openFile(url, mode); 1028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1048280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 1058280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, 1068280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) throws RemoteException { 1078280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.query(url, projection, selection, 1088280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa selectionArgs, sortOrder); 1098280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1118280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 1128280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri url, ContentValues values, String selection, String[] selectionArgs) 1138280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 1148280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.update(url, values, selection, selectionArgs); 1158280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1168280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1171877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 1181877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 1191877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 1201877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick @SuppressWarnings("unused") 1211877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) 1221877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throws RemoteException { 1231877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return MockContentProvider.this.call(method, request, args); 1241877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1251877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 1268280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public IBinder asBinder() { 1278280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException(); 1288280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1318280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private final InversionIContentProvider mIContentProvider = new InversionIContentProvider(); 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1338280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1348280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor using {@link MockContext} instance as a Context in it. 1358280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1368280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa protected MockContentProvider() { 1378280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(new MockContext(), "", "", null); 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1408280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1418280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor accepting a Context instance, which is supposed to be the subclasss of 1428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link MockContext}. 1438280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context) { 1458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, "", "", null); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor which initialize four member variables which 1508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link android.content.ContentProvider} have internally. 1518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 1528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param context A Context object which should be some mock instance (like the 1538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * instance of {@link android.test.mock.MockContext}). 1548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param readPermission The read permision you want this instance should have in the 1558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * test, which is available via {@link #getReadPermission()}. 1568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param writePermission The write permission you want this instance should have 1578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getWritePermission()}. 1588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param pathPermissions The PathPermissions you want this instance should have 1598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getPathPermissions()}. 1608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context, 1628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String readPermission, 1638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String writePermission, 1648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa PathPermission[] pathPermissions) { 1658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, readPermission, writePermission, pathPermissions); 1668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri uri, String selection, String[] selectionArgs) { 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri uri) { 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1798280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Uri insert(Uri uri, ContentValues values) { 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public boolean onCreate() { 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1878943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 1888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 1908280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) { 1918943737692169f564cd34a9c8d471f3a5d438712Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 1928943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 1938943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 1948280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1958280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1995bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana /** 2008280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * If you're reluctant to implement this manually, please just call super.bulkInsert(). 2015bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana */ 2028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri uri, ContentValues[] values) { 2046a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 2056a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana } 2066a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 2078280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2088280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public void attachInfo(Context context, ProviderInfo info) { 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2128280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2138280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2178280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 2181877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 2191877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 2201877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick @Override 2211877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) { 2221877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throw new UnsupportedOperationException("unimplemented mock method call"); 2231877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 2241877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 2251877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 2268280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Returns IContentProvider which calls back same methods in this class. 2278280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * By overriding this class, we avoid the mechanism hidden behind ContentProvider 2288280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * (IPC, etc.) 2298280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 2308280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @hide 2318280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 2328280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2338280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public final IContentProvider getIContentProvider() { 2348280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return mIContentProvider; 2358280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 236f99e2e042dbec5eba997eb0ac5e00d5fa23f7840Fred Quintana} 237