corda / net.corda.testing.dsl / LedgerDSLInterpreter

LedgerDSLInterpreter

@DoNotImplement interface LedgerDSLInterpreter<out T : TransactionDSLInterpreter> : Verifies, OutputStateLookup

This interface defines the bare bone functionality that a Ledger DSL interpreter should implement.

TODO (Kotlin 1.1): Use type synonyms to make the type params less unwieldy

Functions

_transaction

abstract fun _transaction(transactionLabel: String?, transactionBuilder: TransactionBuilder, dsl: T.() -> EnforceVerifyOrFail): WireTransaction

Creates and adds a transaction to the ledger.

_tweak

abstract fun _tweak(dsl: LedgerDSLInterpreter<T>.() -> Unit): Unit

Creates a local scoped copy of the ledger.

_unverifiedTransaction

abstract fun _unverifiedTransaction(transactionLabel: String?, transactionBuilder: TransactionBuilder, dsl: T.() -> Unit): WireTransaction

Creates and adds a transaction to the ledger that will not be verified by verifies.

attachment

abstract fun attachment(attachment: InputStream): SecureHash

Adds an attachment to the ledger.

Inherited Functions

fails

open fun fails(): EnforceVerifyOrFail

Asserts that verifies throws, with no condition on the exception message.

fails with

open infix fun fails with(msg: String): EnforceVerifyOrFail

failsWith

open fun failsWith(expectedMessage: String?): EnforceVerifyOrFail

Asserts that verifies() throws.

retrieveOutputStateAndRef

abstract fun <S : ContractState> retrieveOutputStateAndRef(clazz: Class<S>, label: String): StateAndRef<S>

Retrieves an output previously defined by TransactionDSLInterpreter.output with a label passed in.

verifies

abstract fun verifies(): EnforceVerifyOrFail

Verifies the ledger/transaction, throws if the verification fails.

Extension Functions

contextLogger

fun Any.contextLogger(): Logger

When called from a companion object, returns the logger for the enclosing class.

Inheritors

LedgerDSL

class LedgerDSL<out T : TransactionDSLInterpreter, out L : LedgerDSLInterpreter<T>> : LedgerDSLInterpreter<TransactionDSLInterpreter>

This is the class that defines the syntactic sugar of the ledger Test DSL and delegates to the contained interpreter, and what is actually used in ledger { (...) }. Add convenience functions here, or if you want to extend the DSL functionality then first add your primitive to LedgerDSLInterpreter and then add the convenience defaults/extension methods here.

TestLedgerDSLInterpreter

data class TestLedgerDSLInterpreter : LedgerDSLInterpreter<TestTransactionDSLInterpreter>