Handle nullable case caused by tests

Add mock to test.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
This commit is contained in:
HenrikJannsen 2022-11-24 19:47:55 -05:00
parent 2de86222b7
commit ffd2cc1a8c
No known key found for this signature in database
GPG key ID: 02AA2BAE387C8307
2 changed files with 17 additions and 4 deletions

View file

@ -71,6 +71,7 @@ import bisq.common.util.Tuple2;
import bisq.common.util.Utilities;
import com.google.protobuf.ByteString;
import com.google.protobuf.Message;
import com.google.inject.name.Named;
@ -430,7 +431,11 @@ public class P2PDataStorage implements MessageListener, ConnectionListener, Pers
.map(Map.Entry::getValue)
.filter(payload -> shouldTransmitPayloadToPeer(peerCapabilities, objToPayload.apply(payload)))
.filter(payload -> {
if (exceededSizeLimit.get() || totalSize.addAndGet(payload.toProtoMessage().getSerializedSize()) > limit) {
Message message = payload.toProtoMessage();
if (message == null) {
return true;
}
if (exceededSizeLimit.get() || totalSize.addAndGet(message.getSerializedSize()) > limit) {
exceededSizeLimit.set(true);
}
return !exceededSizeLimit.get();
@ -444,7 +449,11 @@ public class P2PDataStorage implements MessageListener, ConnectionListener, Pers
.map(Map.Entry::getValue)
.filter(payload -> shouldTransmitPayloadToPeer(peerCapabilities, objToPayload.apply(payload)))
.filter(payload -> {
if (exceededSizeLimit.get() || totalSize.addAndGet(payload.toProtoMessage().getSerializedSize()) > limit) {
Message message = payload.toProtoMessage();
if (message == null) {
return true;
}
if (exceededSizeLimit.get() || totalSize.addAndGet(message.getSerializedSize()) > limit) {
exceededSizeLimit.set(true);
}
return !exceededSizeLimit.get();

View file

@ -19,6 +19,8 @@ package bisq.network.p2p.storage.mocks;
import bisq.network.p2p.storage.payload.PersistableNetworkPayload;
import static org.mockito.Mockito.mock;
/**
* Stub implementation of a PersistableNetworkPayload that can be used in tests
* to provide canned answers to calls. Useful if the tests don't care about the implementation
@ -29,9 +31,10 @@ import bisq.network.p2p.storage.payload.PersistableNetworkPayload;
public class PersistableNetworkPayloadStub implements PersistableNetworkPayload {
private final boolean hashSizeValid;
private final byte[] hash;
private final protobuf.PersistableNetworkPayload mockPayload;
public PersistableNetworkPayloadStub(boolean hashSizeValid) {
this(hashSizeValid, new byte[] { 1 });
this(hashSizeValid, new byte[]{1});
}
public PersistableNetworkPayloadStub(byte[] hash) {
@ -41,11 +44,12 @@ public class PersistableNetworkPayloadStub implements PersistableNetworkPayload
private PersistableNetworkPayloadStub(boolean hashSizeValid, byte[] hash) {
this.hashSizeValid = hashSizeValid;
this.hash = hash;
mockPayload = mock(protobuf.PersistableNetworkPayload.class);
}
@Override
public protobuf.PersistableNetworkPayload toProtoMessage() {
throw new UnsupportedOperationException("Stub does not support protobuf");
return mockPayload;
}
@Override