com.r3corda.core.testing / LedgerDSLInterpreter

# LedgerDSLInterpreter

`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: TransactionDSL<T>.() -> EnforceVerifyOrFail): WireTransaction` Creates and adds a transaction to the ledger.
_unverifiedTransaction | `abstract fun _unverifiedTransaction(transactionLabel: String?, transactionBuilder: TransactionBuilder, dsl: TransactionDSL<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.
tweak | `abstract fun tweak(dsl: LedgerDSL<T, LedgerDSLInterpreter<T>>.() -> Unit): Unit` Creates a local scoped copy of 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

ledger | `fun LedgerDSLInterpreter<TransactionDSLInterpreter>.ledger(dsl: LedgerDSL<TestTransactionDSLInterpreter, TestLedgerDSLInterpreter>.() -> Unit): Unit`

### 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>`