# ProviderTestRule.Builder

Artifact: [androidx.test:rules](https://developer.android.com/jetpack/androidx/releases/test) [View Source](https://cs.android.com/search?q=file:androidx/test/rule/provider/ProviderTestRule.java+class:androidx.test.rule.provider.ProviderTestRule.Builder)

*** ** * ** ***


```
class ProviderTestRule.Builder
```

<br />

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
>
> Consider using a real provider, or implementing a fake ContentProvider specific to your use case.

A Builder to ease `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule` creation. Users can input one or more `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 `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setPrefix(java.lang.String)`. If the ContentProvider under test is implemented based on `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 |
|---|
| `<T : https://developer.android.com/reference/android/content/ContentProvider.html?> [Builder](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#Builder(java.lang.Class<T>,java.lang.String))(providerClass: https://developer.android.com/reference/java/lang/Class.html<T!>, providerAuth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` **This function is deprecated.** Deprecated in Java |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder!` | `<T : https://developer.android.com/reference/android/content/ContentProvider.html?> [addProvider](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#addProvider(java.lang.Class<T>,java.lang.String))( providerClass: https://developer.android.com/reference/java/lang/Class.html<T!>, providerAuth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html )` **This function is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule!` | `[build](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#build())()` **This function is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder!` | `[setDatabaseCommands](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommands(java.lang.String,java.lang.String...))(dbName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, dbCmds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>)` **This function is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder!` | `[setDatabaseCommandsFile](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommandsFile(java.lang.String,java.io.File))(dbName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, dbCmdFile: https://developer.android.com/reference/java/io/File.html)` **This function is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder!` | `[setDatabaseFile](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setDatabaseFile(java.lang.String,java.io.File))(dbName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, dbDataFile: https://developer.android.com/reference/java/io/File.html)` **This function is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder!` | `[setPrefix](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setPrefix(java.lang.String))(prefix: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` **This function is deprecated.** Deprecated in Java |

## Public constructors

### Builder

```
<T : ContentProvider?> [Builder](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#Builder(java.lang.Class<T>,java.lang.String))(providerClass: Class<T!>, providerAuth: String)
```

> [!CAUTION]
> **This function is deprecated.**   
> Deprecated in Java

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

| Parameters |
|---|---|
| `providerClass: https://developer.android.com/reference/java/lang/Class.html<T!>` | The class of ContentProvider under test. |
| `providerAuth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The authority defined for ContentProvider under test. |

## Public functions

### addProvider

```
fun <T : ContentProvider?> [addProvider](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#addProvider(java.lang.Class<T>,java.lang.String))(
    providerClass: Class<T!>,
    providerAuth: String
): ProviderTestRule.Builder!
```

> [!CAUTION]
> **This function is deprecated.**   
> Deprecated in Java

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

| Parameters |
|---|---|
| `providerClass: https://developer.android.com/reference/java/lang/Class.html<T!>` | The class of the added ContentProvider under test. |
| `providerAuth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The authority defined for the added ContentProvider under test. |

### build

```
fun [build](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#build())(): ProviderTestRule!
```

> [!CAUTION]
> **This function is deprecated.**   
> Deprecated in Java

### setDatabaseCommands

```
fun [setDatabaseCommands](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommands(java.lang.String,java.lang.String...))(dbName: String, dbCmds: Array<String!>): ProviderTestRule.Builder!
```

> [!CAUTION]
> **This function is deprecated.**   
> Deprecated in Java

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

| Parameters |
|---|---|
| `dbName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The name of the underlying database used by the ContentProvider under test. |
| `dbCmds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | The SQL commands to run. Each command will be passed to `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String)` to execute. |

### setDatabaseCommandsFile

```
fun [setDatabaseCommandsFile](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommandsFile(java.lang.String,java.io.File))(dbName: String, dbCmdFile: File): ProviderTestRule.Builder!
```

> [!CAUTION]
> **This function is deprecated.**   
> Deprecated in Java

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

| Parameters |
|---|---|
| `dbName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The name of the underlying database used by the ContentProvider under test. |
| `dbCmdFile: https://developer.android.com/reference/java/io/File.html` | The file that contains line separated database commands to run. Each line will be treated as a separate command and passed to `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String)` to execute. |

### setDatabaseFile

```
fun [setDatabaseFile](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setDatabaseFile(java.lang.String,java.io.File))(dbName: String, dbDataFile: File): ProviderTestRule.Builder!
```

> [!CAUTION]
> **This function is deprecated.**   
> Deprecated in Java

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 `https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setDatabaseCommands(java.lang.String,java.lang.String...)` and `https://developer.android.com/reference/kotlin/androidx/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.

| Parameters |
|---|---|
| `dbName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The name of the underlying database used by the ContentProvider under test. |
| `dbDataFile: https://developer.android.com/reference/java/io/File.html` | The SQLite database file that contains the data to restore. |

### setPrefix

```
fun [setPrefix](https://developer.android.com/reference/kotlin/androidx/test/rule/provider/ProviderTestRule.Builder#setPrefix(java.lang.String))(prefix: String): ProviderTestRule.Builder!
```

> [!CAUTION]
> **This function is deprecated.**   
> Deprecated in Java

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: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The non-empty prefix to append to test files. |