ProviderTestRule.Builder


class ProviderTestRule.Builder


A Builder to ease ProviderTestRule creation. Users can input one or more s and their corresponding authority for tests. It also allows to specify the prefix to use when renaming test files for isolation by setPrefix. If the ContentProvider under test is implemented based on SQLiteDatabase, users can also pass in database file to restore or database commands to run before tests.

Summary

Public constructors

<T : ContentProvider?> Builder(providerClass: Class<T!>, providerAuth: String)

The basic builder to use when creating a ProviderTestRule, which allows to specify one ContentProvider and the corresponding authority for tests.

Public functions

ProviderTestRule.Builder!
<T : ContentProvider?> addProvider(
    providerClass: Class<T!>,
    providerAuth: String
)

Allows to add additional ContentProvider and the corresponding authority for testing.

ProviderTestRule!
ProviderTestRule.Builder!
setDatabaseCommands(dbName: String, dbCmds: Array<String!>)

Allows to pass in specific SQL commands to run against the database with a given name.

ProviderTestRule.Builder!
setDatabaseCommandsFile(dbName: String, dbCmdFile: File)

Allows to pass in a file containing commands to run against the database with a given name.

ProviderTestRule.Builder!
setDatabaseFile(dbName: String, dbDataFile: File)

Allows to pass in a SQLite database file containing the intended initial data to restore.

ProviderTestRule.Builder!
setPrefix(prefix: String)

Enables users to specify the prefix to use when renaming test files for isolation.

Public constructors

Builder

<T : ContentProvider?> Builder(providerClass: Class<T!>, providerAuth: String)

The basic builder to use when creating a ProviderTestRule, which allows to specify one ContentProvider and the corresponding authority for tests.

Parameters
providerClass: Class<T!>

The class of ContentProvider under test.

providerAuth: String

The authority defined for ContentProvider under test.

Public functions

addProvider

fun <T : ContentProvider?> addProvider(
    providerClass: Class<T!>,
    providerAuth: String
): ProviderTestRule.Builder!

Allows to add additional ContentProvider and the corresponding authority for testing. Similarly, setDatabaseFile, setDatabaseCommands, setDatabaseCommandsFile, and runDatabaseCommands can be used for this ContentProvider.

Parameters
providerClass: Class<T!>

The class of the added ContentProvider under test.

providerAuth: String

The authority defined for the added ContentProvider under test.

build

fun build(): ProviderTestRule!

setDatabaseCommands

fun setDatabaseCommands(dbName: String, dbCmds: Array<String!>): ProviderTestRule.Builder!

Allows to pass in specific SQL commands to run against the database with a given name.

Note: The passed in commands are executed before any sql commands execution in SQLiteOpenHelper's onCreate method defined in ContentProvider under test, also before executing commands, if any, passed in via setDatabaseCommandsFile, but after restoring the database file, if any, passed in via setDatabaseFile.

Parameters
dbName: String

The name of the underlying database used by the ContentProvider under test.

dbCmds: Array<String!>

The SQL commands to run. Each command will be passed to execSQL to execute.

setDatabaseCommandsFile

fun setDatabaseCommandsFile(dbName: String, dbCmdFile: File): ProviderTestRule.Builder!

Allows to pass in a file containing commands to run against the database with a given name.

Note: Commands in the file are executed before any sql commands execution in SQLiteOpenHelper's onCreate method defined in ContentProvider under test, but after restoring the database file, if any, passed in via setDatabaseFile and executing commands, if any, passed in via setDatabaseCommands.

Parameters
dbName: String

The name of the underlying database used by the ContentProvider under test.

dbCmdFile: File

The file that contains line separated database commands to run. Each line will be treated as a separate command and passed to execSQL to execute.

setDatabaseFile

fun setDatabaseFile(dbName: String, dbDataFile: File): ProviderTestRule.Builder!

Allows to pass in a SQLite database file containing the intended initial data to restore.

Note: Restoring the database from the file are executed before any sql commands execution in SQLiteOpenHelper's onCreate method defined in ContentProvider under test, also before running the database commands, if any, passed in via setDatabaseCommands and setDatabaseCommandsFile.

In the case of the database file with prefixed name already exists, the database restoration will overwrite existing file.

Parameters
dbName: String

The name of the underlying database used by the ContentProvider under test.

dbDataFile: File

The SQLite database file that contains the data to restore.

setPrefix

fun setPrefix(prefix: String): ProviderTestRule.Builder!

Enables users to specify the prefix to use when renaming test files for isolation. If not used, this rule will use "#DEFAULT_PREFIX" by default.

Parameters
prefix: String

The non-empty prefix to append to test files.