Agenix.GraphQL 0.2.0

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Agenix.GraphQL --version 0.2.0
                    
NuGet\Install-Package Agenix.GraphQL -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Agenix.GraphQL" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Agenix.GraphQL" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Agenix.GraphQL" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Agenix.GraphQL --version 0.2.0
                    
#r "nuget: Agenix.GraphQL, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Agenix.GraphQL@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Agenix.GraphQL&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Agenix.GraphQL&version=0.2.0
                    
Install as a Cake Tool

Logo

<div align="center">

Agenix Integration Testing Icon

<p><strong>Test the Pieces.Verify the Whole.</strong></p> <p><em>Intelligent integration testing framework for modern applications</em></p>

Build Status Nuget License

</div>

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.

Key Features

  • 🎭 Screenplay Pattern: Actor-based testing with fluent, readable test scenarios using Tasks, Questions, and Abilities
  • 🌐 Multi-Protocol Support: Built-in support for HTTP/REST APIs, GraphQL, SQL databases, and web services
  • 🔧 Framework Integration: Seamless integration with NUnit and Reqnroll (SpecFlow successor) for BDD testing
  • ✅ Rich Validation: Comprehensive validation capabilities for JSON, text, binary data, and custom formats
  • 🏗️ Modular Architecture: Clean separation of concerns with extensible, plugin-based design
  • 📊 Advanced Reporting: Detailed test execution reports with contextual information
  • 🔄 Enterprise Ready: Built for complex SOA environments with session management and context handling

What Makes Agenix Different

1. Intelligent Marshalling & Serialization Architecture

  • Multi-Protocol Marshalling: Agenix provides sophisticated object marshalling capabilities with automatic type detection and resolution
  • Pluggable Serializers: Support for multiple serialization formats (JSON, XML, Binary) with automatic serializer selection
  • Dynamic Content Resolution: Built-in variable substitution and dynamic content generation during test execution

2. Enterprise-Grade Resource Management

  • Resource Path Type Resolution: Unique that can dynamically resolve types and properties from assembly resources ResourcePathTypeResolver
  • Cached Type Resolution: Intelligent caching system for type lookups to improve performance in large test suites
  • Flexible Resource Loading: Support for loading configuration and types from embedded resources with fallback mechanisms

3. Comprehensive Validation Ecosystem

  • Multi-Format Validation: Dedicated validation modules for JSON, XML, Text, and Binary data
  • NHamcrest Integration: Fluent assertion syntax with composable matchers
  • Context-Aware Validation: Validation contexts that understand the testing environment and can adapt accordingly

4. Advanced Message Building Pattern

  • Polymorphic Payload Builders: Support for different payload building strategies (marshalling, serialization, static content)
  • Header Data Builders: Specialized builders for message headers with marshalling support
  • Type-Safe Message Construction: Strong typing throughout the message building process

5. Modular Protocol Support

  • Protocol Abstraction: Clean separation between protocol implementations (HTTP, GraphQL, SQL, etc.)
  • Endpoint Configuration: Flexible endpoint configuration system that supports multiple communication protocols
  • Producer/Consumer Pattern: Consistent messaging patterns across different protocols

6. Intelligent Reference Resolution

  • Dependency Injection: Built-in reference resolver that acts as a lightweight DI container
  • Auto-Detection: Automatic detection of available services and marshallers
  • Named Resolution: Support for named instances and type-specific resolution

7. Enterprise Integration Features

  • Session Management: Built-in session handling for complex enterprise workflows
  • Context Propagation: Test context that maintains state across test steps
  • Transaction Support: Database transaction management for data integrity

8. BDD Integration Excellence

  • Reqnroll Plugin: Deep integration with Reqnroll (SpecFlow successor) for modern BDD testing
  • Gherkin Support: Native support for Gherkin syntax with step definition automation
  • Business-Readable Tests: Framework designed to bridge technical implementation and business requirements

9. Test Execution Engine

  • Action-Based Architecture: Test actions as first-class citizens with lifecycle management
  • Sequence Management: Before/after test sequences with dependency resolution
  • Listener Pattern: Extensible test action listeners for custom behavior

10. Developer Experience Focus

  • Fluent APIs: Consistent fluent interface design across all modules
  • Type Safety: Strong typing throughout the framework to catch errors at compile time
  • IntelliSense Support: Rich metadata and documentation for IDE integration

The 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.

️ Framework Origins

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.

  • Original Citrus Framework: Copyright (C) 2006-2024 the original author or authors
  • License: Both projects are licensed under Apache License 2.0
  • Agenix Implementation: Copyright (C) 2025 Agenix

We extend our gratitude to the Citrus Framework maintainers and contributors for their excellent work that served as the foundation for this .NET adaptation.

License

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.

Table of Contents

Overview

Agenix.ATF is a comprehensive test framework built on .NET 8.0, designed to provide robust testing capabilities with modern testing patterns and practices.

Technologies Used

  • .NET 8.0 - Target framework
  • C# 12.0 - Programming language
  • NUnit 3.x-4.x - Testing framework
  • NSubstitute - Mocking library

Prerequisites

Before you begin, ensure you have the following installed:

Getting Started

1. Clone the Repository

git clone <repository-url>
cd Agenix.ATF

Module Overview

🏗️ Core Framework Modules

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

🌐 Protocol & Communication Modules

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.Azure.Security Azure authentication and Key Vault integration utilities • Azure AD authentication<br>• Key Vault secret management<br>• OAuth token handling<br>• Credential caching

🎭 Testing Pattern Implementations

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

🔌 Framework Integration Modules

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

✅ Validation & Assertion Modules

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

🧪 Unit Test Project Modules

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

📋 Configuration & Support Files

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

🎯 Framework Capabilities

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
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.1-preview.1 107 7/8/2025
0.2.0 123 7/7/2025
0.1.1-preview.5 103 7/7/2025
0.1.1-preview.4 103 7/7/2025
0.1.1-preview.3 100 7/7/2025
0.1.1-preview.1 99 7/7/2025
0.1.0 131 6/25/2025
0.1.0-master0001 124 6/24/2025
0.1.0-alpha0120 124 6/26/2025
0.1.0-alpha0112 123 6/25/2025
0.1.0-alpha0110 127 6/25/2025
0.1.0-alpha0108 126 6/24/2025
0.1.0-alpha0106 129 6/24/2025
0.1.0-alpha0104 126 6/24/2025
0.1.0-alpha0102 126 6/24/2025
0.1.0-alpha0100 130 6/24/2025
0.1.0-alpha0098 131 6/23/2025
0.1.0-alpha0096 127 6/23/2025
0.0.0-preview.72 99 7/7/2025