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 {
448280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public int bulkInsert(Uri url, ContentValues[] initialValues) {
458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    @SuppressWarnings("unused")
498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public int delete(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")
598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public Uri insert(Uri url, ContentValues initialValues) throws RemoteException {
608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
628280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
638280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public ParcelFileDescriptor openFile(Uri url, String mode) {
648280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
668280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
678280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public AssetFileDescriptor openAssetFile(Uri uri, String mode) {
688280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
698280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
708280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
718280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) {
728280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
738280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
748280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
758280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs,
764c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown            String sortOrder, ICancellationSignal cancellationSignal) {
778280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
788280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
798280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
808280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public EntityIterator queryEntities(Uri url, String selection, String[] selectionArgs,
818280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa            String sortOrder) {
828280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
838280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
848280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
858280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public int update(Uri url, ContentValues values, String selection, String[] selectionArgs)
868280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa            throws RemoteException {
878280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
888280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
898280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
901877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    public Bundle call(String method, String request, Bundle args)
911877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            throws RemoteException {
921877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        throw new UnsupportedOperationException("unimplemented mock method");
931877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    }
941877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
958280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    public IBinder asBinder() {
968280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa        throw new UnsupportedOperationException("unimplemented mock method");
978280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa    }
9823fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn
9923fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn    public String[] getStreamTypes(Uri url, String mimeTypeFilter) throws RemoteException {
10023fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn        throw new UnsupportedOperationException("unimplemented mock method");
10123fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn    }
10223fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn
10323fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn    public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts)
10423fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn            throws RemoteException, FileNotFoundException {
10523fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn        throw new UnsupportedOperationException("unimplemented mock method");
10623fdaf6fb62a9b5154b2508916a21c678462c5d0Dianne Hackborn    }
10775ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown
10875ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown    @Override
1094c1241df8f8b7fd5ec3dff6c7e0f66271248e76eJeff Brown    public ICancellationSignal createCancellationSignal() throws RemoteException {
11075ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown        throw new UnsupportedOperationException("unimplemented mock method");
11175ea64fc54f328d37b115cfb1ded1e45c30380edJeff Brown    }
1128280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa}
113