# Available fixtures

_Verifier_ includes a number of fixtures that are used to call the _SUT_ (_System Under Test_) when _GWT_ (_Given-When-Then_) style acceptance tests are executed.

## Fixture categories

Each Caplin library provides a set of _fixtures_ that are appropriate for exercising its code. These fixtures fall into 5 distinct categories:

1. **Generic Verifier Fixtures:** The `testing` library contains the `[Fixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.fixture)` interface that all other fixtures must implement and the `[FixtureFactory,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.fixturefactory)` interface that the test runner uses to gain access to fixtures. More information on all of these classes can be found in the [API reference,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing).
2. **Presentation Model fixtures:** Allow you to test the functional behaviour of your GUI components written using [Presenter.](../presenter/index.md)
3. **GUI Binding fixtures:** These fixtures enable you to check that the presentation model has been correctly bound to the browser DOM. For example you can check the actual CSS style of a DOM element when the logical property, that represents the element, changes within the presentation model. The `dom` library provides the `[ViewFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewfixture)` and it’s sub-fixtures (that use JQuery CSS locators) to verify the state of the browser DOM.
4. **Service library:** Most of the code you write will access shared resources through the service architecture. Each service provides fixtures and stub implementations so that you can run tests in isolation from real services.
5. **Bespoke Fixtures:** If you create any code that cannot be accessed using the existing fixtures you will have to create your own. For instance, in the [worked example](verifier-worked-example.md) we create a fixture for a simple tile component.

## Fixtures (by library):

[Component Library](#component)

[DOM Library](#dom)

[DOM (sub-fixtures) Library](#dom-sub-fixtures)

[FX Library](#fx)

[Presenter Library](#presenter)

[Services](#services)

[Testing](#testing)

### component

* `[ComponentFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.component.testing.componentfixture)`
* `[ComponentModelFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.component.testing.componentmodelfixture)`(interface)

### dom

* `[ViewFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewfixture)`

### dom (sub-fixtures)

* `[BackgroundImage,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.backgroundimage)`
* `[Blurred,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.blurred)`
* `[BorderColor,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.bordercolor)`
* `[BorderWidth,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.borderwidth)`
* `[BottomMarginWidth,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.bottommarginwidth)`
* `[Checked,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.checked)`
* `[ChildrenCount,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.childrencount)`
* `[ClassName,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.classname)`
* `[Clicked,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.clicked)`
* `[Color,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.color)`
* `[DoesNotHaveClass,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.doesnothaveclass)`
* `[Enabled,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.enabled)`
* `[Focused,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.focused)`
* `[FocusIn,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.focusin)`
* `[FocusOut,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.focusout)`
* `[HasClass,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.hasclass)`
* `[Height,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.height)`
* `[IsVisible,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.isvisible)`
* `[LeftMarginWidth,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.leftmarginwidth)`
* `[MouseDown,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.mousedown)`
* `[MouseMove,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.mousemove)`
* `[MouseOut,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.mouseout)`
* `[MouseOver,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.mouseover)`
* `[MouseUp,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.mouseup)`
* `[OnKeyDown,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.onkeydown)`
* `[OnKeyUp,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.onkeyup)`
* `[Options,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.options)`
* `[Readonly,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.readonly)`
* `[RightClicked,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.rightclicked)`
* `[RightMarginWidth,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.rightmarginwidth)`
* `[ScrolledHorizontal,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.scrolledhorizontal)`
* `[ScrolledVertical,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.scrolledvertical)`
* `[Selected,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.selected)`
* `[Text,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.text)`
* `[Top,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.top)`
* `[TopMarginWidth,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.topmarginwidth)`
* `[TypedValue,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.typedvalue)`
* `[Value,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.value)`
* `[ViewFixtureHandler,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.viewfixturehandler)`
* `[Width,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.dom.testing.viewhandler.width)`

### fx

* `[BusinessDateServiceFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.fx.testing.businessdateservicefixture)`
* `BusinessDateServiceStub`
* `[CurrencyPairServiceStub,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.fx.testing.currencypairservicestub)`

### presenter

* `[PresentationModelFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.presenter.testing.presentationmodelfixture)`
* `[PresenterComponentFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.presenter.testing.presentercomponentfixture)`

### services

* `[AppServiceStub,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.appservicestub)`
* `[ConnectionServiceFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.connectionservicefixture)`
* `[ConnectionServiceStub,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.connectionservicestub)`
* `MessageServiceStub`
* `[PermissionServiceFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.permissionservicefixture)`
* `[PermissionServiceStub,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.permissionservicestub)`
* `[PreferencesServiceStub,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.preferencesservicestub)`
* `SubscriptionServiceStub`
* `[TestServiceRegistryLoader,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.testserviceregistryloader)`
* `[UserPromptServiceStub,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.userpromptservicestub)`
* `[UserServiceStub,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.services.testing.userservicestub)`

### testing

* `[AlertFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.alertfixture)`
* `[DataSubscriptionFixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.datasubscriptionfixture)`
* `[Fixture,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.fixture)`
* `[FixtureFactory,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.fixturefactory)`
* `[FixtureRegistry,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.fixtureregistry)`
* `[Utils,opts="nofollow"](https://docs.caplin.com/developer/api/caplin_trader/3/caplin.testing.utils)`
