Text validation and assertion tools for the Agenix framework. Enables pattern matching, string comparison, and text-based validation in automated test scenarios with support for various text formats and encodings.
$ dotnet add package Agenix.Validation.Text
Agenix is a comprehensive test automation framework built with C# .NET 8.0 that enables the creation of fully automated end-to-end use case tests for enterprise SOA applications. Designed with modern testing patterns and practices, Agenix provides a robust foundation for testing complex distributed systems, APIs, databases, and user workflows.
ResourcePathTypeResolverThe framework's architecture demonstrates a sophisticated approach to test automation that goes beyond simple API testing, providing a comprehensive platform for complex enterprise testing scenarios with emphasis on maintainability, readability, and extensibility.
This framework is based on the Citrus Framework, originally developed for Java-based integration testing. Key portions of this .NET implementation were derived from and inspired by the Citrus Framework codebase.
We extend our gratitude to the Citrus Framework maintainers and contributors for their excellent work that served as the foundation for this .NET adaptation.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
This project includes software derived from the Citrus Framework - see the NOTICE file for additional attribution details.
Agenix.ATF is a comprehensive test framework built on .NET 8.0, designed to provide robust testing capabilities with modern testing patterns and practices.
Before you begin, ensure you have the following installed:
git clone <repository-url>
cd Agenix.ATF| Module | Description | Key Features |
|---|---|---|
| Agenix.Api | Core interfaces and contracts for the testing framework | • API definitions<br>• Interface contracts<br>• Common types<br>• Exception definitions |
| Agenix.Core | Main implementation of the framework logic | • Test execution engine<br>• Context management<br>• Action builders<br>• Session handling |
| Module | Description | Key Features |
|---|---|---|
| Agenix.Http | HTTP client testing capabilities and utilities | • HTTP request/response handling<br>• REST API testing<br>• HTTP validation |
| Agenix.GraphQL | GraphQL client testing capabilities and utilities | • GraphQL query/mutation handling<br>• GraphQL server integration<br>• Response validation |
| Agenix.Sql | Database testing and SQL execution utilities | • Database connectivity<br>• SQL query execution<br>• Data validation<br>• Transaction management |
| Agenix.Selenium | Web browser automation and UI testing utilities | • Web browser control<br>• Element interaction<br>• Page navigation<br>• UI test automation |
| Agenix.Playwright | Modern web browser automation and testing framework | • Cross-browser automation<br>• Fast and reliable testing<br>• Auto-wait mechanisms<br>• Network interception |
| Agenix.Azure.Security | Azure authentication and Key Vault integration utilities | • Azure AD authentication<br>• Key Vault secret management<br>• OAuth token handling<br>• Credential caching |
| Module | Description | Key Features |
|---|---|---|
| Agenix.Screenplay | Screenplay pattern implementation for readable tests | • Actor-based testing<br>• Task and Question abstractions<br>• Ability pattern<br>• Fluent test scenarios |
| Agenix.Configuration | Environment-based configuration management utilities | • JSON/YAML configuration<br>• Environment variables<br>• Configuration caching<br>• Multi-environment support |
| Module | Description | Key Features |
|---|---|---|
| Agenix.NUnit.Runtime | NUnit test framework integration | • NUnit test execution<br>• Custom attributes<br>• Test lifecycle management<br>• Result reporting |
| Agenix.ReqnrollPlugin | Reqnroll (SpecFlow successor) BDD integration | • Gherkin syntax support<br>• Step definitions<br>• Feature file parsing<br>• BDD test execution |
| Module | Description | Key Features |
|---|---|---|
| Agenix.Validation.Binary | Binary file and data validation | • Binary file comparison<br>• Byte array validation<br>• File format verification<br>• Checksum validation |
| Agenix.Validation.Json | JSON schema and content validation | • JSON schema validation<br>• Content comparison<br>• Path-based assertions<br>• Structure verification |
| Agenix.Validation.NHamcrest | Hamcrest-style matcher library | • Fluent assertion syntax<br>• Custom matchers<br>• Readable error messages<br>• Composable assertions |
| Agenix.Validation.Text | Text content and format validation | • String comparison<br>• Pattern matching<br>• Format validation<br>• Text transformation |
| Agenix.Validation.Xml | XML schema and content validation | • XML schema validation<br>• Content comparison<br>• XPath-based assertions<br>• Structure verification<br>• Namespace handling |
| Test Project | Purpose | Test Types |
|---|---|---|
| Agenix.Core.NUnitTestProject | Core framework functionality testing | • Unit tests<br>• Integration tests<br>• Framework behavior validation |
| Agenix.Screenplay.Tests | Screenplay pattern feature validation | • Actor behavior tests<br>• Task execution tests<br>• Question answering tests |
| Agenix.ReqnrollPlugin.Tests | BDD plugin functionality testing | • Step definition tests<br>• Feature parsing tests<br>• Plugin integration tests |
| Agenix.Validation.Binary.Tests | Binary validation module testing | • Binary comparison tests<br>• File validation tests |
| Agenix.Validation.Json.Tests | JSON validation module testing | • Schema validation tests<br>• JSON comparison tests |
| Agenix.Validation.NHamcrest.Tests | Hamcrest matcher testing | • Matcher behavior tests<br>• Assertion tests |
| Agenix.Validation.Text.Tests | Text validation module testing | • Text comparison tests<br>• Pattern matching tests |
| Component | Purpose | Features |
|---|---|---|
| Solution Configuration | Project organization and build settings | • Multi-project solution<br>• Shared build configuration<br>• Dependency management |
| IDE Settings | Development environment standardization | • Code style enforcement<br>• License header automation<br>• Shared formatting rules |
| Templates | Code generation and standardization | • License header templates<br>• File templates<br>• Coding standards |
| Capability | Supported Modules | Use Cases |
|---|---|---|
| API Testing | Http, Core, Validation.Json | REST API validation, HTTP workflows |
| Database Testing | Sql, Core, Validation.Text | Data validation, SQL execution |
| BDD Testing | ReqnrollPlugin, Screenplay | Behavior-driven development |
| Unit Testing | NUnit.Runtime, Core | Component testing, mocking |
| Integration Testing | All modules | End-to-end workflows |
| Data Validation | All Validation.* modules | Content verification, format checking |