Rollback of 557a1833f7
*** Original commit *** Avoid adding spy to list in DataSourceContractTests After the fix in https://github.com/mockito/mockito/issues/2331, the calls to equals on the fake transfer listener (due to its use in a list of listeners) are treated as interactions with it, meaning that the current verification of 'no more interactions' will fail. This change makes the transfer listener used for testing count bytes then delegate to another (mock) transfer listener that's passed in to avoid the problem. *** PiperOrigin-RevId: 393093785
This commit is contained in:
parent
1d36083e25
commit
c90d4fd371
@ -24,6 +24,7 @@ import static org.mockito.ArgumentMatchers.any;
|
|||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||||
|
|
||||||
@ -389,10 +390,8 @@ public abstract class DataSourceContractTest {
|
|||||||
for (int i = 0; i < resources.size(); i++) {
|
for (int i = 0; i < resources.size(); i++) {
|
||||||
additionalFailureInfo.setInfo(getFailureLabel(resources, i));
|
additionalFailureInfo.setInfo(getFailureLabel(resources, i));
|
||||||
DataSource dataSource = createDataSource();
|
DataSource dataSource = createDataSource();
|
||||||
TransferListener listener = mock(TransferListener.class);
|
FakeTransferListener listener = spy(new FakeTransferListener());
|
||||||
ByteCountingTransferListener byteCountingTransferListener =
|
dataSource.addTransferListener(listener);
|
||||||
new ByteCountingTransferListener(listener);
|
|
||||||
dataSource.addTransferListener(byteCountingTransferListener);
|
|
||||||
InOrder inOrder = Mockito.inOrder(listener);
|
InOrder inOrder = Mockito.inOrder(listener);
|
||||||
@Nullable DataSource callbackSource = getTransferListenerDataSource();
|
@Nullable DataSource callbackSource = getTransferListenerDataSource();
|
||||||
if (callbackSource == null) {
|
if (callbackSource == null) {
|
||||||
@ -430,8 +429,7 @@ public abstract class DataSourceContractTest {
|
|||||||
}
|
}
|
||||||
// Verify sufficient onBytesTransferred() callbacks have been triggered before closing the
|
// Verify sufficient onBytesTransferred() callbacks have been triggered before closing the
|
||||||
// DataSource.
|
// DataSource.
|
||||||
assertThat(byteCountingTransferListener.bytesTransferred)
|
assertThat(listener.bytesTransferred).isAtLeast(resource.getExpectedBytes().length);
|
||||||
.isAtLeast(resource.getExpectedBytes().length);
|
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
dataSource.close();
|
dataSource.close();
|
||||||
@ -616,37 +614,23 @@ public abstract class DataSourceContractTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** A {@link TransferListener} that keeps track of the transferred bytes. */
|
/** A {@link TransferListener} that only keeps track of the transferred bytes. */
|
||||||
private static final class ByteCountingTransferListener implements TransferListener {
|
public static class FakeTransferListener implements TransferListener {
|
||||||
|
|
||||||
private final TransferListener transferListener;
|
|
||||||
|
|
||||||
private int bytesTransferred;
|
private int bytesTransferred;
|
||||||
|
|
||||||
public ByteCountingTransferListener(TransferListener transferListener) {
|
@Override
|
||||||
this.transferListener = transferListener;
|
public void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork) {}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork) {
|
public void onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork) {}
|
||||||
transferListener.onTransferInitializing(source, dataSpec, isNetwork);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork) {
|
|
||||||
transferListener.onTransferStart(source, dataSpec, isNetwork);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBytesTransferred(
|
public void onBytesTransferred(
|
||||||
DataSource source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred) {
|
DataSource source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred) {
|
||||||
transferListener.onBytesTransferred(source, dataSpec, isNetwork, bytesTransferred);
|
|
||||||
this.bytesTransferred += bytesTransferred;
|
this.bytesTransferred += bytesTransferred;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork) {
|
public void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork) {}
|
||||||
transferListener.onTransferEnd(source, dataSpec, isNetwork);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user