Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using Omika.Core.Observability.Outbox;
|
||||
|
||||
namespace Omika.Tests.Observability.Outbox;
|
||||
|
||||
/// <summary>
|
||||
/// Tests du DiagnosticUploadClient par fournisseur d'URL : l'URL est résolue à
|
||||
/// chaque envoi depuis la même source de vérité que le client métier.
|
||||
/// </summary>
|
||||
public class DiagnosticUploadProviderTests
|
||||
{
|
||||
private sealed class UriCapturingHandler : HttpMessageHandler
|
||||
{
|
||||
public string? LastUri { get; private set; }
|
||||
|
||||
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
||||
{
|
||||
LastUri = request.RequestUri?.ToString();
|
||||
return Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
|
||||
{
|
||||
Content = new StringContent("""{"acceptedCount":1}""", Encoding.UTF8, "application/json")
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Upload_UtiliseUrlDuFournisseur()
|
||||
{
|
||||
var handler = new UriCapturingHandler();
|
||||
string? currentBaseUrl = "https://api.example.com";
|
||||
|
||||
var client = new DiagnosticUploadClient(
|
||||
new System.Net.Http.HttpClient(handler),
|
||||
() => currentBaseUrl,
|
||||
() => "token-1",
|
||||
new DiagnosticUploadOptions());
|
||||
|
||||
DiagnosticUploadResult result = await client.UploadAsync(new DiagnosticBatchDto
|
||||
{
|
||||
Events = [new DiagnosticEventDto { EventId = Guid.NewGuid(), EventCode = "OMK-MOB-APP-001" }]
|
||||
});
|
||||
|
||||
Assert.Equal(DiagnosticUploadOutcome.Success, result.Outcome);
|
||||
Assert.Equal("https://api.example.com/api/diagnostics", handler.LastUri);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Upload_SansUrl_AucunAppelHttp()
|
||||
{
|
||||
var handler = new UriCapturingHandler();
|
||||
|
||||
var client = new DiagnosticUploadClient(
|
||||
new System.Net.Http.HttpClient(handler),
|
||||
() => null,
|
||||
() => "token-1",
|
||||
new DiagnosticUploadOptions());
|
||||
|
||||
DiagnosticUploadResult result = await client.UploadAsync(new DiagnosticBatchDto
|
||||
{
|
||||
Events = [new DiagnosticEventDto { EventId = Guid.NewGuid(), EventCode = "OMK-MOB-APP-001" }]
|
||||
});
|
||||
|
||||
Assert.Equal(DiagnosticUploadOutcome.Failure, result.Outcome);
|
||||
Assert.Null(handler.LastUri); // aucun fallback localhost, aucun envoi.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user