Make FakeDataSource FakeDataSet and FakeData structures accessible publicly for comparision in tests
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=151331819
This commit is contained in:
parent
5ebb3d4481
commit
1888bd291b
@ -21,6 +21,7 @@ import com.google.android.exoplayer2.upstream.DataSource;
|
|||||||
import com.google.android.exoplayer2.upstream.DataSourceException;
|
import com.google.android.exoplayer2.upstream.DataSourceException;
|
||||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||||
import com.google.android.exoplayer2.util.Assertions;
|
import com.google.android.exoplayer2.util.Assertions;
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -236,11 +237,14 @@ public final class FakeDataSource implements DataSource {
|
|||||||
/** Container of fake data to be served by a {@link FakeDataSource}. */
|
/** Container of fake data to be served by a {@link FakeDataSource}. */
|
||||||
public static final class FakeData {
|
public static final class FakeData {
|
||||||
|
|
||||||
|
/** Uri of the data or null if this is the default FakeData. */
|
||||||
|
public final String uri;
|
||||||
private final ArrayList<Segment> segments;
|
private final ArrayList<Segment> segments;
|
||||||
private final FakeDataSet dataSet;
|
private final FakeDataSet dataSet;
|
||||||
private boolean simulateUnknownLength;
|
private boolean simulateUnknownLength;
|
||||||
|
|
||||||
public FakeData(FakeDataSet dataSet) {
|
private FakeData(FakeDataSet dataSet, String uri) {
|
||||||
|
this.uri = uri;
|
||||||
this.segments = new ArrayList<>();
|
this.segments = new ArrayList<>();
|
||||||
this.dataSet = dataSet;
|
this.dataSet = dataSet;
|
||||||
}
|
}
|
||||||
@ -277,32 +281,46 @@ public final class FakeDataSource implements DataSource {
|
|||||||
segments.add(new Segment(null, exception));
|
segments.add(new Segment(null, exception));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Returns the whole data added by {@link #appendReadData(byte[])}. */
|
||||||
|
public byte[] getData() {
|
||||||
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||||
|
for (Segment segment : segments) {
|
||||||
|
if (segment.data != null) {
|
||||||
|
try {
|
||||||
|
outputStream.write(segment.data);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new IllegalStateException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return outputStream.toByteArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** A set of {@link FakeData} instances. */
|
/** A set of {@link FakeData} instances. */
|
||||||
public static final class FakeDataSet {
|
public static final class FakeDataSet {
|
||||||
|
|
||||||
private FakeData defaultData;
|
|
||||||
private final HashMap<String, FakeData> dataMap;
|
private final HashMap<String, FakeData> dataMap;
|
||||||
|
private FakeData defaultData;
|
||||||
|
|
||||||
public FakeDataSet() {
|
public FakeDataSet() {
|
||||||
dataMap = new HashMap<>();
|
dataMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public FakeData newDefaultData() {
|
public FakeData newDefaultData() {
|
||||||
defaultData = new FakeData(this);
|
defaultData = new FakeData(this, null);
|
||||||
return defaultData;
|
return defaultData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FakeData newData(String uri) {
|
public FakeData newData(String uri) {
|
||||||
FakeData data = new FakeData(this);
|
FakeData data = new FakeData(this, uri);
|
||||||
dataMap.put(uri, data);
|
dataMap.put(uri, data);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FakeDataSet setData(String uri, byte[] data) {
|
public FakeDataSet setData(String uri, byte[] data) {
|
||||||
newData(uri).appendReadData(data);
|
return newData(uri).appendReadData(data).endData();
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public FakeData getData(String uri) {
|
public FakeData getData(String uri) {
|
||||||
@ -310,6 +328,13 @@ public final class FakeDataSource implements DataSource {
|
|||||||
return data != null ? data : defaultData;
|
return data != null ? data : defaultData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<FakeData> getAllData() {
|
||||||
|
ArrayList<FakeData> fakeDatas = new ArrayList<>(dataMap.values());
|
||||||
|
if (defaultData != null) {
|
||||||
|
fakeDatas.add(defaultData);
|
||||||
|
}
|
||||||
|
return fakeDatas;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user