18280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa/* 28280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project 38280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 48280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License"); 58280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * you may not use this file except in compliance with the License. 68280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * You may obtain a copy of the License at 78280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 88280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * http://www.apache.org/licenses/LICENSE-2.0 98280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 108280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software 118280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS, 128280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * See the License for the specific language governing permissions and 148280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * limitations under the License. 158280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 168280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 178280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawapackage android.test.mock; 188280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 198280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.ContentProviderOperation; 208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.ContentProviderResult; 218280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.ContentValues; 228280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.EntityIterator; 238280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.IContentProvider; 248280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.content.res.AssetFileDescriptor; 258280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.database.Cursor; 268280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.net.Uri; 271877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrickimport android.os.Bundle; 288280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.os.IBinder; 29a7771df3696954f0e279407e8894a916a7cb26ccJeff Brownimport android.os.ICancellationSignal; 308280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.os.ParcelFileDescriptor; 318280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport android.os.RemoteException; 328280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 3323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackbornimport java.io.FileNotFoundException; 348280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaimport java.util.ArrayList; 358280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 368280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa/** 378280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * Mock implementation of IContentProvider. All methods are non-functional and throw 388280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * {@link java.lang.UnsupportedOperationException}. Tests can extend this class to 398280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * implement behavior needed for tests. 408280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa * 411877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide - @hide because this exposes bulkQuery() and call(), which must also be hidden. 428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa */ 438280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawapublic class MockIContentProvider implements IContentProvider { 4435654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public int bulkInsert(String callingPackage, Uri url, ContentValues[] initialValues) { 458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 4935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public int delete(String callingPackage, Uri url, String selection, String[] selectionArgs) 508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throws RemoteException { 518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public String getType(Uri url) { 558280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 568280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 578280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa @SuppressWarnings("unused") 5935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Uri insert(String callingPackage, Uri url, ContentValues initialValues) 6035654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn throws RemoteException { 618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 64bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey public ParcelFileDescriptor openFile( 65bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey String callingPackage, Uri url, String mode, ICancellationSignal signal) { 668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 69bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey public AssetFileDescriptor openAssetFile( 70bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey String callingPackage, Uri uri, String mode, ICancellationSignal signal) { 718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 7435654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public ContentProviderResult[] applyBatch(String callingPackage, 7535654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn ArrayList<ContentProviderOperation> operations) { 768280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 7935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Cursor query(String callingPackage, Uri url, String[] projection, String selection, 8035654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn String[] selectionArgs, 814c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown String sortOrder, ICancellationSignal cancellationSignal) { 828280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public EntityIterator queryEntities(Uri url, String selection, String[] selectionArgs, 868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa String sortOrder) { 878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 9035654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public int update(String callingPackage, Uri url, ContentValues values, String selection, 9135654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn String[] selectionArgs) throws RemoteException { 928280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 938280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 948280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa 9535654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public Bundle call(String callingPackage, String method, String request, Bundle args) 961877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throws RemoteException { 971877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick throw new UnsupportedOperationException("unimplemented mock method"); 981877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 991877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 1008280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public IBinder asBinder() { 1018280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa throw new UnsupportedOperationException("unimplemented mock method"); 1028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa } 10323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 10423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn public String[] getStreamTypes(Uri url, String mimeTypeFilter) throws RemoteException { 10523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method"); 10623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 10723fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn 10835654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn public AssetFileDescriptor openTypedAssetFile(String callingPackage, Uri url, String mimeType, 109bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey Bundle opts, ICancellationSignal signal) throws RemoteException, FileNotFoundException { 11023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method"); 11123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn } 11275ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown 11375ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown @Override 1144c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown public ICancellationSignal createCancellationSignal() throws RemoteException { 11575ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown throw new UnsupportedOperationException("unimplemented mock method"); 11675ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown } 11738ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn 11838ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn @Override 11938ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn public Uri canonicalize(String callingPkg, Uri uri) throws RemoteException { 12038ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method"); 12138ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn } 12238ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn 12338ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn @Override 12438ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn public Uri uncanonicalize(String callingPkg, Uri uri) throws RemoteException { 12538ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn throw new UnsupportedOperationException("unimplemented mock method"); 12638ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn } 1278280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa} 128