Base configuration resources for LOB-agnostic business contexts
The following diagram summarizes an example of the base configuration resources that support each LOB-agnostic business context. This example is for Admin Context.

First (#1), there are one or more scenarios that contain steps written in Gherkin. Every scenario is stored in a feature file.
Every step links to a step method. Step methods are defined in step classes, such as AdminSteps (#2). Step methods are written in Gosu. A step may require multiple implementations. Therefore, every step class injects an instance of ContextFactory. This instance is used to identify the correct implementation for each situation that uses the step. To make it easier to modify implementations without needing to modify scenarios, the implementations are not stored in the step classes themselves.
Admin Context (#3) is defined by two resources:
- AdminContext, which is an interface that defines methods relevant to this context.
- AdminContextImpl, which is an impl that implements the AdminContext interface. This is where the implementation code is stored.
Similarly, there are two resources that define ContextFactory (#4):
- ContextFactory, which is an interface that defines methods with return values of the different context APIs.
- ContextFactoryImpl, which is an impl that implements the ContextFactory interface. All of the different context APIs are injected into this impl. In turn, this impl is injected into every step file.
Finally, there is the RemoteSmokeTestHelperModule (#5): PCRemoteSmokeTestHelperModule. This file binds each interface to its corresponding impl.
