Skip to content

Commit 625f9e7

Browse files
committed
mocking for http tests
Signed-off-by: Sally MacFarlane <[email protected]>
1 parent dacae14 commit 625f9e7

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/JsonRpcHttpServiceRpcApisTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import static java.util.Collections.singletonList;
1818
import static org.assertj.core.api.Assertions.assertThat;
19+
import static org.mockito.Mockito.lenient;
1920
import static org.mockito.Mockito.mock;
2021
import static org.mockito.Mockito.when;
2122

@@ -33,6 +34,7 @@
3334
import org.hyperledger.besu.ethereum.api.jsonrpc.websocket.WebSocketConfiguration;
3435
import org.hyperledger.besu.ethereum.api.query.BlockchainQueries;
3536
import org.hyperledger.besu.ethereum.blockcreation.PoWMiningCoordinator;
37+
import org.hyperledger.besu.ethereum.chain.Blockchain;
3638
import org.hyperledger.besu.ethereum.chain.MutableBlockchain;
3739
import org.hyperledger.besu.ethereum.core.Block;
3840
import org.hyperledger.besu.ethereum.core.InMemoryKeyValueStorageProvider;
@@ -199,6 +201,7 @@ private JsonRpcHttpService createJsonRpcHttpServiceWithRpcApis(final String... r
199201

200202
private JsonRpcHttpService createJsonRpcHttpServiceWithRpcApis(final JsonRpcConfiguration config)
201203
throws Exception {
204+
setupMocksRequiredForBlockchainGenesisHash();
202205
final Set<Capability> supportedCapabilities = new HashSet<>();
203206
supportedCapabilities.add(EthProtocol.LATEST);
204207

@@ -313,6 +316,8 @@ private JsonRpcHttpService createJsonRpcHttpService(
313316
jsonRpcConfiguration.setPort(0);
314317
webSocketConfiguration.setPort(0);
315318

319+
setupMocksRequiredForBlockchainGenesisHash();
320+
316321
final Map<String, JsonRpcMethod> rpcMethods =
317322
new JsonRpcMethodsFactory()
318323
.methods(
@@ -433,6 +438,8 @@ public RequestBody createNetServicesRequestBody() {
433438

434439
public JsonRpcHttpService getJsonRpcHttpService(final boolean[] enabledNetServices) {
435440

441+
setupMocksRequiredForBlockchainGenesisHash();
442+
436443
JsonRpcConfiguration jsonRpcConfiguration = JsonRpcConfiguration.createDefault();
437444
WebSocketConfiguration webSocketConfiguration = WebSocketConfiguration.createDefault();
438445
P2PNetwork p2pNetwork = mock(P2PNetwork.class);
@@ -457,6 +464,14 @@ public JsonRpcHttpService getJsonRpcHttpService(final boolean[] enabledNetServic
457464
jsonRpcConfiguration, webSocketConfiguration, p2pNetwork, metricsConfiguration, natService);
458465
}
459466

467+
private void setupMocksRequiredForBlockchainGenesisHash() {
468+
Blockchain blockchain = mock(Blockchain.class);
469+
Block block = mock(Block.class);
470+
lenient().when(blockchainQueries.getBlockchain()).thenReturn(blockchain);
471+
lenient().when(blockchain.getGenesisBlock()).thenReturn(block);
472+
lenient().when(block.getHash()).thenReturn(Hash.EMPTY);
473+
}
474+
460475
@Test
461476
public void netServicesTestWhenJsonrpcWebsocketP2pNetworkAndMatricesIsDisabled()
462477
throws Exception {

ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/JsonRpcHttpServiceTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ public class JsonRpcHttpServiceTest extends JsonRpcHttpServiceTestBase {
6565

6666
@BeforeAll
6767
public static void setup() throws Exception {
68-
when(blockchainQueries.getBlockchain()).thenReturn(blockchain);
6968
initServerAndClient();
7069
}
7170

ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/JsonRpcHttpServiceTestBase.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
package org.hyperledger.besu.ethereum.api.jsonrpc;
1616

1717
import static org.mockito.Mockito.mock;
18+
import static org.mockito.Mockito.when;
1819

1920
import org.hyperledger.besu.config.StubGenesisConfigOptions;
21+
import org.hyperledger.besu.datatypes.Hash;
2022
import org.hyperledger.besu.ethereum.ProtocolContext;
2123
import org.hyperledger.besu.ethereum.api.ApiConfiguration;
2224
import org.hyperledger.besu.ethereum.api.graphql.GraphQLConfiguration;
@@ -30,6 +32,7 @@
3032
import org.hyperledger.besu.ethereum.chain.BadBlockManager;
3133
import org.hyperledger.besu.ethereum.chain.Blockchain;
3234
import org.hyperledger.besu.ethereum.chain.ChainHead;
35+
import org.hyperledger.besu.ethereum.core.Block;
3336
import org.hyperledger.besu.ethereum.core.MiningConfiguration;
3437
import org.hyperledger.besu.ethereum.core.Synchronizer;
3538
import org.hyperledger.besu.ethereum.eth.EthProtocol;
@@ -89,6 +92,7 @@ public class JsonRpcHttpServiceTestBase {
8992
protected static Blockchain blockchain;
9093
protected static BlockchainQueries blockchainQueries;
9194
protected static ChainHead chainHead;
95+
protected static Block block;
9296
protected static Synchronizer synchronizer;
9397
protected static final Collection<String> JSON_RPC_APIS =
9498
Arrays.asList(
@@ -102,6 +106,10 @@ public static void initServerAndClient() throws Exception {
102106
ethPeersMock = mock(EthPeers.class);
103107
blockchain = mock(Blockchain.class);
104108
blockchainQueries = mock(BlockchainQueries.class);
109+
when(blockchainQueries.getBlockchain()).thenReturn(blockchain);
110+
block = mock(Block.class);
111+
when(blockchain.getGenesisBlock()).thenReturn(block);
112+
when(block.getHash()).thenReturn(Hash.EMPTY);
105113
chainHead = mock(ChainHead.class);
106114
synchronizer = mock(Synchronizer.class);
107115

0 commit comments

Comments
 (0)