Add unit tests for Router configuration and transport layers
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled

- Implemented tests for RouterConfig, RoutingOptions, StaticInstanceConfig, and RouterConfigOptions to ensure default values are set correctly.
- Added tests for RouterConfigProvider to validate configurations and ensure defaults are returned when no file is specified.
- Created tests for ConfigValidationResult to check success and error scenarios.
- Developed tests for ServiceCollectionExtensions to verify service registration for RouterConfig.
- Introduced UdpTransportTests to validate serialization, connection, request-response, and error handling in UDP transport.
- Added scripts for signing authority gaps and hashing DevPortal SDK snippets.
This commit is contained in:
StellaOps Bot
2025-12-05 08:01:47 +02:00
parent 635c70e828
commit 6a299d231f
294 changed files with 28434 additions and 1329 deletions

View File

@@ -0,0 +1,64 @@
using Microsoft.Extensions.Logging;
using StellaOps.Microservice;
namespace Examples.Inventory.Microservice.Endpoints;
/// <summary>
/// Request model for getting a single inventory item.
/// </summary>
public sealed record GetItemRequest
{
public required string Sku { get; init; }
}
/// <summary>
/// Response model for a single inventory item with details.
/// </summary>
public sealed record GetItemResponse
{
public required string Sku { get; init; }
public required string Name { get; init; }
public required string Description { get; init; }
public required string Category { get; init; }
public required int QuantityOnHand { get; init; }
public required int ReorderPoint { get; init; }
public required decimal UnitPrice { get; init; }
public required string Location { get; init; }
public required DateTime LastUpdated { get; init; }
}
/// <summary>
/// Endpoint for getting a single inventory item by SKU.
/// Demonstrates path parameter extraction.
/// </summary>
[StellaEndpoint("GET", "/items/{sku}", TimeoutSeconds = 10)]
public sealed class GetItemEndpoint : IStellaEndpoint<GetItemRequest, GetItemResponse>
{
private readonly ILogger<GetItemEndpoint> _logger;
public GetItemEndpoint(ILogger<GetItemEndpoint> logger)
{
_logger = logger;
}
public Task<GetItemResponse> HandleAsync(
GetItemRequest request,
CancellationToken cancellationToken)
{
_logger.LogInformation("Fetching inventory item {Sku}", request.Sku);
// Simulate item lookup
return Task.FromResult(new GetItemResponse
{
Sku = request.Sku,
Name = "Widget A",
Description = "A high-quality widget for general purpose use",
Category = "widgets",
QuantityOnHand = 100,
ReorderPoint = 25,
UnitPrice = 9.99m,
Location = "Warehouse A, Aisle 3, Shelf 2",
LastUpdated = DateTime.UtcNow.AddHours(-2)
});
}
}