Mockspresso

interface Mockspresso : MockspressoInstance, MockspressoProperties

The main interface returned from a MockspressoBuilder. It implements MockspressoInstance but under the hood, the instance it implements is lazily initiated and doesn't become ensured/immutable until its dependencies are accessed.

IMPORTANT: Calling any of the MockspressoProperties methods after the instance has already been ensured will throw errors at runtime.

Functions

Link copied to clipboard
abstract fun addDynamicObjectMaker(dynamicMaker: DynamicObjectMaker)

Adds a DynamicObjectMaker to this MockspressoInstance. A DynamicObjectMaker gets a chance to supply any un-cached/undefined dependency before the request goes to the FallbackObjectMaker. This enables mockspresso plugins supply dependencies based on properties other than concrete types (i.e. generic types, class annotations, etc.). It also allows for "default" instances for bindings, which can be overridden by an explicit dependency.

Link copied to clipboard
abstract fun buildUpon(): MockspressoBuilder

Returns a new MockspressoBuilder using this Mockspresso instance as a parent.

Link copied to clipboard
abstract fun <T> createNow(key: DependencyKey<T>): T

Create a new real object using the rules and dependencies in the mockspresso instance.

Link copied to clipboard
abstract fun <T> dependency(key: DependencyKey<T>, provider: Dependencies.() -> T): Lazy<T>

Register a dependency provided by provider, bound in the mockspresso graph with key and return a Lazy of that object.

Link copied to clipboard
abstract fun ensureInit()

Ensure the MockspressoInstance is initialized and all onSetup commands have been invoked

Link copied to clipboard
abstract fun <T> findDependency(key: DependencyKey<T>): Lazy<T>

Find an existing dependency in the underlying mockspresso instance (bound with key) and return a Lazy for it.

Link copied to clipboard
abstract fun <T> findNow(key: DependencyKey<T>): T

Find an existing dependency in this mockspresso instance. If the dependency hasn't been cached or constructed then it will be generated on the fly and cached from that point forward. If the binding hasn't been declared in this mockspresso instance, then a fallback will be generated.

Link copied to clipboard
abstract fun <BIND, IMPL : BIND> interceptRealImplementation(    key: DependencyKey<BIND>,     implementationToken: TypeToken<IMPL>,     interceptor: (IMPL) -> IMPL = { it }): Lazy<IMPL>

Register a request to create a real object of type implementationToken bound in the mockspresso graph with key. The supplied interceptor lambda will be called when the real object is created and allows the test code to wrap the newly constructed real object before it's used. This enables the mock-support plugins to include spy support.

Link copied to clipboard
abstract fun onSetup(cmd: (MockspressoInstance) -> Unit)

Add a callback that will fire when the MockspressoInstance is fully instantiated/ensured.

Link copied to clipboard
abstract fun onTeardown(cmd: () -> Unit)

Add a callback that will fire when/if the MockspressoInstance is eventually torn down. (Automatic tear-down is not supported by default but can be configured using plugins).

Link copied to clipboard
abstract fun teardown()

Invokes all onTeardown commands for this and all parent Mockspresso instances