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 86bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey public AssetFileDescriptor openAssetFile( 87bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey String callingPackage, Uri url, String mode, ICancellationSignal signal) 8835654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn throws RemoteException, FileNotFoundException { 898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openAssetFile(url, mode); 908280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 918280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 92d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 93bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey public ParcelFileDescriptor openFile( 94ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn String callingPackage, Uri url, String mode, ICancellationSignal signal, 95ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn IBinder callerToken) throws RemoteException, FileNotFoundException { 968280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.openFile(url, mode); 978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 988280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 99d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 10035654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Cursor query(String callingPackage, Uri url, String[] projection, String selection, 10135654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn String[] selectionArgs, 1024c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown String sortOrder, ICancellationSignal cancellationSignal) throws RemoteException { 1038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.query(url, projection, selection, 1048280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa selectionArgs, sortOrder); 1058280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1068280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 107d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 10835654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public int update(String callingPackage, Uri url, ContentValues values, String selection, 10935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn String[] selectionArgs) throws RemoteException { 1108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return MockContentProvider.this.update(url, values, selection, selectionArgs); 1118280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1128280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 113d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 11435654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Bundle call(String callingPackage, String method, String request, Bundle args) 1151877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throws RemoteException { 1161877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return MockContentProvider.this.call(method, request, args); 1171877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1181877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 119d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 1208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public IBinder asBinder() { 1218280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException(); 1228280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 124d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 12523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) throws RemoteException { 12623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.getStreamTypes(url, mimeTypeFilter); 12723fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 12823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 129d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown @Override 13035654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public AssetFileDescriptor openTypedAssetFile(String callingPackage, Uri url, 131bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey String mimeType, Bundle opts, ICancellationSignal signal) 13223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throws RemoteException, FileNotFoundException { 13323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn return MockContentProvider.this.openTypedAssetFile(url, mimeType, opts); 13423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 13575ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown 13675ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown @Override 1374c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown public ICancellationSignal createCancellationSignal() throws RemoteException { 13875ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown return null; 13975ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown } 14038ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn 14138ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn @Override 14238ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn public Uri canonicalize(String callingPkg, Uri uri) throws RemoteException { 14338ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn return MockContentProvider.this.canonicalize(uri); 14438ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn } 14538ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn 14638ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn @Override 14738ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn public Uri uncanonicalize(String callingPkg, Uri uri) throws RemoteException { 14838ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn return MockContentProvider.this.uncanonicalize(uri); 14938ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn } 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa private final InversionIContentProvider mIContentProvider = new InversionIContentProvider(); 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor using {@link MockContext} instance as a Context in it. 1558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa protected MockContentProvider() { 1578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(new MockContext(), "", "", null); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor accepting a Context instance, which is supposed to be the subclasss of 1628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link MockContext}. 1638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context) { 1658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, "", "", null); 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 1698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * A constructor which initialize four member variables which 1708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link android.content.ContentProvider} have internally. 1718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 1728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param context A Context object which should be some mock instance (like the 1738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * instance of {@link android.test.mock.MockContext}). 1748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param readPermission The read permision you want this instance should have in the 1758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * test, which is available via {@link #getReadPermission()}. 1768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param writePermission The write permission you want this instance should have 1778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getWritePermission()}. 1788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @param pathPermissions The PathPermissions you want this instance should have 1798280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * in the test, which is available via {@link #getPathPermissions()}. 1808280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 1818280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public MockContentProvider(Context context, 1828280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String readPermission, 1838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String writePermission, 1848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa PathPermission[] pathPermissions) { 1858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa super(context, readPermission, writePermission, pathPermissions); 1868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 1878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 1888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int delete(Uri uri, String selection, String[] selectionArgs) { 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1938280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1948280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri uri) { 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1988280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 1998280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Uri insert(Uri uri, ContentValues values) { 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2048280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public boolean onCreate() { 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2078943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 2088280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2098280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 2108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) { 2118943737692169f564cd34a9c8d471f3a5d438712Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 2128943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 2138943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 2148280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2158280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2195bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana /** 2208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * If you're reluctant to implement this manually, please just call super.bulkInsert(). 2215bba632d877c2878384ff21566c8eb6a1a22f37bFred Quintana */ 2228280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2238280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public int bulkInsert(Uri uri, ContentValues[] values) { 2246a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana throw new UnsupportedOperationException("unimplemented mock method"); 2256a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana } 2266a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 2278280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2288280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public void attachInfo(Context context, ProviderInfo info) { 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2328280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2338280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2378280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa /** 2381877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 2391877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 2401877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick @Override 2411877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public Bundle call(String method, String request, Bundle args) { 2421877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throw new UnsupportedOperationException("unimplemented mock method call"); 2431877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 2441877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 24523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) { 24623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 24723fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 24823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 24923fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts) { 25023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method call"); 25123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 25223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 2531877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 2548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Returns IContentProvider which calls back same methods in this class. 2558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * By overriding this class, we avoid the mechanism hidden behind ContentProvider 2568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * (IPC, etc.) 2578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 2588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * @hide 2598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 2608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @Override 2618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public final IContentProvider getIContentProvider() { 2628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa return mIContentProvider; 2638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 264f99e2e042dbec5eba997eb0ac5e00d5fa23f7840Fred Quintana} 265