| java.lang.Object | ||
| ↳ | android.content.ContentProvider | |
| ↳ | android.test.mock.MockContentProvider | |
Mock implementation of ContentProvider. All methods are non-functional and throw
UnsupportedOperationException. Tests can extend this class to
implement behavior needed for tests.
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
A constructor accepting a Context instance, which is supposed to be the subclasss of
MockContext. | |||||||||||
A constructor which initialize four member variables which
ContentProvider have internally. | |||||||||||
| Protected Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
A constructor using
MockContext instance as a Context in it. | |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Applies each of the
ContentProviderOperation objects and returns an array
of their results. | |||||||||||
After being instantiated, this is called to tell the content provider
about itself.
| |||||||||||
If you're reluctant to implement this manually, please just call super.bulkInsert().
| |||||||||||
A request to delete one or more rows.
| |||||||||||
Return the MIME type of the data at the given URI.
| |||||||||||
Implement this to insert a new row.
| |||||||||||
Called when the provider is being started.
| |||||||||||
Receives a query request from a client in a local process, and
returns a Cursor.
| |||||||||||
Update a content URI.
| |||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class android.content.ContentProvider
| |||||||||||
From class java.lang.Object
| |||||||||||
From interface android.content.ComponentCallbacks
| |||||||||||
A constructor accepting a Context instance, which is supposed to be the subclasss of
MockContext.
A constructor which initialize four member variables which
ContentProvider have internally.
| context | A Context object which should be some mock instance (like the
instance of MockContext). |
|---|---|
| readPermission | The read permision you want this instance should have in the
test, which is available via getReadPermission(). |
| writePermission | The write permission you want this instance should have
in the test, which is available via getWritePermission(). |
| pathPermissions | The PathPermissions you want this instance should have
in the test, which is available via getPathPermissions().
|
A constructor using MockContext instance as a Context in it.
Applies each of the ContentProviderOperation objects and returns an array
of their results. Passes through OperationApplicationException, which may be thrown
by the call to apply(ContentProvider, ContentProviderResult[], int).
If all the applications succeed then a ContentProviderResult array with the
same number of elements as the operations will be returned. It is implementation-specific
how many, if any, operations will have been successfully applied if a call to
apply results in a OperationApplicationException.
| operations | the operations to apply |
|---|
After being instantiated, this is called to tell the content provider about itself.
| context | The context this provider is running in |
|---|---|
| info | Registered information about this content provider |
If you're reluctant to implement this manually, please just call super.bulkInsert().
| uri | The content:// URI of the insertion request. |
|---|---|
| values | An array of sets of column_name/value pairs to add to the database. |
A request to delete one or more rows. The selection clause is applied when performing
the deletion, allowing the operation to affect multiple rows in a
directory.
As a courtesy, call notifyDelete()
after deleting.
This method can be called from multiple
threads, as described in
Application Fundamentals:
Processes and Threads.
The implementation is responsible for parsing out a row ID at the end
of the URI, if a specific row is being deleted. That is, the client would
pass in content://contacts/people/22 and the implementation is
responsible for parsing the record number (22) when creating a SQL statement.
| uri | The full URI to query, including a row ID (if a specific record is requested). |
|---|---|
| selection | An optional restriction to apply to rows when deleting. |
Return the MIME type of the data at the given URI. This should start with
vnd.android.cursor.item for a single record,
or vnd.android.cursor.dir/ for multiple items.
This method can be called from multiple
threads, as described in
Application Fundamentals:
Processes and Threads.
| uri | the URI to query. |
|---|
Implement this to insert a new row.
As a courtesy, call notifyChange()
after inserting.
This method can be called from multiple
threads, as described in
Application Fundamentals:
Processes and Threads.
| uri | The content:// URI of the insertion request. |
|---|---|
| values | A set of column_name/value pairs to add to the database. |
Called when the provider is being started.
Receives a query request from a client in a local process, and
returns a Cursor. This is called internally by the ContentResolver.
This method can be called from multiple
threads, as described in
Application Fundamentals:
Processes and Threads.
Example client call:
// Request a specific record.
Cursor managedCursor = managedQuery(
ContentUris.withAppendedId(Contacts.People.CONTENT_URI, 2),
projection, // Which columns to return.
null, // WHERE clause.
null, // WHERE clause value substitution
People.NAME + " ASC"); // Sort order.
Example implementation:
// SQLiteQueryBuilder is a helper class that creates the
// proper SQL syntax for us.
SQLiteQueryBuilder qBuilder = new SQLiteQueryBuilder();
// Set the table we're querying.
qBuilder.setTables(DATABASE_TABLE_NAME);
// If the query ends in a specific record number, we're
// being asked for a specific record, so set the
// WHERE clause in our query.
if((URI_MATCHER.match(uri)) == SPECIFIC_MESSAGE){
qBuilder.appendWhere("_id=" + uri.getPathLeafId());
}
// Make the query.
Cursor c = qBuilder.query(mDb,
projection,
selection,
selectionArgs,
groupBy,
having,
sortOrder);
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;| uri | The URI to query. This will be the full URI sent by the client; if the client is requesting a specific record, the URI will end in a record number that the implementation should parse and add to a WHERE or HAVING clause, specifying that _id value. |
|---|---|
| projection | The list of columns to put into the cursor. If null all columns are included. |
| selection | A selection criteria to apply when filtering rows. If null then all rows are included. |
| selectionArgs | You may include ?s in selection, which will be replaced by the values from selectionArgs, in order that they appear in the selection. The values will be bound as Strings. |
| sortOrder | How the rows in the cursor should be sorted. If null then the provider is free to define the sort order. |
Update a content URI. All rows matching the optionally provided selection
will have their columns listed as the keys in the values map with the
values of those keys.
As a courtesy, call notifyChange()
after updating.
This method can be called from multiple
threads, as described in
Application Fundamentals:
Processes and Threads.
| uri | The URI to query. This can potentially have a record ID if this is an update request for a specific record. |
|---|---|
| values | A Bundle mapping from column names to new column values (NULL is a valid value). |
| selection | An optional filter to match rows to update. |