corda / net.corda.testing.node

Package net.corda.testing.node

Test utilites to help running nodes programmatically for tests

Types

ClusterSpec

abstract class ClusterSpec

Abstract class specifying information about the consensus algorithm used for a cluster of nodes.

DatabaseSnapshot

object DatabaseSnapshot

InMemoryMessagingNetwork

class InMemoryMessagingNetwork

An in-memory network allows you to manufacture MockNodeMessagingServices for a set of participants. Each MockNodeMessagingService maintains a queue of messages it has received, and a background thread that dispatches messages one by one to registered handlers. Alternatively, a messaging system may be manually pumped, in which case no thread is created and a caller is expected to force delivery one at a time (this is useful for unit testing).

MockNetFlowTimeOut

class MockNetFlowTimeOut

MockNetFlowTimeOut can be used to configure flow time out settings for a node via the mock network API.

MockNetNotaryConfig

class MockNetNotaryConfig

MockNetNotaryConfig can be used to configure a node to be a notary via the mock network API. Internally this will be translated into a NotaryConfiguration and passed to the respective node.

MockNetwork

open class MockNetwork

A mock node brings up a suite of in-memory services in a fast manner suitable for unit testing. Components that do IO are either swapped out for mocks, or pointed to a Jimfs in memory filesystem or an in memory H2 database instance.

MockNetworkNotarySpec

data class MockNetworkNotarySpec

The spec for a notary which will used by the MockNetwork to automatically start a notary node. This notary will become part of the network parameters used by all the nodes.

MockNetworkParameters

data class MockNetworkParameters

Immutable builder for configuring a MockNetwork.

MockNodeConfigOverrides

class MockNodeConfigOverrides

This is a data class to configure overrides to the node configuration used in the mock network without having to expose/use the actual (internal) node configuration interface on the API. When passing one of these to createNode or createUnstartedNode functions, the bits that are set will be injected into the node configuration for the node to be created.

MockNodeParameters

data class MockNodeParameters

Immutable builder for configuring a StartedMockNode or an UnstartedMockNode via MockNetwork.createNode and MockNetwork.createUnstartedNode. Kotlin users can also use the named parameters overloads of those methods which are more convenient.

MockServices

open class MockServices

An implementation of ServiceHub that is designed for in-memory unit tests of contract validation logic. It has enough functionality to do tests of code that queries the vault, inserts to the vault, and constructs/checks transactions. However it isn't enough to test flows and other aspects of an app that require a network. For that you should investigate MockNetwork.

NotarySpec

data class NotarySpec

A notary spec for describing a notary which will be started automatically by the driver and which will be part of the network parameters used by all the nodes.

StartedMockNode

class StartedMockNode

A class that represents a started mock node for testing.

TestClock

class TestClock

A Clock that can have the time advanced for use in testing.

TestCordapp

abstract class TestCordapp

Encapsulates a CorDapp that exists on the current classpath, which can be pulled in for testing. Use TestCordapp.findCordapp to locate an existing CorDapp.

UnstartedMockNode

class UnstartedMockNode

A class that represents an unstarted mock node for testing.

User

data class User

Object encapsulating a node rpc user and their associated permissions for use when testing using the driver

Functions

createMockCordaService

fun <T> createMockCordaService(serviceHub: MockServices, serviceConstructor: (<ERROR CLASS>) -> T): T

Function which can be used to create a mock CordaService for use within testing, such as an Oracle.

ledger

fun <ERROR CLASS>.ledger(notary: <ERROR CLASS> = TestIdentity.fresh("ledger notary").party, script: LedgerDSL<TestTransactionDSLInterpreter, TestLedgerDSLInterpreter>.() -> Unit): LedgerDSL<TestTransactionDSLInterpreter, TestLedgerDSLInterpreter>

Creates and tests a ledger built by the passed in dsl.

makeTestIdentityService

fun makeTestIdentityService(vararg identities: <ERROR CLASS>): <ERROR CLASS>

Returns a simple IdentityService containing the supplied identities.

testActor

fun testActor(owningLegalIdentity: <ERROR CLASS> = CordaX500Name("Test Company Inc.", "London", "GB")): <ERROR CLASS>

Creates a new Actor for use in testing with the given owningLegalIdentity.

testContext

fun testContext(owningLegalIdentity: <ERROR CLASS> = CordaX500Name("Test Company Inc.", "London", "GB")): <ERROR CLASS>

Creates a new InvocationContext for use in testing with the given owningLegalIdentity.

transaction

fun <ERROR CLASS>.transaction(notary: <ERROR CLASS> = TestIdentity.fresh("transaction notary").party, script: TransactionDSL<TransactionDSLInterpreter>.() -> EnforceVerifyOrFail): <ERROR CLASS>

Creates a ledger with a single transaction, built by the passed in dsl.