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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() |
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. |