Skip to content

[Foundation] Architectural-fitness tests via NetArchTest #95

Description

@ChrisonSimtian

Part of the v11 internal-foundation workstream. See docs/roadmap.md and milestone #6.

Goal

Catch layer-purity violations at PR time, not in code review. Add a small set of architectural-fitness tests (using NetArchTest or similar) that assert the layering established by the other v11 foundation work stays intact.

Scope — fitness tests to add

  • Fallout.Core purity: zero ProjectReference to other Fallout projects; zero using System.IO; zero using System.Diagnostics.Process; zero static fields with non-readonly state.
  • No statics in orchestration: types under Fallout.Build.Execution.* (other than the static BuildManager facade) declare no mutable static fields.
  • DI boundaries: types implementing infrastructure interfaces (IFileSystem, IProcessRunner, etc.) live only in their designated infrastructure folder; no Fallout code calls new DefaultFileSystem() directly outside the DI registration.
  • Internal-only middleware: IBuildMiddleware and its sibling types are internal and have no [assembly: InternalsVisibleTo] declarations for non-test assemblies.

Place tests in a new project tests/Fallout.Architecture.Tests.

Verification

  • All fitness tests pass on main after the other v11 foundation work lands.
  • A deliberate violation (e.g., adding using System.IO; to Fallout.Core) fails the new test.
  • Tests run as part of ./build.ps1 Test.

Out of scope (tracked separately)

  • Migrating other existing tests — this is a new tests project, not a rewrite.
  • Public-API-stability tests for the v12 SDK — v12.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions