MX.Platform.Notifications.Api.Client.Testing
1.0.18
dotnet add package MX.Platform.Notifications.Api.Client.Testing --version 1.0.18
NuGet\Install-Package MX.Platform.Notifications.Api.Client.Testing -Version 1.0.18
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="MX.Platform.Notifications.Api.Client.Testing" Version="1.0.18" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MX.Platform.Notifications.Api.Client.Testing" Version="1.0.18" />
<PackageReference Include="MX.Platform.Notifications.Api.Client.Testing" />
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 MX.Platform.Notifications.Api.Client.Testing --version 1.0.18
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MX.Platform.Notifications.Api.Client.Testing, 1.0.18"
#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 MX.Platform.Notifications.Api.Client.Testing@1.0.18
#: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=MX.Platform.Notifications.Api.Client.Testing&version=1.0.18
#tool nuget:?package=MX.Platform.Notifications.Api.Client.Testing&version=1.0.18
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MX.Platform.Notifications.Api.Client.Testing
Test helpers for consumer apps: in-memory fakes of INotificationsApiClient, DTO factory methods, and DI extensions for integration tests.
Installation
dotnet add package MX.Platform.Notifications.Api.Client.Testing
Unit Tests
Use FakeNotificationsApiClient directly for lightweight unit tests:
var fakeClient = new FakeNotificationsApiClient();
var request = SendEmailRequestDtoFactory.CreateSendEmailRequest(subject: "Welcome!");
await fakeClient.Email.SendEmail(request);
// Assert emails were sent
Assert.Single(fakeClient.EmailApi.SentEmails);
Assert.Equal("Welcome!", fakeClient.EmailApi.SentEmails.First().Subject);
Integration Tests (DI)
Replace real services with fakes in your test DI container:
services.AddFakeNotificationsApiClient();
Or pre-configure responses:
services.AddFakeNotificationsApiClient(client =>
{
client.EmailApi.WithSuccessResponse(new SendEmailResponseDto
{
MessageId = "test-msg-001",
Status = "Succeeded"
});
});
Simulating Failures
Configure the fake to return error responses:
var fakeClient = new FakeNotificationsApiClient();
fakeClient.EmailApi.WithFailure(
statusCode: HttpStatusCode.TooManyRequests,
errorCode: "RATE_LIMITED",
errorMessage: "Too many requests");
var result = await fakeClient.Email.SendEmail(request);
Assert.False(result.IsSuccess);
Assert.Equal(HttpStatusCode.TooManyRequests, result.StatusCode);
Factory Methods
SendEmailRequestDtoFactory provides methods for creating test DTOs with sensible defaults:
// Create a request with defaults (contoso.com, "Test Email" subject, one recipient)
var request = SendEmailRequestDtoFactory.CreateSendEmailRequest();
// Override specific fields
var customRequest = SendEmailRequestDtoFactory.CreateSendEmailRequest(
senderDomain: "myapp.com",
subject: "Password Reset",
htmlBody: "<p>Click here to reset your password.</p>");
// Create recipients
var recipient = SendEmailRequestDtoFactory.CreateRecipient(
emailAddress: "user@example.com",
displayName: "Jane Doe");
// Create response DTOs
var response = SendEmailRequestDtoFactory.CreateSendEmailResponse(
messageId: "msg-123",
status: "Succeeded");
Resetting State Between Tests
fakeClient.Reset(); // Clears SentEmails and resets to default success behavior
| Product | Versions 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 is compatible. 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.
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- MX.Api.Abstractions (>= 2.3.25)
- MX.Platform.Notifications.Abstractions.V1 (>= 1.0.18)
- MX.Platform.Notifications.Api.Client.V1 (>= 1.0.18)
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- MX.Api.Abstractions (>= 2.3.25)
- MX.Platform.Notifications.Abstractions.V1 (>= 1.0.18)
- MX.Platform.Notifications.Api.Client.V1 (>= 1.0.18)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.