Skip to content

Commit

Permalink
spotless and test mocks
Browse files Browse the repository at this point in the history
Signed-off-by: garyschulte <garyschulte@gmail.com>
  • Loading branch information
garyschulte committed Dec 9, 2022
1 parent db9cd1f commit f6cd5f8
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public static class CachedSnapshotWorldState

public CachedSnapshotWorldState(
final BonsaiSnapshotWorldState snapshot, final TrieLogLayer trieLog, final long height) {
this.worldStateSubscriberId = snapshot.worldStateStorage.subscribe(this);
this.worldStateSubscriberId = snapshot.getWorldStateStorage().subscribe(this);
this.snapshot = snapshot;
this.trieLog = trieLog;
this.height = height;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import static org.hyperledger.besu.ethereum.bonsai.BonsaiWorldStateKeyValueStorage.WORLD_ROOT_HASH_KEY;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
Expand All @@ -29,7 +28,6 @@

import org.hyperledger.besu.datatypes.Hash;
import org.hyperledger.besu.ethereum.bonsai.AbstractTrieLogManager.CachedWorldState;
import org.hyperledger.besu.ethereum.bonsai.BonsaiWorldStateKeyValueStorage.BonsaiUpdater;
import org.hyperledger.besu.ethereum.bonsai.SnapshotTrieLogManager.CachedSnapshotWorldState;
import org.hyperledger.besu.ethereum.chain.Blockchain;
import org.hyperledger.besu.ethereum.core.BlockHeader;
Expand Down Expand Up @@ -127,20 +125,14 @@ public void testGetMutableWithRollbackNotOverrideTrieLogLayer() {
blockBuilder.number(1).timestamp(2).parentHash(genesis.getHash()).buildHeader();

final Map<Bytes32, CachedWorldState<BonsaiSnapshotWorldState>> worldStatesByHash =
mock(HashMap.class);
when(worldStatesByHash.containsKey(any(Bytes32.class))).thenReturn(true);
when(worldStatesByHash.get(eq(blockHeaderChainA.getHash())))
.thenReturn(
new CachedSnapshotWorldState(
mock(BonsaiSnapshotWorldState.class, Answers.RETURNS_MOCKS),
mock(TrieLogLayer.class),
2));
when(worldStatesByHash.get(eq(blockHeaderChainB.getHash())))
.thenReturn(
new CachedSnapshotWorldState(
mock(BonsaiSnapshotWorldState.class, Answers.RETURNS_MOCKS),
mock(TrieLogLayer.class),
2));
new HashMap<>();
var mockCachedState =
new CachedSnapshotWorldState(
mock(BonsaiSnapshotWorldState.class, Answers.RETURNS_MOCKS),
mock(TrieLogLayer.class, Answers.RETURNS_MOCKS),
2);
worldStatesByHash.put(blockHeaderChainA.getHash(), mockCachedState);
worldStatesByHash.put(blockHeaderChainB.getHash(), mockCachedState);
var worldStateStorage = new BonsaiWorldStateKeyValueStorage(storageProvider);
bonsaiWorldStateArchive =
spy(
Expand Down Expand Up @@ -177,33 +169,4 @@ public void testGetMutableWithRollbackNotOverrideTrieLogLayer() {
verify(keyValueStorageTransaction, never())
.put(eq(blockHeaderChainB.getHash().toArrayUnsafe()), any());
}

@Test
public void ensureWorldStateArchiveDoesNotScrubUnlessFull() {
BonsaiUpdater bonsaiUpdater = mock(BonsaiUpdater.class);
when(bonsaiUpdater.getTrieLogStorageTransaction())
.thenReturn(mock(KeyValueStorageTransaction.class));
var worldStateStorage = mock(BonsaiWorldStateKeyValueStorage.class);
when(worldStateStorage.updater()).thenReturn(bonsaiUpdater);
var snapshotTrieLogManager = new SnapshotTrieLogManager(blockchain, worldStateStorage, 12L);
var mockArchive = mock(BonsaiWorldStateArchive.class);
BonsaiWorldStateUpdater mockUpdater = mock(BonsaiWorldStateUpdater.class);

doAnswer(
invocation -> {
final var mockLayer = new TrieLogLayer();
mockLayer.setBlockHash(invocation.getArgument(0));
return mockLayer;
})
.when(mockUpdater)
.generateTrieLog(any());

final BlockHeader genesis = blockBuilder.number(0).buildHeader();
final BlockHeader blockHeader1k = blockBuilder.number(1000).buildHeader();

snapshotTrieLogManager.saveTrieLog(mockArchive, mockUpdater, genesis.getStateRoot(), genesis);
snapshotTrieLogManager.saveTrieLog(
mockArchive, mockUpdater, blockHeader1k.getStateRoot(), blockHeader1k);
assertThat(snapshotTrieLogManager.cachedWorldStatesByHash.size()).isEqualTo(2);
}
}

0 comments on commit f6cd5f8

Please sign in to comment.