Enigmatry.Entry.AspNetCore.Tests.Utilities 9.4.0

dotnet add package Enigmatry.Entry.AspNetCore.Tests.Utilities --version 9.4.0
                    
NuGet\Install-Package Enigmatry.Entry.AspNetCore.Tests.Utilities -Version 9.4.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="Enigmatry.Entry.AspNetCore.Tests.Utilities" Version="9.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Enigmatry.Entry.AspNetCore.Tests.Utilities" Version="9.4.0" />
                    
Directory.Packages.props
<PackageReference Include="Enigmatry.Entry.AspNetCore.Tests.Utilities" />
                    
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 Enigmatry.Entry.AspNetCore.Tests.Utilities --version 9.4.0
                    
#r "nuget: Enigmatry.Entry.AspNetCore.Tests.Utilities, 9.4.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 Enigmatry.Entry.AspNetCore.Tests.Utilities@9.4.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=Enigmatry.Entry.AspNetCore.Tests.Utilities&version=9.4.0
                    
Install as a Cake Addin
#tool nuget:?package=Enigmatry.Entry.AspNetCore.Tests.Utilities&version=9.4.0
                    
Install as a Cake Tool

ASP.NET Core Tests Utilities

A library that provides testing utilities and helpers for ASP.NET Core applications, making it easier to write clean, effective tests for web applications and APIs.

Intended Usage

Use this library when you need to write tests for ASP.NET Core applications. It provides utilities for mocking HTTP contexts, working with controllers, testing middleware, and more.

Installation

Add the package to your project:

dotnet add package Enigmatry.Entry.AspNetCore.Tests.Utilities

Usage Example

Testing exception handling in a controller:

using Enigmatry.Entry.AspNetCore.Tests;
using Enigmatry.Entry.AspNetCore.Filters;
using Microsoft.AspNetCore.Mvc;
using NUnit.Framework;
using FakeItEasy;
using FluentValidation;

[TestFixture]
public class ExceptionHandlingTests
{    [Test]
    public void HandleExceptionsFilter_ShouldReturnBadRequest_WhenValidationExceptionOccurs()
    {
        // Arrange
        var exceptionContext = ExceptionContextBuilder.Create()
            .WithValidationException()
            .WithJsonRequest()
            .Build();
        var filter = new HandleExceptionsFilter();
        
        // Act
        filter.OnException(exceptionContext);
        
        // Assert        var result = exceptionContext.Result as BadRequestObjectResult;
        Assert.That(result, Is.Not.Null);
        Assert.That(result.Value, Is.Not.Null);
    }
}

Testing HTTP contexts:

using Enigmatry.Entry.AspNetCore.Tests;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Diagnostics;
using NUnit.Framework;

[TestFixture]
public class HttpContextTests
{    [Test]
    public void HttpContextBuilder_ShouldCreateValidContext_WithException()
    {
        // Arrange
        var exception = new InvalidOperationException("Test exception");
        
        // Act
        var context = HttpContextBuilder.Create()
            .With(exception)
            .Build();
          // Assert
        var feature = context.Features.Get<IExceptionHandlerPathFeature>();
        Assert.That(feature, Is.Not.Null);
        Assert.That(feature.Error.Message, Is.EqualTo("Test exception"));
        Assert.That(context.Request.Headers["Accept"], Is.EqualTo("application/json"));
    }
}

Service Scope Example

using Enigmatry.Entry.AspNetCore.Tests.Utilities;
using Microsoft.Extensions.DependencyInjection;
using NUnit.Framework;

[TestFixture]
public class ServiceTests
{    [Test]
    public void ServiceScope_ResolvesService_Successfully()
    {
        // Arrange
        var services = new ServiceCollection();
        services.AddScoped<IMyService, MyService>();
        var provider = services.BuildServiceProvider();
        
        // Act
        using var scope = provider.CreateScope();
        var service = scope.Resolve<IMyService>();
          // Assert
        Assert.That(service, Is.Not.Null);
        Assert.That(service, Is.TypeOf<MyService>());
    }
}

Database Utilities Example

using Enigmatry.Entry.AspNetCore.Tests.Utilities.Database;
using Microsoft.Data.SqlClient;
using NUnit.Framework;

