acceptance-harness
A portable acceptance test harness for message-processing domains, built with Java 17 and Spring Boot. It models a minimal DDD flow—normalize → enrich → persist—using deterministic, synthetic fixtures and zero external dependencies. Designed for air-gapped, IL4/IL5 environments, the harness runs in under 30 seconds and produces reproducible, CI/CD-safe outputs. Includes embedded H2 database, Spring Cloud Stream test binder (no Kafka required), and a full validation rubric via RUNBOOK.md and ACCEPTANCE_CRITERIA.md. Ideal for teams in compliance-heavy environments who need fast, auditable proof of contract adherence without SaaS reliance. Artifacts include fixture validators, Mermaid diagrams, CI config, and acceptance screenshots. Extensible via domain events, repository interfaces, and validation specs.
Summary
| Latest Version | Unknown |
|---|---|
| License | Unknown |
| CI Status | Failing |
| Stars | 1 |
| Forks | 0 |
| Open Issues | 0 |
| Last Commit | 2026-08-12 |
| Downloads | 0 |
| Last Indexed | 2026-09-06 06:05 |
Installation
nimble install acceptance-harness
choosenim install acceptance-harness
git clone https://gitlab.com/ZorillaTrace/acceptance-harness
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| acceptance-harness | - | - | - | - | - | - | - | - | - | ✓ |
Source
| Repository | https://gitlab.com/ZorillaTrace/acceptance-harness |
|---|---|
| Homepage | https://gitlab.com/ZorillaTrace/acceptance-harness |
| Registry Source | gitlab |
README
Acceptance Harness
Portfolio positioning: Senior Data Platform Engineer | Governed Ingestion, Azure, Kafka, Microsoft Graph
This infrastructure-independent harness turns message-processing requirements into deterministic fixtures, typed outcomes, contract checks, and CI gates so release decisions do not depend on production systems.
Role signal: A hiring manager should infer disciplined ownership of acceptance criteria, deterministic test design, contract evolution, failure routing, and release confidence.
Evidence boundary: Deterministic validation and contract testing are implemented here. Azure, Microsoft Graph, and executable replay/idempotency behavior are
?? VERIFY; they are not evidenced by this repository.
What This Proves
| Validation concern | Repository evidence |
|---|---|
| Repeatable fixtures | Synthetic JSON fixtures are loaded and evaluated without network or production dependencies. |
| Typed contracts | Input and processing-outcome JSON schemas sit beside Java domain types and stable decision codes. |
| Deterministic behavior | Injected clocks and ID suppliers make timestamps and fallback correlation IDs reproducible. |
| Acceptance routing | Accepted and rejected outcomes carry explicit IngestionDecision and FailureCode values. |
| Fail-closed verification | Invalid fixtures, blank payloads, and missing senders are rejected by direct tests. |
| Contract evolution | ADRs document typed outcomes, correlation policy, local verification, and versioned schemas. |
| Infrastructure independence | Tests require no Kafka, database, SaaS service, or production environment. |
| Release discipline | Maven/JUnit and public-safety checks are required GitLab CI gates. |
Architecture or Control Flow
FixtureLoaderreads synthetic messages fromfixtures/messages.json.FixtureValidatorandMessageProcessorvalidate sender, payload, and correlation-ID inputs.- Injected clock and ID providers remove time- and randomness-based test drift.
- Processing returns a typed accepted or rejected result with a stable failure code.
- A domain-event publisher exposes decision evidence without requiring an external broker.
- Maven tests and privacy/claim scanning fail the CI pipeline when behavior or public-safety rules regress.
This validates application and contract behavior in isolation. Kafka offsets, database transactions, production latency, and deployed replay behavior remain outside this harness's proof boundary.
Verification
PowerShell, from the repository root:
Push-Location acceptance-harness
.\mvnw.cmd -B test
Pop-Location
python -m pytest tests/test_pii_scan.py -q
python tools/redaction/pii_scan.py README.md acceptance-harness/README.MD acceptance-harness/ACCEPTANCE_CRITERIA.md acceptance-harness/RUNBOOK.md acceptance-harness/src docs
Bash, from the repository root:
cd acceptance-harness
chmod +x mvnw
./mvnw -B test
cd ..
python -m pytest tests/test_pii_scan.py -q
python tools/redaction/pii_scan.py README.md acceptance-harness/README.MD acceptance-harness/ACCEPTANCE_CRITERIA.md acceptance-harness/RUNBOOK.md acceptance-harness/src docs
Evidence
| Evidence | Current proof |
|---|---|
| Default-branch pipeline | feat/acceptance-harness-seed pipeline: passing at portfolio verification time |
| Java verification | 25 tests passed with 0 failures, errors, or skips in the current local run |
| Public-safety verification | 15 privacy tests passed; the scanner covered public docs and Java sources |
| Contracts | message-input-v1.schema.json and processing-outcome-v1.schema.json |
| Decision documentation | ACCEPTANCE_CRITERIA.md, RUNBOOK.md, and four ADRs |
| CI artifacts | JUnit XML and artifacts/proof/redaction-report.txt |
| Supporting receipts | docs/PROOF_RECEIPTS.md |
Platform Engineering Portfolio
These repositories form one evidence-based platform engineering portfolio:
- airgap-messaging-ingest - event-driven ingestion, replay safety, and observability
- acceptance-harness - deterministic validation and release confidence
- ai-platform-operating-model - governed AI platform controls and review-first operations
Repository Layout
acceptance-harness/
src/main/java/com/example/processor/domain/
src/main/java/com/example/processor/application/
src/main/java/com/example/processor/fixtures/
src/test/java/com/example/processor/
fixtures/messages.json
contracts/
docs/adr/
ACCEPTANCE_CRITERIA.md
RUNBOOK.md
docs/
PROOF_RECEIPTS.md
tools/redaction/
tests/
Reviewer Path
- Run the PowerShell verification block.
- Inspect
acceptance-harness/src/main/java/com/example/processor/application/MessageProcessor.javaas the decision boundary. - Inspect the two JSON schemas under
acceptance-harness/contracts/. - Review the ADRs under
acceptance-harness/docs/adr/for the documented tradeoffs. - Inspect JUnit output under
acceptance-harness/target/surefire-reports/after the local run.
Safety and Non-Claims
This is a synthetic/demo implementation. It does not claim formal compliance, production deployment, client-private outcomes, infrastructure-level Kafka/database behavior, or measured production latency.
This repository does not claim IL4/IL5 certification, ATO approval, RMF approval, STIG compliance, or DoD production deployment. CI publishes JUnit reports only as CI artifacts; raw private exports are not published.