31 lines
1.3 KiB
Gherkin
31 lines
1.3 KiB
Gherkin
Feature: invokers
|
|
|
|
Invokers are functions the will always get called, have strictly optional
|
|
dependencies and no return outputs (other than error).
|
|
|
|
Background:
|
|
|
|
Rule: invokers get called even if their dependencies can't be resolved
|
|
Example: no providers
|
|
Given an invoker requesting an int and string pointer
|
|
When the container is built
|
|
Then the invoker will get the int parameter set to 0
|
|
And the invoker will get the string pointer parameter set to nil
|
|
|
|
Rule: invokers get called with dependencies if they are provided
|
|
Example: int and string pointer providers
|
|
Given an invoker requesting an int and string pointer
|
|
And an int provider returning 5
|
|
And a string pointer provider pointing to "foo"
|
|
When the container is built
|
|
Then the invoker will get the int parameter set to 5
|
|
And the invoker will get the string pointer parameter set to "foo"
|
|
|
|
Rule: invokers get module scoped dependencies
|
|
Example: module-scoped int
|
|
Given an invoker requesting an int and string pointer run in module "foo"
|
|
And a module-scoped int provider which returns the length of the module name
|
|
When the container is built
|
|
Then the invoker will get the int parameter set to 3
|
|
And the invoker will get the string pointer parameter set to nil
|