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(
65ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn            String callingPackage, Uri url, String mode, ICancellationSignal signal,
66ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn            IBinder callerToken) {
678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
70bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey    public AssetFileDescriptor openAssetFile(
71bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey            String callingPackage, Uri uri, String mode, ICancellationSignal signal) {
728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
7535654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn    public ContentProviderResult[] applyBatch(String callingPackage,
7635654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn            ArrayList<ContentProviderOperation> operations) {
778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
798280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
8035654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn    public Cursor query(String callingPackage, Uri url, String[] projection, String selection,
8135654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn            String[] selectionArgs,
824c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown            String sortOrder, ICancellationSignal cancellationSignal) {
838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public EntityIterator queryEntities(Uri url, String selection, String[] selectionArgs,
878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa            String sortOrder) {
888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
908280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
9135654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn    public int update(String callingPackage, Uri url, ContentValues values, String selection,
9235654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn            String[] selectionArgs) throws RemoteException {
938280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
948280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
958280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
9635654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn    public Bundle call(String callingPackage, String method, String request, Bundle args)
971877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            throws RemoteException {
981877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        throw new UnsupportedOperationException("unimplemented mock method");
991877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    }
1001877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
1018280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public IBinder asBinder() {
1028280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
1038280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
10423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn
10523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn    public String[] getStreamTypes(Uri url, String mimeTypeFilter) throws RemoteException {
10623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn        throw new UnsupportedOperationException("unimplemented mock method");
10723fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn    }
10823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn
10935654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn    public AssetFileDescriptor openTypedAssetFile(String callingPackage, Uri url, String mimeType,
110bd3b902567b09379e1b62c60b3319ad82102efadJeff Sharkey            Bundle opts, ICancellationSignal signal) throws RemoteException, FileNotFoundException {
11123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn        throw new UnsupportedOperationException("unimplemented mock method");
11223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn    }
11375ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown
11475ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown    @Override
1154c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown    public ICancellationSignal createCancellationSignal() throws RemoteException {
11675ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown        throw new UnsupportedOperationException("unimplemented mock method");
11775ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown    }
11838ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn
11938ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn    @Override
12038ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn    public Uri canonicalize(String callingPkg, Uri uri) throws RemoteException {
12138ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn        throw new UnsupportedOperationException("unimplemented mock method");
12238ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn    }
12338ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn
12438ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn    @Override
12538ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn    public Uri uncanonicalize(String callingPkg, Uri uri) throws RemoteException {
12638ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn        throw new UnsupportedOperationException("unimplemented mock method");
12738ed2a471a2291383821fb187bfa18450f0581c2Dianne Hackborn    }
1288280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa}
129