# testing/fixtures

## Purpose

Shared test data library. Not a test runner — contains no test classes of its own (except `MockToolsTest` which validates the mocks themselves). Provides: mock implementations (`MockInferenceProvider`, `MockTokenizer`, `MockEventReplayer`, `MockSessionRepository`), stub tools (`EchoTool`, `FailingTool`, `RejectedTool`), fixture builders (`EventFixtures`, `InferenceFixtures`, `WorkflowFixtures`, `ApprovalFixtures`, `CycleFixtures`, `ContextFixtures`, `TransitionFixtures`), and `DeterministicHarness`.

## Ownership

This submodule is a library dependency for other `testing/*` submodules. Production modules it wraps: `core:events`, `core:transitions`, `core:approvals`, `core:sessions`, `core:tools`, `core:inference`, `core:context`, `core:kernel`, `core:validation`, `infrastructure:persistence`.

## Local Contracts

- All mocks must remain stateless or explicitly reset between uses — callers cannot assume shared state across tests.
- `DeterministicHarness` must not make live LLM or network calls.
- `koverVerify` is disabled (library code, not independently measurable coverage).

## Work Guidance

- Add fixtures here only when two or more `testing/*` submodules need the same setup. Single-use helpers stay local to the submodule that needs them.
- No domain logic in fixtures — only wiring and canned data.

## Verification

```
./gradlew :testing:fixtures:test --rerun-tasks
```

## Child DOX Index

No child AGENTS.md (leaf module).
