Package com.exonum.binding.core.service
Class NodeFake
java.lang.Object
com.exonum.binding.core.service.NodeFake
- All Implemented Interfaces:
 Node,java.lang.AutoCloseable
public final class NodeFake extends java.lang.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, java.lang.String serviceName)Creates a new node fake with the given database and an empty public key.NodeFake(TemporaryDb database, java.lang.String serviceName, PublicKey publicKey)Creates a new node fake with the given database. - 
Method Summary
Modifier and Type Method Description voidclose()Closes this node.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> ResultTwithBlockchainData(java.util.function.Function<BlockchainData,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:
 java.lang.NullPointerException- if the transaction is null- See Also:
 Blockchain.getTxMessages()
 - 
withBlockchainData
public <ResultT> ResultT withBlockchainData(java.util.function.Function<BlockchainData,ResultT> snapshotFunction)Description copied from interface:NodePerforms the given function with a snapshot of the current database state.- Specified by:
 withBlockchainDatain 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
 - See Also:
 Node.withServiceData(Function)
 - 
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. - 
close
public void close()Description copied from interface:NodeCloses this node. A closed node must no longer be used. 
 -