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 568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) 578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException, OperationApplicationException { 588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.applyBatch(operations); 598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 61d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri url, ContentValues[] initialValues) throws RemoteException { 638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.bulkInsert(url, initialValues); 648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 66d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri url, String selection, String[] selectionArgs) 688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.delete(url, selection, selectionArgs); 708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 72d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri url) throws RemoteException { 748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.getType(url); 758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 77d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Uri insert(Uri url, ContentValues initialValues) throws RemoteException { 798280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.insert(url, initialValues); 808280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 818280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 82d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public AssetFileDescriptor openAssetFile(Uri url, String mode) throws RemoteException, 848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa FileNotFoundException { 858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openAssetFile(url, mode); 868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 88d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ParcelFileDescriptor openFile(Uri url, String mode) throws RemoteException, 908280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa FileNotFoundException { 918280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openFile(url, mode); 928280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 938280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 94d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 958280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, 964c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown String sortOrder, ICancellationSignal cancellationSignal) throws RemoteException { 978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.query(url, projection, selection, 988280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa selectionArgs, sortOrder); 998280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1008280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 101d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri url, ContentValues values, String selection, String[] selectionArgs) 1038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 1048280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.update(url, values, selection, selectionArgs); 1058280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1068280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 107d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1081877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) 1091877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throws RemoteException { 1101877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return MockContentProvider.this.call(method, request, args); 1111877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1121877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 113d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1148280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public IBinder asBinder() { 1158280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException(); 1168280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 118d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 11923fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) throws RemoteException { 12023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.getStreamTypes(url, mimeTypeFilter); 12123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 12223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 123d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 12423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts) 12523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throws RemoteException, FileNotFoundException { 12623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.openTypedAssetFile(url, mimeType, opts); 12723fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 12875ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown 12975ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown @Override 1304c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown public ICancellationSignal createCancellationSignal() throws RemoteException { 13175ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown return null; 13275ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown } 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1348280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private final InversionIContentProvider mIContentProvider = new InversionIContentProvider(); 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1368280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1378280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor using {@link MockContext} instance as a Context in it. 1388280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1398280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa protected MockContentProvider() { 1408280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(new MockContext(), "", "", null); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1438280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor accepting a Context instance, which is supposed to be the subclasss of 1458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link MockContext}. 1468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context) { 1488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, "", "", null); 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor which initialize four member variables which 1538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link android.content.ContentProvider} have internally. 1548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 1558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param context A Context object which should be some mock instance (like the 1568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * instance of {@link android.test.mock.MockContext}). 1578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param readPermission The read permision you want this instance should have in the 1588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * test, which is available via {@link #getReadPermission()}. 1598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param writePermission The write permission you want this instance should have 1608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getWritePermission()}. 1618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param pathPermissions The PathPermissions you want this instance should have 1628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getPathPermissions()}. 1638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context, 1658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String readPermission, 1668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String writePermission, 1678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa PathPermission[] pathPermissions) { 1688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, readPermission, writePermission, pathPermissions); 1698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri uri, String selection, String[] selectionArgs) { 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri uri) { 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 Uri insert(Uri uri, ContentValues values) { 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 boolean onCreate() { 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1908943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 1918280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1928280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 1938280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) { 1948943737692169f564cd34a9c8d471f3a5d438712Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 1958943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 1968943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 1978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1988280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2025bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana /** 2038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * If you're reluctant to implement this manually, please just call super.bulkInsert(). 2045bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana */ 2058280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2068280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri uri, ContentValues[] values) { 2076a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 2086a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana } 2096a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 2108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2118280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public void attachInfo(Context context, ProviderInfo info) { 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2158280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2168280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 2211877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 2221877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 2231877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick @Override 2241877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) { 2251877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throw new UnsupportedOperationException("unimplemented mock method call"); 2261877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 2271877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 22823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) { 22923fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 23023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 23123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 23223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts) { 23323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 23423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 23523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 2361877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 2378280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Returns IContentProvider which calls back same methods in this class. 2388280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * By overriding this class, we avoid the mechanism hidden behind ContentProvider 2398280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * (IPC, etc.) 2408280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 2418280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @hide 2428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 2438280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public final IContentProvider getIContentProvider() { 2458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return mIContentProvider; 2468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 247f99e2e042dbec5eba997eb0ac5e00d5fa23f7840Fred Quintana} 248