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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TemporaryDb
getDatabase()
Returns the underlying database.PublicKey
getPublicKey()
Returns the service public key of this node.HashCode
submitTransaction(RawTransaction transaction)
Returns a zero hash always, ignoring the transaction.<ResultT> ResultT
withSnapshot(Function<Snapshot,ResultT> snapshotFunction)
Performs the given function with a snapshot of the current database state.
-
-
-
Constructor Detail
-
NodeFake
public NodeFake(TemporaryDb database)
Creates a new node fake with the given database and an empty public key.- Parameters:
database
- a database to provide snapshots of
-
NodeFake
public NodeFake(TemporaryDb database, PublicKey publicKey)
Creates a new node fake with the given database.- Parameters:
database
- a database to provide snapshots ofpublicKey
- a public key of the node
-
-
Method Detail
-
submitTransaction
public HashCode submitTransaction(RawTransaction transaction)
Returns a zero hash always, ignoring the transaction.- Specified by:
submitTransaction
in 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
public <ResultT> ResultT withSnapshot(Function<Snapshot,ResultT> snapshotFunction)
Description copied from interface:Node
Performs the given function with a snapshot of the current database state.- Specified by:
withSnapshot
in 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
public PublicKey getPublicKey()
Description copied from interface:Node
Returns 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:
getPublicKey
in interfaceNode
-
getDatabase
public TemporaryDb getDatabase()
Returns the underlying database.
-
-