
Build and test a complete event-driven microservice architecture with C# .NET, containerized in Docker, focusing on end-to-end, integration, and contract testing.
Learn to test the UI of a distributed event-driven microservice app using Playwright, focusing on its thin UI layer and core functionality.
Migrate all projects to net7, then create a UI tests project using xUnit with SDK seven, and install Playwright to enable fast, browser-based UI testing for the microservice.
Learn to write a Playwright test in C# .NET by creating a Playwright instance, launching a browser, navigating to an inventory portal, and creating a product with name and quantity.
Apply data driven testing with inline data in XUnit, replacing values with parameterized inputs using the theory attribute. Run tests several times to cover permutations and avoid data reuse problems.
Use the auto fixture library to generate dynamic test data for xUnit tests, creating random product names and quantities that the test fills asynchronously.
Explore API testing in event-driven microservices, aligning with UI testing practices, as you verify APIs only when all services are up and the whole system is available.
Set up in-memory data for an api service, add a product to the in-memory context, save via entity framework, and run an integration test with xUnit using http client.
Demonstrates resilience in test code with Polly retry, looping async operations for up to ten seconds to ensure message processing saves to the database and the API responds.
Learn to fix test execution errors by configuring XUnit collections for sequential runs, properly disposing the web application factory, and ensuring reliable end-to-end integration tests.
Run and validate tests inside the Docker container using Docker Compose with a test YAML file, fix host name issues, and execute end-to-end integration testing in CI/CD pipelines.
Build an event-driven microservice stack using ASP.NET Web API and RabbitMQ, connecting the customer and inventory portals via Docker compose. Publishers and subscribers handle orders and live inventory updates.
Explore an event-driven microservice flow using RabbitMQ topic exchange to publish new inventory products to the customer API. Learn to update databases and manage inventory via inventory and customer topics.
Demonstrate an event-driven architecture with RabbitMQ topic exchange, publishing to inventory product and inventory customer queues for real-time service updates.
Publish a product event from the inventory service to a RabbitMQ topic exchange using a routing key, via an asynchronous publisher wired with dependency injection.
Publish customer purchase updates to the inventory queue using RabbitMQ, so the inventory service consumes the event and updates stock in the database.
Refactor the RabbitMQ utility into a shared project to remove duplicate code across inventory and customer modules, moving hardcoded settings and routing keys to app settings for reuse.
Welcome to the Master course of Developing and Testing Event-Driven Microservices with C# .NET
In this course, we will discuss following
Development
Building Event-Driven API Service
Includes ASP Net Web API
Entity Framework for DB access
Creating Controllers
Building Event-Driven Service broker
Includes message broker via RabbitMq
Publisher of Message to Service Broker
Subscriber of Message from Service Broker
Building Event-Driven UI Portal
Includes ASP Net Web App
Consuming Web API
Containerizing Application
Using Docker file
Using Docker Compose file
Running applications via Docker Compose in Docker with all networks
Testing
Testing Application User Interface with Playwright C#.NET UI Testing
Testing Application Services with Playwright C# .NET API Testing
Testing Applications each and every component and interaction via Integration testing
Testing applications InMemory API
Testing Publisher
Testing Subscriber
Containerizing Tests
Contract Testing via Pact
Testing application Consumer side
Testing application Provider side
Testing Events via Pact
The course uses following Tech stacks
.NET 7
C# 11
ASP.NET Web API
ASP.NET MVC Web App
RabbitMq Message Broker
Playwright .NET
Integration testing libraries
Docker and more...
So, at the end of this course, one will have clear understanding of what Event-Driven Architecture applications are and how to efficiently and Robustly test application of this scale with Modern approaches.
This course will also help to better optimize the cost incurred by Event-Driven system while testing the application via User Interface and API Testing.
This course will also help to better optimize the cost incurred by Event-Driven system while testing the application via User Interface and API Testing.