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 298 12/22/2025
9.3.1-preview.3 239 12/18/2025
9.3.1-preview.1 421 11/25/2025
9.3.0 449 11/10/2025
9.2.0 1,189 9/24/2025
9.1.1-preview.5 196 8/8/2025
9.1.1-preview.4 110 6/27/2025
9.1.1-preview.3 164 6/4/2025
9.1.0 1,168 6/3/2025
9.0.1-preview.8 144 5/26/2025
9.0.1-preview.7 239 5/13/2025
9.0.1-preview.6 398 5/9/2025
9.0.1-preview.5 171 5/7/2025
9.0.1-preview.4 140 4/30/2025
9.0.1-preview.2 158 4/1/2025
9.0.0 1,424 2/26/2025
8.3.1-preview.1 134 12/24/2025
8.3.0 221 12/23/2025
8.2.0 397 9/24/2025
8.1.1-preview.3 145 5/7/2025
8.1.1-preview.1 149 4/1/2025
8.1.0 707 2/19/2025
8.0.1-preview.4 96 2/7/2025
8.0.1-preview.2 86 1/15/2025
8.0.0 1,061 11/27/2024
3.4.6-preview.10 91 11/27/2024
3.4.3 2,073 10/22/2024
3.4.2 2,177 10/11/2024
3.4.1 226 10/9/2024
3.4.0 210 10/9/2024
3.3.2 574 8/28/2024
3.3.2-preview.7 112 8/27/2024
3.3.1 495 7/16/2024
3.3.1-preview.4 95 7/12/2024
3.3.0 1,197 6/20/2024
3.2.1-preview.4 95 6/17/2024
3.2.1-preview.1 98 5/23/2024
3.2.0 4,109 4/3/2024
3.1.1-preview.1 1,040 3/13/2024
3.1.0 437 3/8/2024
3.1.0-preview.2 327 2/19/2024
3.0.1-preview.2 938 2/9/2024
3.0.1-preview.1 104 1/24/2024
3.0.0 1,067 1/15/2024
3.0.0-preview.14 152 1/9/2024
3.0.0-preview.12 103 1/9/2024
3.0.0-preview.5 96 1/10/2024
3.0.0-preview.2 157 12/28/2023
3.0.0-preview 232 12/20/2023
2.1.0 295 12/28/2023
2.0.1-preview.3 127 12/1/2023
2.0.1-preview.2 104 11/29/2023
2.0.1-preview.1 108 11/28/2023
2.0.0 423 11/8/2023
2.0.0-preview.3 304 10/27/2023
2.0.0-preview.2 114 10/27/2023
2.0.0-preview.1 120 10/27/2023
2.0.0-preview 239 10/27/2023
1.1.500 272 10/27/2023
1.1.495 334 9/24/2023
1.1.486 579 9/13/2023
1.1.484 382 9/7/2023
1.1.482 312 9/6/2023
1.1.480 413 8/24/2023
1.1.477 549 8/2/2023
1.1.464 388 7/5/2023
1.1.447 846 5/26/2023
1.1.396 539 4/11/2023
1.1.383 485 4/3/2023
1.1.377 476 3/13/2023
1.1.376 646 3/13/2023