[TestFixture]
public class DatabaseTests
{    [Test]
    public void DatabaseHelpers_ProvidesDropAllSql()
    {
        // Arrange
        var connectionString = "Server=(localdb)\\MSSQLLocalDB;Database=TestDb;Integrated Security=true";
        
        // Act & Assert
        Assert.NotNull(DatabaseHelpers.DropAllSql);
        
        // Example of how you might use it in a real test
        // using var connection = new SqlConnection(connectionString);
        // connection.Open();
        // var command = new SqlCommand(DatabaseHelpers.DropAllSql, connection);
        // command.ExecuteNonQuery();
    }
}
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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 (2)

Showing the top 2 NuGet packages that depend on Enigmatry.Entry.AspNetCore.Tests.Utilities:

Package Downloads
Enigmatry.Entry.AspNetCore.Tests.SystemTextJson

Building Block for writing tests in an Entry AspNetCore based project with SystemText Json

Enigmatry.Entry.AspNetCore.Tests.NewtonsoftJson

Building Block for writing tests in an Entry AspNetCore based project with Newtonsoft Json

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
9.4.0 442 12/22/2025
9.3.1-preview.3 242 12/18/2025
9.3.1-preview.1 456 11/25/2025
9.3.0 547 11/10/2025
9.2.0 1,291 9/24/2025
9.1.1-preview.5 201 8/8/2025
9.1.1-preview.4 114 6/27/2025
9.1.1-preview.3 170 6/4/2025
9.1.0 1,193 6/3/2025
9.0.1-preview.8 147 5/26/2025
9.0.1-preview.7 245 5/13/2025
9.0.1-preview.6 404 5/9/2025
9.0.1-preview.5 177 5/7/2025
9.0.1-preview.4 144 4/30/2025
9.0.1-preview.2 161 4/1/2025
9.0.0 1,430 2/26/2025
8.3.1-preview.1 140 12/24/2025
8.3.0 263 12/23/2025
8.2.0 411 9/24/2025
8.1.1-preview.3 150 5/7/2025
8.1.1-preview.1 155 4/1/2025
8.1.0 716 2/19/2025
8.0.1-preview.4 103 2/7/2025
8.0.1-preview.2 91 1/15/2025
8.0.0 1,066 11/27/2024
3.4.6-preview.10 95 11/27/2024
3.4.3 2,076 10/22/2024
3.4.2 2,184 10/11/2024
3.4.1 228 10/9/2024
3.4.0 217 10/9/2024
3.3.2 579 8/28/2024
3.3.2-preview.7 120 8/27/2024
3.3.1 497 7/16/2024
3.3.1-preview.4 103 7/12/2024
3.3.0 1,204 6/20/2024
3.2.1-preview.4 102 6/17/2024
3.2.1-preview.1 106 5/23/2024
3.2.0 4,112 4/3/2024
3.1.1-preview.1 1,042 3/13/2024
3.1.0 442 3/8/2024
3.1.0-preview.2 331 2/19/2024
3.0.1-preview.2 947 2/9/2024
3.0.1-preview.1 107 1/24/2024
3.0.0 1,070 1/15/2024
3.0.0-preview.14 160 1/9/2024
3.0.0-preview.12 106 1/9/2024
3.0.0-preview.5 101 1/10/2024
3.0.0-preview.2 162 12/28/2023
3.0.0-preview 237 12/20/2023
2.1.0 297 12/28/2023
2.0.1-preview.3 130 12/1/2023
2.0.1-preview.2 112 11/29/2023
2.0.1-preview.1 115 11/28/2023
2.0.0 428 11/8/2023
2.0.0-preview.3 311 10/27/2023
2.0.0-preview.2 118 10/27/2023
2.0.0-preview.1 123 10/27/2023
2.0.0-preview 246 10/27/2023
1.1.500 277 10/27/2023
1.1.495 339 9/24/2023
1.1.486 583 9/13/2023
1.1.484 386 9/7/2023
1.1.482 319 9/6/2023
1.1.480 416 8/24/2023
1.1.477 554 8/2/2023
1.1.464 393 7/5/2023
1.1.447 850 5/26/2023
1.1.396 549 4/11/2023
1.1.383 490 4/3/2023
1.1.377 482 3/13/2023
1.1.376 650 3/13/2023