# DataSourceContractTest.TestResource

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)

*** ** * ** ***

<br />

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

<br />

*** ** * ** ***

Information about a resource that can be used to test the `https://developer.android.com/reference/androidx/media3/datasource/DataSource` instance.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` Builder for `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource` instances. |

| ### Public fields |
|---|---|
| `final byte[]` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#expectedBytes()` |
| `final int` | `@https://developer.android.com/reference/androidx/media3/datasource/DataSpec.HttpMethod https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#httpMethod()` |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#name()` |
| `final byte[]` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#requestBody()` |
| `final https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableMap.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#requestHeaders()` |
| `final https://developer.android.com/reference/android/net/Uri.html` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#resolvedUri()` |
| `final 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>>` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#responseHeaders()` |
| `final https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#unexpectedResponseHeaderKeys()` |
| `final https://developer.android.com/reference/android/net/Uri.html` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#uri()` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#buildUpon()()` Returns a `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` initialized with the values of this instance. |
| `byte[]` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getExpectedBytes()()` Returns the expected contents of this resource. |
| `int` | `@https://developer.android.com/reference/androidx/media3/datasource/DataSpec.HttpMethod https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getHttpMethod()()` The HTTP method that should be used to request the resource. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getName()()` Returns a human-readable name for the resource, for use in test failure messages. |
| `byte[]` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getRequestBody()()` The body that should be included in a request for the resource. |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableMap.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getRequestHeaders()()` The headers that should be included in a request for the resource. |
| `https://developer.android.com/reference/android/net/Uri.html` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getResolvedUri()()` Returns the URI where the resource is served from. |
| `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>>` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getResponseHeaders()()` Returns 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/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getUnexpectedResponseHeaderKeys()()` Returns 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/android/net/Uri.html` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getUri()()` Returns the URI where the resource should be requested from. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#mayResolveToUnknownLength()()` Returns whether this resource may not report a length. |

## Public fields

### expectedBytes

```
public final byte[] expectedBytes
```

### httpMethod

```
@DataSpec.HttpMethod
public final int httpMethod
```

### name

```
public final @Nullable String name
```

### requestBody

```
public final byte[] requestBody
```

### requestHeaders

```
public final ImmutableMap<String, String> requestHeaders
```

### resolvedUri

```
public final Uri resolvedUri
```

### responseHeaders

```
public final Map<String, List<String>> responseHeaders
```

### unexpectedResponseHeaderKeys

```
public final Set<String> unexpectedResponseHeaderKeys
```

### uri

```
public final Uri uri
```

## Public methods

### buildUpon

```
public DataSourceContractTest.TestResource.Builder buildUpon()
```

Returns a `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource.Builder` initialized with the values of this instance.

### getExpectedBytes

```
public byte[] getExpectedBytes()
```

Returns the expected contents of this resource.

### getHttpMethod

```
@DataSpec.HttpMethod
public int getHttpMethod()
```

The HTTP method that should be used to request the resource.

### getName

```
public @Nullable String getName()
```

Returns a human-readable name for the resource, for use in test failure messages.

### getRequestBody

```
public byte[] getRequestBody()
```

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

This will be empty if `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getHttpMethod()` is `https://developer.android.com/reference/androidx/media3/datasource/DataSpec#HTTP_METHOD_GET()`.

### getRequestHeaders

```
public ImmutableMap<String, String> getRequestHeaders()
```

The headers that should be included in a request for the resource.

This is not an exhaustive list, extra headers may be included.

### getResolvedUri

```
public Uri getResolvedUri()
```

Returns the URI where the resource is served from. This is equal to `https://developer.android.com/reference/androidx/media3/test/utils/DataSourceContractTest.TestResource#getUri()` unless redirection occurred when opening the resource.

### getResponseHeaders

```
public Map<String, List<String>> getResponseHeaders()
```

Returns 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.

### getUnexpectedResponseHeaderKeys

```
public Set<String> getUnexpectedResponseHeaderKeys()
```

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

### getUri

```
public Uri getUri()
```

Returns the URI where the resource should be requested from.

### mayResolveToUnknownLength

```
public boolean mayResolveToUnknownLength()
```

Returns whether this resource may not report a length.