# DataSourceContractTest.TestResource.Builder

Artifact: [androidx.media3:media3-test-utils](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/test/utils/DataSourceContractTest.java+class:androidx.media3.test.utils.DataSourceContractTest.TestResource.Builder)

*** ** * ** ***


```
public final class DataSourceContractTest.TestResource.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#Builder()()` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#build()()` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setExpectedBytes(byte[])(byte[] expectedBytes)` Sets the expected contents of this resource. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setHttpMethod(int)(@https://developer.android.com/reference/androidx/media3/datasource/DataSpec.HttpMethod int httpMethod)` Sets the HTTP method that should be used for the request for this resource. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setMayResolveToUnknownLength(boolean)(boolean value)` Sets whether `https://developer.android.com/reference/androidx/media3/datasource/DataSource#open(androidx.media3.datasource.DataSpec)` may return `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` when passed the URI of this resource and a `https://developer.android.com/reference/androidx/media3/datasource/DataSpec` with `length == C.LENGTH_UNSET`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setName(java.lang.String)(https://developer.android.com/reference/java/lang/String.html name)` Sets a human-readable name for this resource which will be shown in test failure messages. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setRequestBody(byte[])(byte[] requestBody)` Sets the body that should be included in a request for this resource. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setRequestHeaders(java.util.Map<java.lang.String,java.lang.String>)(https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> requestHeaders)` Sets the headers that should be included when making a request for this resource. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setResolvedUri(java.lang.String)(https://developer.android.com/reference/java/lang/String.html uri)` Sets the URI where this resource is served from. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setResolvedUri(android.net.Uri)(https://developer.android.com/reference/android/net/Uri.html uri)` Sets the URI where this resource is served from. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setResponseHeaders(java.util.Map<java.lang.String,java.util.List<java.lang.String>>)(https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html>> responseHeaders)` Sets the headers associated with this resource that are expected to be present in `https://developer.android.com/reference/androidx/media3/datasource/DataSource#getResponseHeaders()`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setUnexpectedResponseHeaderKeys(java.util.Set<java.lang.String>)( https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> unexpectedResponseHeaderKeys )` Sets the keys that must **not** be present in `https://developer.android.com/reference/androidx/media3/datasource/DataSource#getResponseHeaders()` when reading this resource. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setUri(java.lang.String)(https://developer.android.com/reference/java/lang/String.html uri)` Sets the URI where this resource should be requested from. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setUri(android.net.Uri)(https://developer.android.com/reference/android/net/Uri.html uri)` Sets the URI where this resource should be requested from. |

## Public constructors

### Builder

```
public Builder()
```

## Public methods

### build

```
public DataSourceContractTest.TestResource build()
```

### setExpectedBytes

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setExpectedBytes(byte[] expectedBytes)
```

Sets the expected contents of this resource. Defaults to an empty byte array.

### setHttpMethod

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setHttpMethod(@DataSpec.HttpMethod int httpMethod)
```

Sets the HTTP method that should be used for the request for this resource.

Tests will fail if the wrong method is used.

Defaults to `https://developer.android.com/reference/androidx/media3/datasource/DataSpec#HTTP_METHOD_GET()`.

### setMayResolveToUnknownLength

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setMayResolveToUnknownLength(boolean value)
```

Sets whether `https://developer.android.com/reference/androidx/media3/datasource/DataSource#open(androidx.media3.datasource.DataSpec)` may return `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` when passed the URI of this resource and a `https://developer.android.com/reference/androidx/media3/datasource/DataSpec` with `length ==
C.LENGTH_UNSET`.

This may be because the underlying resource doesn't have an end (e.g. a 'live' MP3 file that is constantly appended to) or because the resource supports compression that means the 'true' length cannot be initially determined.

Defaults to `false`.

### setName

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setName(String name)
```

Sets a human-readable name for this resource which will be shown in test failure messages.

### setRequestBody

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setRequestBody(byte[] requestBody)
```

Sets the body that should be included in a request for this resource.

Tests will fail if a request is made without including this body.

Must only be set if `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setHttpMethod(int)` is `https://developer.android.com/reference/androidx/media3/datasource/DataSpec#HTTP_METHOD_POST()` or `https://developer.android.com/reference/androidx/media3/datasource/DataSpec#HTTP_METHOD_HEAD()`.

Defaults to an empty array.

### setRequestHeaders

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setRequestHeaders(Map<String, String> requestHeaders)
```

Sets the headers that should be included when making a request for this resource.

Tests will fail if a request is made without including these headers.

This doesn't have to be an exhaustive list, extra headers included in the request will not cause a failure. Defaults to an empty map.

### setResolvedUri

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setResolvedUri(String uri)
```

Sets the URI where this resource is served from. This only needs to be explicitly set if it's different to `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setUri(android.net.Uri)`. See `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getResolvedUri()`.

### setResolvedUri

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setResolvedUri(Uri uri)
```

Sets the URI where this resource is served from. This only needs to be explicitly set if it's different to `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder#setUri(android.net.Uri)`. See `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getResolvedUri()`.

### setResponseHeaders

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setResponseHeaders(Map<String, List<String>> responseHeaders)
```

Sets the headers associated with this resource that are expected to be present in `https://developer.android.com/reference/androidx/media3/datasource/DataSource#getResponseHeaders()`.

This doesn't have to be an exhaustive list, extra headers in `https://developer.android.com/reference/androidx/media3/datasource/DataSource#getResponseHeaders()` are ignored. Defaults to an empty map.

### setUnexpectedResponseHeaderKeys

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setUnexpectedResponseHeaderKeys(
    Set<String> unexpectedResponseHeaderKeys
)
```

Sets the keys that must **not** be present in `https://developer.android.com/reference/androidx/media3/datasource/DataSource#getResponseHeaders()` when reading this resource. Defaults to an empty set.

### setUri

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setUri(String uri)
```

Sets the URI where this resource should be requested from.

### setUri

```
@CanIgnoreReturnValue
public DataSourceContractTest.TestResource.Builder setUri(Uri uri)
```

Sets the URI where this resource should be requested from.