A comprehensive modular monolith application for learning advanced .NET architecture using modern technologies and best practices.
| Module | Unit Tests | Integration Tests | Coverage |
|---|---|---|---|
| 🛒 Basket | |||
| 📦 Catalog | |||
| 📋 Ordering | |||
| 🔧 Shared |
- Framework: ASP.NET Core 9.0
- Database: PostgreSQL 15
- Cache: Redis 7
- Message Broker: RabbitMQ
- Authentication: Keycloak
- Logging: Seq, Serilog
- Containerization: Docker
- Messaging: MassTransit
- CQRS: MediatR
- Testing: xUnit, FluentAssertions, Moq, TestContainers
- Code Coverage: Coverlet, ReportGenerator
This project demonstrates a Modular Monolith architecture with:
- Clean Architecture principles
- Domain-Driven Design (DDD)
- CQRS pattern with MediatR
- Event-Driven Architecture
- Comprehensive Testing Strategy
The project includes a comprehensive testing framework:
- Unit Tests: Individual module testing with mocks
- Integration Tests: End-to-end API testing with TestContainers
- Code Coverage: Automated coverage reporting
- Test Helpers: Reusable builders and utilities using Bogus
# Run all tests
dotnet test
# Run tests with coverage
dotnet test --collect:"XPlat Code Coverage"
# Run specific module tests
dotnet test tests/UnitTests/Basket/
dotnet test tests/IntegrationTests/Api/