# ProviderTestRule.Builder

Summary:[Ctors](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#pubctors)\|[Methods](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#)  

# ProviderTestRule.Builder

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public
static


class
ProviderTestRule.Builder
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object.html)`


``


`

|---|-------------------------------------------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||
| ↳ | android.support.test.rule.provider.ProviderTestRule.Builder |

<br />

*** ** * ** ***

A Builder to ease[ProviderTestRule](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule)creation. Users can input one or more[ContentProvider](https://developer.android.com/reference/android/content/ContentProvider.html)s and their corresponding`authority`for tests. It also allows to specify the prefix to use when renaming test files for isolation by[setPrefix(String)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setPrefix(java.lang.String)). If the ContentProvider under test is implemented based on[SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html), users can also pass in database file to restore or database commands to run before tests.

## Summary

|                                                                                                                                                                                                                                                                                                  ### Public constructors                                                                                                                                                                                                                                                                                                   ||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#ProviderTestRule.Builder(java.lang.Class<T>, java.lang.String))`(`[Class](https://developer.android.com/reference/java/lang/Class.html)`<T> providerClass, `[String](https://developer.android.com/reference/java/lang/String.html)` providerAuth) ` The basic builder to use when creating a`ProviderTestRule`, which allows to specify one[ContentProvider](https://developer.android.com/reference/android/content/ContentProvider.html)and the corresponding`authority`for tests. |

|                                                                                                                                                                                                                                                                                                                                             ### Public methods                                                                                                                                                                                                                                                                                                                                              ||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` <T extends `[ContentProvider](https://developer.android.com/reference/android/content/ContentProvider.html)`> `[ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder) | ` `[addProvider](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#addProvider(java.lang.Class<T>, java.lang.String))`(`[Class](https://developer.android.com/reference/java/lang/Class.html)`<T> providerClass, `[String](https://developer.android.com/reference/java/lang/String.html)` providerAuth) ` Allows to add additional ContentProvider and the corresponding authority for testing.        |
| ` `[ProviderTestRule](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule)                                                                                                                               | ` `[build](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#build())`() `                                                                                                                                                                                                                                                                                                                              |
| ` `[ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder)                                                                                                               | ` `[setDatabaseCommands](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommands(java.lang.String, java.lang.String...))`(`[String](https://developer.android.com/reference/java/lang/String.html)` dbName, `[String...](https://developer.android.com/reference/java/lang/String.html)` dbCmds) ` Allows to pass in specific SQL commands to run against the database with a given name. |
| ` `[ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder)                                                                                                               | ` `[setDatabaseCommandsFile](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommandsFile(java.lang.String, java.io.File))`(`[String](https://developer.android.com/reference/java/lang/String.html)` dbName, `[File](https://developer.android.com/reference/java/io/File.html)` dbCmdFile) ` Allows to pass in a file containing commands to run against the database with a given name. |
| ` `[ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder)                                                                                                               | ` `[setDatabaseFile](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseFile(java.lang.String, java.io.File))`(`[String](https://developer.android.com/reference/java/lang/String.html)` dbName, `[File](https://developer.android.com/reference/java/io/File.html)` dbDataFile) ` Allows to pass in a SQLite database file containing the intended initial data to restore.                  |
| ` `[ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder)                                                                                                               | ` `[setPrefix](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setPrefix(java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String.html)` prefix) ` Enables users to specify the prefix to use when renaming test files for isolation.                                                                                                                                   |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#)From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object.html)` ` |-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object.html)          | ` clone() `                                                                                | | ` boolean`                                                                          | ` equals(`[Object](https://developer.android.com/reference/java/lang/Object.html)` arg0) ` | | ` void`                                                                             | ` finalize() `                                                                             | | ` final `[Class](https://developer.android.com/reference/java/lang/Class.html)`<?>` | ` getClass() `                                                                             | | ` int`                                                                              | ` hashCode() `                                                                             | | ` final void`                                                                       | ` notify() `                                                                               | | ` final void`                                                                       | ` notifyAll() `                                                                            | | ` `[String](https://developer.android.com/reference/java/lang/String.html)          | ` toString() `                                                                             | | ` final void`                                                                       | ` wait(long arg0, int arg1) `                                                              | | ` final void`                                                                       | ` wait(long arg0) `                                                                        | | ` final void`                                                                       | ` wait() `                                                                                 | ||

## Public constructors

### ProviderTestRule.Builder

```
ProviderTestRule.Builder (Class<T> providerClass, 
                String providerAuth)
```

The basic builder to use when creating a`ProviderTestRule`, which allows to specify one[ContentProvider](https://developer.android.com/reference/android/content/ContentProvider.html)and the corresponding`authority`for tests.

<br />

|                                       Parameters                                        ||
|-----------------|------------------------------------------------------------------------|
| `providerClass` | `Class`: The class of ContentProvider under test. <br />               |
| `providerAuth`  | `String`: The authority defined for ContentProvider under test. <br /> |

## Public methods

### addProvider

```
ProviderTestRule.Builder addProvider (Class<T> providerClass, 
                String providerAuth)
```

Allows to add additional ContentProvider and the corresponding authority for testing. Similarly,[setDatabaseFile(String, File)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseFile(java.lang.String, java.io.File)),[setDatabaseCommands(String, String...)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommands(java.lang.String, java.lang.String...)),[setDatabaseCommandsFile(String, File)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommandsFile(java.lang.String, java.io.File)), and[runDatabaseCommands(String, String...)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule#runDatabaseCommands(java.lang.String, java.lang.String...))can be used for this ContentProvider.

<br />

|                                            Parameters                                             ||
|-----------------|----------------------------------------------------------------------------------|
| `providerClass` | `Class`: The class of the added ContentProvider under test. <br />               |
| `providerAuth`  | `String`: The authority defined for the added ContentProvider under test. <br /> |

|                                                                 Returns                                                                 ||
|---------------------------------------------------------------------------------------------------------------------------------|--------|
| [ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder) | <br /> |

### build

```
ProviderTestRule build ()
```

<br />

<br />

|                                                         Returns                                                         ||
|-----------------------------------------------------------------------------------------------------------------|--------|
| [ProviderTestRule](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule) | <br /> |

### setDatabaseCommands

```
ProviderTestRule.Builder setDatabaseCommands (String dbName, 
                String... dbCmds)
```

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(String, File)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommandsFile(java.lang.String, java.io.File)), but after restoring the database file, if any, passed in via[setDatabaseFile(String, File)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseFile(java.lang.String, java.io.File)).

<br />

<br />

|                                                                                                          Parameters                                                                                                           ||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `dbName` | `String`: The name of the underlying database used by the ContentProvider under test. <br />                                                                                                                        |
| `dbCmds` | `String`: The SQL commands to run. Each command will be passed to[execSQL(String)](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String))to execute. <br /> |

|                                                                 Returns                                                                 ||
|---------------------------------------------------------------------------------------------------------------------------------|--------|
| [ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder) | <br /> |

### setDatabaseCommandsFile

```
ProviderTestRule.Builder setDatabaseCommandsFile (String dbName, 
                File dbCmdFile)
```

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(String, File)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseFile(java.lang.String, java.io.File))and executing commands, if any, passed in via[setDatabaseCommands(String, String...)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommands(java.lang.String, java.lang.String...)).

<br />

<br />

|                                                                                                                                              Parameters                                                                                                                                              ||
|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `dbName`    | `String`: The name of the underlying database used by the ContentProvider under test. <br />                                                                                                                                                                                            |
| `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(String)](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String))to execute. <br /> |

|                                                                 Returns                                                                 ||
|---------------------------------------------------------------------------------------------------------------------------------|--------|
| [ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder) | <br /> |

### setDatabaseFile

```
ProviderTestRule.Builder setDatabaseFile (String dbName, 
                File dbDataFile)
```

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(String, String...)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommands(java.lang.String, java.lang.String...))and[setDatabaseCommandsFile(String, File)](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommandsFile(java.lang.String, java.io.File)).

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

<br />

<br />

|                                                 Parameters                                                 ||
|--------------|----------------------------------------------------------------------------------------------|
| `dbName`     | `String`: The name of the underlying database used by the ContentProvider under test. <br /> |
| `dbDataFile` | `File`: The SQLite database file that contains the data to restore. <br />                   |

|                                                                 Returns                                                                 ||
|---------------------------------------------------------------------------------------------------------------------------------|--------|
| [ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder) | <br /> |

### setPrefix

```
ProviderTestRule.Builder setPrefix (String prefix)
```

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.

<br />

|                                Parameters                                ||
|----------|----------------------------------------------------------------|
| `prefix` | `String`: The non-empty prefix to append to test files. <br /> |

|                                                                 Returns                                                                 ||
|---------------------------------------------------------------------------------------------------------------------------------|--------|
| [ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder) | <br /> |

-

  ## Classes

  - [ProviderTestRule](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule)
  - [ProviderTestRule.Builder](https://developer.android.com/reference/android/support/test/rule/provider/ProviderTestRule.Builder)