Enigmatry.Entry.AspNetCore.Tests.Utilities 9.3.0

dotnet add package Enigmatry.Entry.AspNetCore.Tests.Utilities --version 9.3.0
                    
NuGet\Install-Package Enigmatry.Entry.AspNetCore.Tests.Utilities -Version 9.3.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.3.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.3.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.3.0
                    
#r "nuget: Enigmatry.Entry.AspNetCore.Tests.Utilities, 9.3.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.3.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.3.0
                    
Install as a Cake Addin
#tool nuget:?package=Enigmatry.Entry.AspNetCore.Tests.Utilities&version=9.3.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.3.0 46 11/10/2025
9.2.0 764 9/24/2025
9.1.1-preview.5 181 8/8/2025
9.1.1-preview.4 94 6/27/2025
9.1.1-preview.3 155 6/4/2025
9.1.0 1,085 6/3/2025
9.0.1-preview.8 135 5/26/2025
9.0.1-preview.7 227 5/13/2025
9.0.1-preview.6 373 5/9/2025
9.0.1-preview.5 159 5/7/2025
9.0.1-preview.4 131 4/30/2025
9.0.1-preview.2 142 4/1/2025
9.0.0 1,380 2/26/2025
8.2.0 273 9/24/2025
8.1.1-preview.3 131 5/7/2025
8.1.1-preview.1 142 4/1/2025
8.1.0 665 2/19/2025
8.0.1-preview.4 81 2/7/2025
8.0.1-preview.2 70 1/15/2025
8.0.0 1,039 11/27/2024
3.4.6-preview.10 75 11/27/2024
3.4.3 2,057 10/22/2024
3.4.2 2,159 10/11/2024
3.4.1 205 10/9/2024
3.4.0 189 10/9/2024
3.3.2 553 8/28/2024
3.3.2-preview.7 98 8/27/2024
3.3.1 479 7/16/2024
3.3.1-preview.4 80 7/12/2024
3.3.0 1,180 6/20/2024
3.2.1-preview.4 74 6/17/2024
3.2.1-preview.1 85 5/23/2024
3.2.0 4,087 4/3/2024
3.1.1-preview.1 1,028 3/13/2024
3.1.0 424 3/8/2024
3.1.0-preview.2 315 2/19/2024
3.0.1-preview.2 927 2/9/2024
3.0.1-preview.1 96 1/24/2024
3.0.0 1,047 1/15/2024
3.0.0-preview.14 139 1/9/2024
3.0.0-preview.12 88 1/9/2024
3.0.0-preview.5 80 1/10/2024
3.0.0-preview.2 145 12/28/2023
3.0.0-preview 220 12/20/2023
2.1.0 279 12/28/2023
2.0.1-preview.3 114 12/1/2023
2.0.1-preview.2 93 11/29/2023
2.0.1-preview.1 95 11/28/2023
2.0.0 411 11/8/2023
2.0.0-preview.3 293 10/27/2023
2.0.0-preview.2 102 10/27/2023
2.0.0-preview.1 104 10/27/2023
2.0.0-preview 226 10/27/2023
1.1.500 262 10/27/2023
1.1.495 321 9/24/2023
1.1.486 568 9/13/2023
1.1.484 368 9/7/2023
1.1.482 303 9/6/2023
1.1.480 403 8/24/2023
1.1.477 537 8/2/2023
1.1.464 374 7/5/2023
1.1.447 829 5/26/2023
1.1.396 515 4/11/2023
1.1.383 465 4/3/2023
1.1.377 461 3/13/2023
1.1.376 630 3/13/2023