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; 33a7771df3696954f0e279407e8894a916a7cb26ccJeff Brownimport android.os.ICancellationSignal; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ParcelFileDescriptor; 358280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.os.RemoteException; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileNotFoundException; 3803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintanaimport java.util.ArrayList; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 418280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Mock implementation of ContentProvider. All methods are non-functional and throw 428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link java.lang.UnsupportedOperationException}. Tests can extend this class to 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * implement behavior needed for tests. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawapublic class MockContentProvider extends ContentProvider { 468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /* 478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Note: if you add methods to ContentProvider, you must add similar methods to 488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * MockContentProvider. 498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * IContentProvider that directs all calls to this MockContentProvider. 538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private class InversionIContentProvider implements IContentProvider { 55d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 5635654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public ContentProviderResult[] applyBatch(String callingPackage, 5735654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn ArrayList<ContentProviderOperation> operations) 588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException, OperationApplicationException { 598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.applyBatch(operations); 608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 62d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 6335654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public int bulkInsert(String callingPackage, Uri url, ContentValues[] initialValues) 6435654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn throws RemoteException { 658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.bulkInsert(url, initialValues); 668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 68d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 6935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public int delete(String callingPackage, Uri url, String selection, String[] selectionArgs) 708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.delete(url, selection, selectionArgs); 728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 74d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri url) throws RemoteException { 768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.getType(url); 778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 79d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 8035654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Uri insert(String callingPackage, Uri url, ContentValues initialValues) 8135654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn throws RemoteException { 828280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.insert(url, initialValues); 838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 85d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 8635654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public AssetFileDescriptor openAssetFile(String callingPackage, Uri url, String mode) 8735654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn throws RemoteException, FileNotFoundException { 888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openAssetFile(url, mode); 898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 908280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 91d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 9235654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public ParcelFileDescriptor openFile(String callingPackage, Uri url, String mode) 9335654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn throws RemoteException, FileNotFoundException { 948280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openFile(url, mode); 958280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 968280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 97d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 9835654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Cursor query(String callingPackage, Uri url, String[] projection, String selection, 9935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn String[] selectionArgs, 1004c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown String sortOrder, ICancellationSignal cancellationSignal) throws RemoteException { 1018280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.query(url, projection, selection, 1028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa selectionArgs, sortOrder); 1038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1048280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 105d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 10635654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public int update(String callingPackage, Uri url, ContentValues values, String selection, 10735654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn String[] selectionArgs) throws RemoteException { 1088280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.update(url, values, selection, selectionArgs); 1098280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 111d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 11235654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Bundle call(String callingPackage, String method, String request, Bundle args) 1131877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throws RemoteException { 1141877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return MockContentProvider.this.call(method, request, args); 1151877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1161877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 117d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1188280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public IBinder asBinder() { 1198280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException(); 1208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 122d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 12323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) throws RemoteException { 12423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.getStreamTypes(url, mimeTypeFilter); 12523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 12623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 127d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 12835654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public AssetFileDescriptor openTypedAssetFile(String callingPackage, Uri url, 12935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn String mimeType, Bundle opts) 13023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throws RemoteException, FileNotFoundException { 13123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.openTypedAssetFile(url, mimeType, opts); 13223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 13375ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown 13475ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown @Override 1354c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown public ICancellationSignal createCancellationSignal() throws RemoteException { 13675ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown return null; 13775ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown } 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1398280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private final InversionIContentProvider mIContentProvider = new InversionIContentProvider(); 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1418280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor using {@link MockContext} instance as a Context in it. 1438280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa protected MockContentProvider() { 1458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(new MockContext(), "", "", null); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor accepting a Context instance, which is supposed to be the subclasss of 1508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link MockContext}. 1518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context) { 1538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, "", "", null); 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor which initialize four member variables which 1588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link android.content.ContentProvider} have internally. 1598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 1608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param context A Context object which should be some mock instance (like the 1618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * instance of {@link android.test.mock.MockContext}). 1628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param readPermission The read permision you want this instance should have in the 1638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * test, which is available via {@link #getReadPermission()}. 1648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param writePermission The write permission you want this instance should have 1658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getWritePermission()}. 1668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param pathPermissions The PathPermissions you want this instance should have 1678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getPathPermissions()}. 1688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context, 1708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String readPermission, 1718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String writePermission, 1728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa PathPermission[] pathPermissions) { 1738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, readPermission, writePermission, pathPermissions); 1748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri uri, String selection, String[] selectionArgs) { 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1818280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1828280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri uri) { 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Uri insert(Uri uri, ContentValues values) { 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1918280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1928280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public boolean onCreate() { 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1958943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 1968280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 1988280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) { 1998943737692169f564cd34a9c8d471f3a5d438712Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 2008943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 2018943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 2028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2075bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana /** 2088280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * If you're reluctant to implement this manually, please just call super.bulkInsert(). 2095bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana */ 2108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2118280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri uri, ContentValues[] values) { 2126a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 2136a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana } 2146a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 2158280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2168280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public void attachInfo(Context context, ProviderInfo info) { 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2218280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2258280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 2261877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 2271877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 2281877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick @Override 2291877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) { 2301877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throw new UnsupportedOperationException("unimplemented mock method call"); 2311877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 2321877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 23323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) { 23423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 23523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 23623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 23723fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts) { 23823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 23923fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 24023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 2411877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 2428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Returns IContentProvider which calls back same methods in this class. 2438280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * By overriding this class, we avoid the mechanism hidden behind ContentProvider 2448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * (IPC, etc.) 2458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 2468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @hide 2478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 2488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public final IContentProvider getIContentProvider() { 2508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return mIContentProvider; 2518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 252f99e2e042dbec5eba997eb0ac5e00d5fa23f7840Fred Quintana} 253