Skip to content

Commit

Permalink
Rollback of 557a183
Browse files Browse the repository at this point in the history
*** Original commit ***

Avoid adding spy to list in DataSourceContractTests

After the fix in mockito/mockito#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
  • Loading branch information
icbaker authored and marcbaechinger committed Aug 27, 2021
1 parent 1d36083 commit c90d4fd
Showing 1 changed file with 9 additions and 25 deletions.
Expand Up @@ -24,6 +24,7 @@
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;

Expand Down Expand Up @@ -389,10 +390,8 @@ public void transferListenerCallbacks() throws Exception {
for (int i = 0; i < resources.size(); i++) {
additionalFailureInfo.setInfo(getFailureLabel(resources, i));
DataSource dataSource = createDataSource();
TransferListener listener = mock(TransferListener.class);
ByteCountingTransferListener byteCountingTransferListener =
new ByteCountingTransferListener(listener);
dataSource.addTransferListener(byteCountingTransferListener);
FakeTransferListener listener = spy(new FakeTransferListener());
dataSource.addTransferListener(listener);
InOrder inOrder = Mockito.inOrder(listener);
@Nullable DataSource callbackSource = getTransferListenerDataSource();
if (callbackSource == null) {
Expand Down Expand Up @@ -430,8 +429,7 @@ public void transferListenerCallbacks() throws Exception {
}
// Verify sufficient onBytesTransferred() callbacks have been triggered before closing the
// DataSource.
assertThat(byteCountingTransferListener.bytesTransferred)
.isAtLeast(resource.getExpectedBytes().length);
assertThat(listener.bytesTransferred).isAtLeast(resource.getExpectedBytes().length);

} finally {
dataSource.close();
Expand Down Expand Up @@ -616,37 +614,23 @@ public TestResource build() {
}
}

/** A {@link TransferListener} that keeps track of the transferred bytes. */
private static final class ByteCountingTransferListener implements TransferListener {

private final TransferListener transferListener;

/** A {@link TransferListener} that only keeps track of the transferred bytes. */
public static class FakeTransferListener implements TransferListener {
private int bytesTransferred;

public ByteCountingTransferListener(TransferListener transferListener) {
this.transferListener = transferListener;
}

@Override
public void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork) {
transferListener.onTransferInitializing(source, dataSpec, isNetwork);
}
public void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork) {}

@Override
public void onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork) {
transferListener.onTransferStart(source, dataSpec, isNetwork);
}
public void onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork) {}

@Override
public void onBytesTransferred(
DataSource source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred) {
transferListener.onBytesTransferred(source, dataSpec, isNetwork, bytesTransferred);
this.bytesTransferred += bytesTransferred;
}

@Override
public void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork) {
transferListener.onTransferEnd(source, dataSpec, isNetwork);
}
public void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork) {}
}
}

0 comments on commit c90d4fd

Please sign in to comment.