Back to Exoplayer

FakeDataSet (ExoPlayer library)

docs/doc/reference/com/google/android/exoplayer2/testutil/FakeDataSet.html

latest8.6 KB
Original Source

Package com.google.android.exoplayer2.testutil

Class FakeDataSet

  • java.lang.Object

    • com.google.android.exoplayer2.testutil.FakeDataSet
  • Direct Known Subclasses:FakeAdaptiveDataSet


public classFakeDataSetextends[Object](https://developer.android.com/reference/java/lang/Object.html "class or interface in java.lang")

Collection of FakeDataSet.FakeData to be served by a FakeDataSource.

Multiple fake data can be defined by setData(Uri, byte[]) and newData(Uri) methods. It's also possible to define a default data by newDefaultData().

newData(Uri) and newDefaultData() return a FakeDataSet.FakeData instance which can be used to define specific results during FakeDataSource.read(byte[], int, int) calls.

The data that will be read from the source can be constructed by calling FakeDataSet.FakeData.appendReadData(byte[]) Calls to FakeDataSource.read(byte[], int, int) will not span the boundaries between arrays passed to successive calls, and hence the boundaries control the positions at which read requests to the source may only be partially satisfied.

Errors can be inserted by calling FakeDataSet.FakeData.appendReadError(IOException). An inserted error will be thrown from the first call to FakeDataSource.read(byte[], int, int) that attempts to read from the corresponding position, and from all subsequent calls to FakeDataSource.read(byte[], int, int) until the source is closed. If the source is closed and re-opened having encountered an error, that error will not be thrown again.

Actions are inserted by calling FakeDataSet.FakeData.appendReadAction(Runnable). An actions is triggered when the reading reaches action's position. This can be used to make sure the code is in a certain state while testing.

Example usage:

// Create a FakeDataSource then add default data and two FakeData
   // "test_file" throws an IOException when tried to be read until closed and reopened.
   FakeDataSource fakeDataSource = new FakeDataSource();
   fakeDataSource.getDataSet()
       .newDefaultData()
         .appendReadData(defaultData)
         .endData()
       .setData("http://1", data1)
       .newData("test_file")
         .appendReadError(new IOException())
         .appendReadData(data2)
         .endData();

Nested Class Summary

Nested Classes | Modifier and Type | Class | Description | | --- | --- | --- | | static class | FakeDataSet.FakeData | Container of fake data to be served by a FakeDataSource. |

Constructor Summary

Constructors | Constructor | Description | | --- | --- | | FakeDataSet() | |

Method Summary

All Methods Instance Methods Concrete Methods | Modifier and Type | Method | Description | | --- | --- | --- | | ArrayList<FakeDataSet.FakeData> | getAllData() | Returns a list of all data including defaultData. | | FakeDataSet.FakeData | getData​(Uri uri) | Returns the data for the given uri, or defaultData if no data is set. | | FakeDataSet.FakeData | getData​(String uri) | Returns the data for the given uri, or defaultData if no data is set. | | FakeDataSet.FakeData | newData​(Uri uri) | Returns a new FakeDataSet.FakeData with the given uri. | | FakeDataSet.FakeData | newData​(String uri) | Returns a new FakeDataSet.FakeData with the given uri. | | FakeDataSet.FakeData | newDefaultData() | Sets the default data, overwrites if there is one already. | | FakeDataSet | setData​(Uri uri, byte[] data) | Sets the given data for the given uri. | | FakeDataSet | setData​(String uri, byte[] data) | Sets the given data for the given uri. | | FakeDataSet | setRandomData​(Uri uri, int length) | Sets random data with the given length for the given uri. | | FakeDataSet | setRandomData​(String uri, int length) | Sets random data with the given length for the given uri. |

- 

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

- 

FakeDataSet

public FakeDataSet()

Method Detail

- 

newDefaultData

public[FakeDataSet.FakeData](FakeDataSet.FakeData.html "class in com.google.android.exoplayer2.testutil")newDefaultData()

Sets the default data, overwrites if there is one already.

- 

setRandomData

public[FakeDataSet](FakeDataSet.html "class in com.google.android.exoplayer2.testutil")setRandomData​([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")uri,
                                 int length)

Sets random data with the given length for the given uri.

- 

setRandomData

public[FakeDataSet](FakeDataSet.html "class in com.google.android.exoplayer2.testutil")setRandomData​([Uri](https://developer.android.com/reference/android/net/Uri.html "class or interface in android.net")uri,
                                 int length)

Sets random data with the given length for the given uri.

- 

setData

public[FakeDataSet](FakeDataSet.html "class in com.google.android.exoplayer2.testutil")setData​([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")uri,
                           byte[] data)

Sets the given data for the given uri.

- 

setData

public[FakeDataSet](FakeDataSet.html "class in com.google.android.exoplayer2.testutil")setData​([Uri](https://developer.android.com/reference/android/net/Uri.html "class or interface in android.net")uri,
                           byte[] data)

Sets the given data for the given uri.

- 

newData

public[FakeDataSet.FakeData](FakeDataSet.FakeData.html "class in com.google.android.exoplayer2.testutil")newData​([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")uri)

Returns a new FakeDataSet.FakeData with the given uri.

- 

newData

public[FakeDataSet.FakeData](FakeDataSet.FakeData.html "class in com.google.android.exoplayer2.testutil")newData​([Uri](https://developer.android.com/reference/android/net/Uri.html "class or interface in android.net")uri)

Returns a new FakeDataSet.FakeData with the given uri.

- 

getData

@Nullable
public[FakeDataSet.FakeData](FakeDataSet.FakeData.html "class in com.google.android.exoplayer2.testutil")getData​([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")uri)

Returns the data for the given uri, or defaultData if no data is set.

- 

getData

@Nullable
public[FakeDataSet.FakeData](FakeDataSet.FakeData.html "class in com.google.android.exoplayer2.testutil")getData​([Uri](https://developer.android.com/reference/android/net/Uri.html "class or interface in android.net")uri)

Returns the data for the given uri, or defaultData if no data is set.

- 

getAllData

public[ArrayList](https://developer.android.com/reference/java/util/ArrayList.html "class or interface in java.util")<[FakeDataSet.FakeData](FakeDataSet.FakeData.html "class in com.google.android.exoplayer2.testutil")> getAllData()

Returns a list of all data including defaultData.