Skip to content
HarroCReineking edited this page Feb 26, 2026 · 5 revisions

Welcome to the TestClone wiki! This wiki provides comprehensive documentation for the TestClone API project — a .NET 10 / ASP.NET Core RESTful API that demonstrates clean architecture principles.

What Is TestClone?

TestClone is a reference implementation of a layered ASP.NET Core API. It serves as an exploration project for:

  • .NET 10 and the latest C# 14 language features.
  • Clean / Layered Architecture with clear separation of concerns.
  • OpenAPI / Swagger for interactive API documentation.
  • TUnit + Moq for modern unit-testing patterns.

Repository Layout

test.clone/
├── src/
│   ├── WebApi/              # Presentation layer — HTTP controllers
│   ├── DomainApi/           # Business logic layer — Facade pattern
│   │   └── Interfaces/      # IFacade contract + Facade implementation
│   ├── DomainModel/         # Domain layer — request/response models
│   │   ├── Requests/        # Inbound request DTOs
│   │   └── Responses/       # Outbound response DTOs
│   ├── WebApi.UnitTests/    # Unit tests for the presentation layer
│   └── DomainApi.UnitTests/ # Unit tests for the business logic layer
├── docs/
│   ├── architecture.md      # Detailed architecture reference
│   └── wiki/                # This wiki
├── .github/                 # Workflows, issue templates, PR template
├── Directory.Build.props    # Shared MSBuild properties (warnings-as-errors, etc.)
├── Directory.Packages.props # Centralized NuGet package versions
├── global.json              # Pinned .NET SDK version
└── test.clone.slnx          # Solution file

Quick Navigation

Page Description
Getting Started Prerequisites, build, run, and test the project locally
API Reference Available endpoints with request / response details
Development Guide Coding standards, testing approach, and contribution workflow
Architecture Overview In-depth layered architecture and design-pattern documentation

Technology Stack

Category Technology
Runtime .NET 10.0
Web framework ASP.NET Core
API docs OpenAPI 3.0 / Swashbuckle (Swagger UI)
Unit testing TUnit
Mocking Moq
Package management Central Package Management (Directory.Packages.props)

Key Design Decisions

  • Layered ArchitectureWebApiDomainApiDomainModel; dependencies only flow inward.
  • Facade Pattern — Controllers depend on IFacade, keeping them thin and easily testable.
  • Controller-Based API — Chosen over Minimal APIs for structured class-based organisation.
  • Warnings as Errors — Enforced in Directory.Build.props to maintain a high code-quality bar.
  • Nullable Reference Types — Enabled project-wide for compile-time null-safety.

Clone this wiki locally