to top
Android APIs
public abstract class

ProviderTestCase2

extends AndroidTestCase
java.lang.Object
   ↳ junit.framework.Assert
     ↳ junit.framework.TestCase
       ↳ android.test.AndroidTestCase
         ↳ android.test.ProviderTestCase2<T extends android.content.ContentProvider>

Class Overview

This test case class provides a framework for testing a single ContentProvider and for testing your app code with an isolated content provider. Instead of using the system map of providers that is based on the manifests of other applications, the test case creates its own internal map. It then uses this map to resolve providers given an authority. This allows you to inject test providers and to null out providers that you do not want to use.

This test case also sets up the following mock objects:

This framework is set up automatically by the base class' setUp() method. If you override this method, you must call the super method as the first statement in your override.

In order for their tests to be run, concrete subclasses must provide their own constructor with no arguments. This constructor must call ProviderTestCase2(Class, String) as its first operation.

For more information on content provider testing, please see Content Provider Testing.

Summary

[Expand]
Inherited Fields
From class android.test.AndroidTestCase
Public Constructors
ProviderTestCase2(Class<T> providerClass, String providerAuthority)
Constructor.
Public Methods
MockContentResolver getMockContentResolver()
Gets the MockContentResolver created by this class during initialization.
IsolatedContext getMockContext()
Gets the IsolatedContext created by this class during initialization.
T getProvider()
Returns the content provider created by this class in the setUp() method.
static <T extends ContentProvider> ContentResolver newResolverWithContentProviderFromSql(Context targetContext, String filenamePrefix, Class<T> providerClass, String authority, String databaseName, int databaseVersion, String sql)

Creates a new content provider of the same type as that passed to the test case class, with an authority name set to the authority parameter, and using an SQLite database as the underlying data source.

Protected Methods
void setUp()
Sets up the environment for the test fixture.
void tearDown()
Tears down the environment for the test fixture.
[Expand]
Inherited Methods
From class android.test.AndroidTestCase
From class junit.framework.TestCase
From class junit.framework.Assert
From class java.lang.Object
From interface junit.framework.Test

Public Constructors

public ProviderTestCase2 (Class<T> providerClass, String providerAuthority)

Added in API level 3

Constructor.

Parameters
providerClass The class name of the provider under test
providerAuthority The provider's authority string

Public Methods

public MockContentResolver getMockContentResolver ()

Added in API level 3

Gets the MockContentResolver created by this class during initialization. You must use the methods of this resolver to access the provider under test.

Returns

public IsolatedContext getMockContext ()

Added in API level 3

Gets the IsolatedContext created by this class during initialization.

Returns

public T getProvider ()

Added in API level 3

Returns the content provider created by this class in the setUp() method.

Returns
  • T An instance of the provider class given as a parameter to the test case class.

public static ContentResolver newResolverWithContentProviderFromSql (Context targetContext, String filenamePrefix, Class<T> providerClass, String authority, String databaseName, int databaseVersion, String sql)

Added in API level 3

Creates a new content provider of the same type as that passed to the test case class, with an authority name set to the authority parameter, and using an SQLite database as the underlying data source. The SQL statement parameter is used to create the database. This method also creates a new MockContentResolver and adds the provider to it.

Both the new provider and the new resolver are put into an IsolatedContext that uses the targetContext parameter for file operations and a MockContext for everything else. The IsolatedContext prepends the filenamePrefix parameter to file, database, and directory names.

This is a convenience method for creating a "mock" provider that can contain test data.

Parameters
targetContext The context to use as the basis of the IsolatedContext
filenamePrefix A string that is prepended to file, database, and directory names
providerClass The type of the provider being tested
authority The authority string to associated with the test provider
databaseName The name assigned to the database
databaseVersion The version assigned to the database
sql A string containing the SQL statements that are needed to create the desired database and its tables. The format is the same as that generated by the sqlite3 tool's .dump command.
Returns
Throws
IllegalAccessException
InstantiationException
IllegalAccessException

Protected Methods

protected void setUp ()

Added in API level 3

Sets up the environment for the test fixture.

Creates a new MockContentResolver, a new IsolatedContext that isolates the provider's file operations, and a new instance of the provider under test within the isolated environment.

Throws
Exception

protected void tearDown ()

Added in API level 3

Tears down the environment for the test fixture.

Calls shutdown() on the ContentProvider represented by mProvider.

Throws
Exception