Package com.exonum.binding.core.service
Class NodeFake
java.lang.Object
com.exonum.binding.core.service.NodeFake
- All Implemented Interfaces:
Node
public final class NodeFake extends Object implements Node
An implementation of a Node interface for testing purposes.
Use it in tests of your handlers that need some data in the database:
try (TemporaryDb db = TemporaryDb.newInstance();
Cleaner cleaner = new Cleaner()) {
// Setup database to include some test data
Fork fork = db.createFork(cleaner);
MapIndex balance = MapIndexProxy.newInstance("balance", fork, stringSerializer,
stringSerializer);
balance.put("John Doe", "$1000.00");
db.merge(fork);
// Create a node fake from the database
NodeFake node = new NodeFake(db);
WalletController controller = new WalletController(node);
assertThat(controller.getBalance("John Doe"), equalTo("$1000.00"));
}
-
Constructor Summary
Constructors Constructor Description NodeFake(TemporaryDb database)Creates a new node fake with the given database and an empty public key.NodeFake(TemporaryDb database, PublicKey publicKey)Creates a new node fake with the given database. -
Method Summary
Modifier and Type Method Description TemporaryDbgetDatabase()Returns the underlying database.PublicKeygetPublicKey()Returns the service public key of this node.HashCodesubmitTransaction(RawTransaction transaction)Returns a zero hash always, ignoring the transaction.<ResultT> ResultTwithSnapshot(Function<Snapshot,ResultT> snapshotFunction)Performs the given function with a snapshot of the current database state.
-
Constructor Details
-
Method Details
-
submitTransaction
Returns a zero hash always, ignoring the transaction.- Specified by:
submitTransactionin interfaceNode- Parameters:
transaction- a transaction to send- Returns:
- hash of the transaction message created by the framework
- Throws:
NullPointerException- if the transaction is null- See Also:
Blockchain.getTxMessages()
-
withSnapshot
Description copied from interface:NodePerforms the given function with a snapshot of the current database state.- Specified by:
withSnapshotin interfaceNode- Type Parameters:
ResultT- a type the function returns- Parameters:
snapshotFunction- a function to execute- Returns:
- the result of applying the given function to the database state
-
getPublicKey
Description copied from interface:NodeReturns the service public key of this node. The corresponding private key is used for signing transactions inNode.submitTransaction(RawTransaction).This key is stored under "service_public_key" key in the node configuration file.
- Specified by:
getPublicKeyin interfaceNode
-
getDatabase
Returns the underlying database.
-